iptables开启端口转发(Port forwarding)


由于某些原因,我们需要将访问到本机的数据转发到另外一台机器上
常见转发是实用方式是通过可以连接外部网络的机器将访问转发至内网的机器

基本设置如下:

开启端口转发功能

编辑/etc/sysctl.conf 文件,vi  /etc/sysctl.conf
将net.ipv4.ip_forward=0  改为net.ipv4.ip_forward=1 保存

或者echo -e "net.ipv4.ip_forward=1" >> /etc/sysctl.conf

运行sysctl -p   即刻生效


进行端口转发


A)将本机转发至目标机器
iptables -t nat -A PREROUTING -p tcp -d [本地服务器主网卡绑定IP] --dport [本地端口] -j DNAT --to-destination [目标IP:目标端口]
iptables -t nat -A PREROUTING -p udp -d [本地服务器主网卡绑定IP] --dport [本地端口] -j DNAT --to-destination [目标IP:目标端口]

B)将目标机器返回的数据转发至本机
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]

保存规则
service  iptables  save

查看已设定内容
iptables -t nat -L -n --line-numbers