全平台正向tcp端口转发工具rinetd的使用

时间:2023-03-09 00:09:25
全平台正向tcp端口转发工具rinetd的使用

Linux下做地址NAT有很多种方法。比如haproxy、nginx的4层代理,linux自带的iptables等都能实现。其实,Linux下有一个叫rinetd的工具,安装简单,配置也不复杂。

下载地址:http://www.boutell.com/rinetd/http/rinetd.tar.gz

0x01 安装

下载:

Wget http://www.boutell.com/rinetd/http/rinetd.tar.gz

全平台正向tcp端口转发工具rinetd的使用

解压:

tar -xvf ~/zhenyutest/rinetd.tar.gz

全平台正向tcp端口转发工具rinetd的使用

cd ~/zhenyutest/rinetd/

sed -i 's/65536/65535/g' rinetd.c

mkdir /usr/man/

make && make installcc -DLINUX -g   -c -o rinetd.o

 

0x02创建配置文件

 vi /etc/rinetd.conf

配置文件格式是:

bindaddress     bindport      connectaddress       connectport
绑定的地址 绑定的端口 连接的地址 连接的端口

[Source Address] [Source Port] [Destination Address] [Destination Port]
源地址 源端口 目的地址 目的端口 (0.0..0表示本机绑定所有可用地址)

0.0.0.0 8080 192.168.190.148 8080

全平台正向tcp端口转发工具rinetd的使用

0x03 启动、关闭

启动:

rinetd -c /etc/rinetd.conf

ps -ef | grep rinetd

停止:

killall rinetd

校验:

netstat -tanulp|grep rinetd

0x04 应用

全平台正向tcp端口转发工具rinetd的使用

由上图所示,由于物理网络原因,各个机房并不能够互通,但均可以访问互联网,这种情况下,要远程操作某个机房中的内部管理界面就非常困难了。上图中,每个机房中均有一台踏板机,能够连接到公有云中的一台vpn服务器上,并获得相应的IP,192.168.222.x。这样,在总控制处,只要某台机器也能登陆到相应的vpn服务器上,就相当于同各个机房中的踏板机同处于一个内网中。

例如,机房A的踏板机上配置了rinetd服务,配置的规则为:0.0.0.0 8080 192.168.31.22 8080(将本机8080端口转发至内网192.168.31.22:8080 的zabbix服务器),这样,在总控制处,通过连接192.168.222.3:8080 即可访问到机房A中的zabbix服务。

0x03 启动、关闭

启动:

rinetd -c /etc/rinetd.conf

ps -ef | grep rinetd

停止:

killall rinetd

校验:

netstat -tanulp|grep rinetd

0x04 应用

由上图所示,由于物理网络原因,各个机房并不能够互通,但均可以访问互联网,这种情况下,要远程操作某个机房中的内部管理界面就非常困难了。上图中,每个机房中均有一台踏板机,能够连接到公有云中的一台vpn服务器上,并获得相应的IP,192.168.222.x。这样,在总控制处,只要某台机器也能登陆到相应的vpn服务器上,就相当于同各个机房中的踏板机同处于一个内网中。

例如,机房A的踏板机上配置了rinetd服务,配置的规则为:0.0.0.0 8080 192.168.31.22 8080(将本机8080端口转发至内网192.168.31.22:8080 的zabbix服务器),这样,在总控制处,通过连接192.168.222.3:8080 即可访问到机房A中的zabbix服务。