Rinetd linxu TCP 端口转发

时间:2022-05-16 15:54:04

Rinetd是为在一个Unix和Linux操作系统中为重定向传输控制协议(TCP)连接的一个工具,实现端口映射/转发/重定向。
Rinetd是单一过程的服务器,它处理任何数量的连接到在配置文件etc/rinetd中指定的地址/端口对。
尽管rinetd使用非闭锁I/O运行作为一个单一过程,它可能重定向很多连接而不对这台机器增加额外的负担。


1、软件下载
# wget http://www.boutell.com/rinetd/http/rinetd.tar.gz


2、软件安装
# tar zxvf rinetd.tar.gz
# cd rinetd
# make
# make install


注:
执行过程中如果出现下面的错误
install: cannot create regular file `/usr/man/man8': No such file or directory
需要手动创建一下文件夹,重新编译安装即可
mkdir -p /usr/man/man8


3、配置文件
# vim /etc/rinetd.conf
编辑配置文件,添加如下内容
# pkill rinetd
# rinetd -c /etc/rinetd.conf
# bindaddress bindport connectaddress connectport
0.0.0.0 8080 172.19.94.3   8080
0.0.0.0 9090 192.168.0.103 3389
1.2.3.4 80   192.168.0.10  80


注:
格式是:
bindaddress     bindport      connectaddress       connectport
绑定的地址      绑定的端口    连接的地址           连接的端口

[Source Address] [Source Port] [Destination Address] [Destination Port]
源地址           源端口        目的地址              目的端口


(0.0.0.0表示本机绑定所有可用地址)
将所有发往本机8080端口的请求转发到172.19.94.3的8080端口
将所有发往本机9090端口的请求转发到192.168.0.103的3389端口
将所有发往1.2.3.4的80端口请求转发到192.168.0.10的80端口
  
4、启停、查看程序
关闭
# pkill rinetd
启动
# rinetd -c /etc/rinetd.conf
查看状态
# netstat -antup | grep rinetd


注:
1.rinetd.conf中绑定的本机端口必须没有被其它程序占用
2.运行rinetd的系统防火墙应该打开绑定的本机端口
例如:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1111 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2222 -j ACCEPT