工具介绍
linux 下简单好用的工具 rinetd,实现端口映射 / 转发 / 重定向。
用于有效地将连接从一个 IP 地址 / 端口组合重定向到另一 IP 地址 / 端口组合。在操作虚拟服务器、防火墙等时很有用。
Rinetd 是单一过程的服务器,它处理任何数量的连接到在配置文件 etc/rinetd 中指定的地址 / 端口对。尽管 rinetd 使用非闭锁 I/O 运行作为一个单一过程,它可能重定向很多连接而不对这台机器增加额外的负担。
官网地址:http://www.boutell.com/rinetd
软件安装
方法一:压缩包
wget http://www.boutell.com/rinetd/http/rinetd.tar.gz
tar zxvf rinetd.tar.gz
make
make install
方法二:apt-get
apt-cache search rinetd
apt-get install rinetd -y
软件配置
配置文件格式:
[Source Address] [Source Port] [Destination Address] [Destination Port]
源地址 源端口 目的地址 目的端口
在每一单独的行中指定每个要转发的端口。源地址和目的地址都可以是主机名或 IP 地址,IP 地址 0.0.0.0 将 rinetd 绑定到任何可用的本地 IP 地址上。
例如:
vi /etc/rinetd.conf
0.0.0.0 8080 172.19.94.3 8080
0.0.0.0 2222 192.168.0.103 3389
1.2.3.4 80 192.168.0.10 80
说明一下(0.0.0.0 表示本机绑定所有可用地址)
- 将所有发往本机 8080 端口的请求转发到 172.19.94.3 的 8080 端口
- 将所有发往本机 2222 端口的请求转发到 192.168.0.103 的 3389 端口
将所有发往 1.2.3.4 的 80 端口请求转发到 192.168.0.10 的 80 端口
使用 systemd 管理:
systemctl status rinetd
注意事项
- rinetd.conf 中绑定的本机端口必须没有被其它程序占用。
- 运行 rinetd 的系统防火墙应该打开绑定的本机端口。
例如:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1111 -jACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2222 -jACCEPT