这两天和同事讨论问题的时候知道了一个很好用的NAT工具—rinetd,它是由c实现的一个短小、实用的NTA转发工具,它的官网是在:http://www.boutell.com/rinetd/[root@localhost src]# wget http://www.boutell.com/rinetd/http/rinetd.tar.gz

[root@localhost src]# tar -zxvf rinetd.tar.gz

[root@localhost src]# cd rinetd

[root@localhost rinetd]# vim Makefile#修改下Makefile

CFLAGS=-DLINUX -g

rinetd: rinetd.o match.o

gcc rinetd.o match.o -o rinetd

install: rinetd

install -m 700 rinetd /usr/sbin

install -m 644 rinetd.8 /usr/local/share/man/man8

[root@localhost rinetd]# make && make install

这样rinetd就安装好了,使用也很简单可以指定配置文件,一般是放在/etc/rinetd.conf使用-c参数指定配置文件,rinetd是依赖于配置文件工作的[root@localhost rinetd]# rinetd --help

Usage: rinetd [OPTION]

-c, --conf-file FILE   read configuration from FILE

-h, --help             display this help

-v, --version          display version number

Most options are controlled through the

configuration file. See the rinetd(8)

manpage for more information.

更多的参数选项可以参看man rinetd在此就不做过多的说明,利用rinetd可以实现快速高效的端口转发,举一个简单的例子,在三层交换机中的2个vlan:192.168.1.0/24、192.168.2.0/24,2个vlan间内网是互通的但是192.168.1.0/24中没有做任何的策略路由,只有内网而192.168.1.0/24在外有一个公网ip做了内部服务器的NAT端口映射,即DZM区,而在外部需要访问192.168.2.0/24内部的某一主机上的相关资源,此时就需要做相应的端口转发,而在2个vlan中分别有192.168.2.22和192.168.1.240,2台主机用rinetd来转发,就在192.168.2.22的主机上的/etc/rinetd.conf文件中添加一行配置:0.0.0.0 80 192.168.1.240 80

#source_address source_port destination_address destination_port

当然利用iptables的nat表转发也是一样,nat表如下:*nat

:PREROUTING ACCEPT [0:0]

:POSTROUTING ACCEPT [3:226]

:OUTPUT ACCEPT [3:226]

-A PREROUTING -d 192.168.2.22/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.240:80

-A POSTROUTING -d 192.168.1.240/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.2.22

COMMIT

同时在iptables的filter表上FORWARD链上也要做相应的放行:-A FORWARD -s 192.168.1.0/24 -j ACCEPT

-A FORWARD -s 192.168.2.0/24 -j ACCEPT

-A FORWARD -d 192.168.1.0/24 -j ACCEPT

-A FORWARD -d 192.168.2.0/24 -j ACCEPT

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

二者之间是等效的,如此可见rinetd的工具在实际生产环境中是非常高效的,这里要注意两点:

一、无论是使用rinetd或者是iptables的nat表都需要开启内核ip地址转发的功能,即net.ipv4.ip_forward = 1;

二、是在filter表中开相应的端口,如果是使用iptables的nat表来转发还要开放FORWARD链以实现转发

三、使用rinetd中都是把端口当成服务监听,所以是长连接,如果是ssh这样的服务在使用端口转发后会在内网连接上的服务上残余很多进程,所以在使用rinetd一般是临时快速实现端口转发而用的,如果是长时间使用或者一些特殊场景下rinetd还是不如iptables的

