端口转发自然已经介绍过了rinetd和socat这两个简单易用的工具,今天来介绍一下系统自带的iptables防火墙转发方案。iptables防火墙转发方案适用于拥有iptables工具的系统,其最大特色就是拥有强盗的转发性能和支持端口段转发,缺点就是对小白不友好,配置有难度,且容易出现奇奇怪怪的问题。
新手推荐使用rinetd和socat:
1、linux使用socat进行端口转发,支持tcp/udp数据转发
2、linux使用rinetd进行tcp/udp端口转发,可加速网站
方法
1、开启系统的转发功能
vim /etc/sysctl.conf net.ipv4.ip_forward=0 修改成 net.ipv4.ip_forward=1
编辑及后立即生效,需执行
sysctl -p
2、iptables的命令
iptables -t nat -A PREROUTING -p tcp --dport [端口号] -j DNAT --to-destination [目标IP] iptables -t nat -A PREROUTING -p udp --dport [端口号] -j DNAT --to-destination [目标IP] iptables -t nat -A POSTROUTING -p tcp -d [目标IP] --dport [端口号] -j SNAT --to-source [本地服务器IP] iptables -t nat -A POSTROUTING -p udp -d [目标IP] --dport [端口号] -j SNAT --to-source [本地服务器IP]
重启iptables生效
service iptables save service iptables restart
扩展需求
1、多端口转发修改方案:
#将本地服务器的50000~65535转发至目标IP为1.1.1.1的50000~65535端口 -A PREROUTING -p tcp -m tcp --dport 50000:65535 -j DNAT --to-destination 1.1.1.1 -A PREROUTING -p udp -m udp --dport 50000:65535 -j DNAT --to-destination 1.1.1.1 -A POSTROUTING -d 1.1.1.1/32 -p tcp -m tcp --dport 50000:65535 -j SNAT --to-source [本地服务器IP] -A POSTROUTING -d 1.1.1.1/32 -p udp -m udp --dport 50000:65535 -j SNAT --to-source [本地服务器IP]
2、非同端口号修改方案:
#使用本地服务器的60000端口来转发目标IP为1.1.1.1的50000端口 -A PREROUTING -p tcp -m tcp --dport 60000 -j DNAT --to-destination 1.1.1.1:50000 -A PREROUTING -p udp -m udp --dport 60000 -j DNAT --to-destination 1.1.1.1:50000 -A POSTROUTING -d 1.1.1.1/32 -p tcp -m tcp --dport 50000 -j SNAT --to-source [本地服务器IP] -A POSTROUTING -d 1.1.1.1/32 -p udp -m udp --dport 50000 -j SNAT --to-source [本地服务器IP]