CentOS 使用 rinetd 端口映射
一般映射采用两种方式,iptables 或者 rinetd 来实现转发,我建议使用 rinetd 来实现,因为 iptables 使用 PREROUTING 链来桥接,这回导致本地无法访问,需要单独映射端口,比较麻烦
iptables
这里只给出相关脚本
iptables -t nat -A PREROUTING --dst 192.168.1.4 -p tcp --dport 3306 -j DNAT --to-destination 192.168.1.227:3306
iptables -t nat -A POSTROUTING --dst 192.168.1.227 -p tcp --dport 3306 -j SNAT --to-source 192.168.1.4
service iptables save
service iptables restart
rinetd
配置源
vim /etc/yum.repos.d/nux-misc.repo
[nux-misc]
name=Nux Misc
baseurl=http://li.nux.ro/download/nux/misc/el6/x86_64/
enabled=0
gpgcheck=1
gpgkey=http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
安装 rinetd
yum --enablerepo=nux-misc install rinetd
配置
[bindaddress] [bindport] [connectaddress] [connectport]
绑定的地址 绑定的端口 连接的地址 连接的端口
[Source Address] [Source Port] [Destination Address] [Destination Port]
源地址 源端口 目的地址 目的端口
配置规则
vim /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
allow *.*.*.*
logfile /var/log/rinetd.log
说明:
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 端口
allow 设置允许访问的 ip 地址信息,... 表示所有IP地址
logfile 设置打印的 log 的位置
启动和关闭
/etc/init.d/rinetd start
/etc/init.d/rinetd stop