Linux 利用Iptables 做端口转发

有A、B、C三台机器

A有一个块网卡: eth1:192.168.66.225

B一个网卡:eth0:192.168.66.10

C一个网卡:eth0:192.168.66.11

iptables -t filter -A FORWARD -o eth1 -p tcp -j ACCEPT   #将A能够转发数据包

iptables -t filter -A FORWARD -i eth1 -p tcp -j ACCEPT

 

  1. #将进入路由前的数据的目的IP改成 C的IP ,端口号可以根据自己的情况来,我用的8080

 iptables -t nat  -A PREROUTING -p tcp -m tcp –dport 18888 -j DNAT –to-destination 192.168.66.11:188     

  1. #将要转发的数据包的源IP改成A 的IP

iptables -t nat -A POSTROUTING -d 192.168.66.10 -p tcp -m tcp –dport 8080 -j SNAT –to-source 192.168.66.11

如果要让包转发功能在系统启动以后自动生效,需要修改/etc/sysctl.conf文件,添加一行:

# Controls IP packet forwarding

net.ipv4.ip_forward = 1

Zmsky

http://xloli.net/?page_id=11

发表评论