linux上用的端口转发工具,Linux中的快速端口转发工具—rinetd相关推荐

  1. Linux入门第五集!MySQL8在Linux上的安装!MySQL的Linux资源分享!

    Linux入门第五集!MySQL8在Linux上的安装!MySQL的Linux资源分享! 一.Mysql的Linux版本下载! 博主采用的是mysql-8.0.25-1.el7.x86_64.rpm- ...

  2. Linux下的Tomcat服务器修改server.xml中的8080端口号后出现不能访问首页

    QUESTION:Linux下的Tomcat服务器修改server.xml中的8080端口号后出现不能访问首页 ANSWER: 简单直接的有效方法:重装tomcat服务器.

  3. Linux上基于IP访问网站、基于同一IP不同端口访问网站、基于DNS域名访问网站、将不同域名解析到同一IP不同端口

    本文基于Linux上CentOS 7版本配合httpd服务.nginx进行配置演示 一.基于IP搭建web服务器 1.为虚拟机网卡新添加一个ip地址并重启网卡 2. 新建配置目录并写入内容 3.编辑配 ...

  4. linux上查看网络限制,如何在Linux上限制网络带宽

    您是否曾经与多个设备共享网络带宽?如果您曾经处于一个应用程序占用了所有流量的位置,那么您是系统管理员还是Linux用户,您将需要发现如何控制应用程序的上载和下载速度,以确保您的带宽并不完全被单个应用程 ...

  5. Linux上搭建Samba,实现windows与Linux文件数据同步

    一 环境介绍 1. 本地win10 2. Linux (centos7.4) 注:因为运营商方面禁止smb协议,导致无法在云服务器上使用smb,如果不是在虚拟机上操作,而是在云服务器上操作,建议还是使 ...

  6. linux上开发应用程序_如何在Linux上安装软件应用程序

    linux上开发应用程序 如何在Linux上安装应用程序? 与许多操作系统一样,该问题不仅有一个答案. 应用程序可以来自许多来源-几乎无法计数-每个开发团队都可以以自己认为最佳的方式交付软件. 知道如 ...

  7. linux的free会擦出磁盘吗,如何在 Linux 上检查可用的磁盘空间 | Linux 中国

    我已经使用了多少磁盘空间? (本文字数:2161,阅读时长大约:3 分钟) 在 Linux 上查找可用磁盘空间的最简单的方法是使用 df 命令 .df 命令从字面意思上代表着 磁盘可用空间(disk ...

  8. 在红帽Linux上安装samba服务,如何在linux上安装配置samba服务器

    如何在linux上安装配置samba服务器 更新时间:2019-10-29 22:40 最满意答案 1.首先需要登入安装了Linux系统的计算机,安装Samba.Fedora发行版一般使用yum工具安 ...

  9. linux上运行项目,发布项目到 Linux 上运行 Core 项目

    目录索引 简介 ASP.Net Core 给我们带来的最大的亮点就是跨平台,我在我电脑(win7)上用虚拟机建了个 CentOS7 ,来演示下,我们windows上的项目如何发布项目到Linux上运行 ...

最新文章

  1. python开源代码-mtcnn python 开源代码详细图解
  2. 基于MATLAB的OSPF协议网络仿真
  3. C#中使用DbHelper连接SqlServer数据库
  4. 分布式与人工智能课程(part10)--图像库的基本使用
  5. C语言:用字符读取流和输出流来读写入数据。(文本文件)
  6. 如何使用Spring Security和Basic身份验证保护Jersey REST服务
  7. wget for windows
  8. Tomcat 8默认工具manager管理页面访问配置
  9. ubuntn 常用命令和快捷键汇总
  10. excel power Query
  11. 吐血整理!跳槽字节跳动涨薪
  12. qq发的html文件打不开,Win10系统下QQ能上网页却无法打开的三种解决方案
  13. Eureka No active profile set, falling back to default profiles: default
  14. 用数组统计字符串中26个大写字母的个数
  15. Numpy读取csv文件
  16. 浏览器User Agent Switcher Options实现模拟浏览器 附(UA下载)
  17. 软件授权解决方案FlexNet Publisher
  18. 子元素padding一般不会撑开父元素盒子大小
  19. 计算机二级两个控件之间求偶,求,全国计算机等级考试二级java历年试题及答案合集,还有上机考试真题?...
  20. ppython3 关于agg函数的用法(一般与groupby函数连用)

热门文章

  1. WEB开发中的会话控制
  2. Hadoop学习之HDFS架构(一)
  3. matlab 0000,部分结果出现虚数单位 0.0000i
  4. sql 时间范围查询_Excel中使用SQL查询,单元格范围最多支持65536行?
  5. LeetCode题组:第7题-整数反转
  6. 【云计算】云计算从业者导学
  7. CCKS-2017 行业知识图谱构建与应用-下篇
  8. 七牛大数据平台的演进与大数据分析实践--转
  9. Spring Boot: Tuning your Undertow application for throughput--转
  10. 元宇宙iwemeta: 韩国政府力挺元宇宙, 打造元宇宙城市 出台五年规划