实验环境:
系统:centos6.2 linux2.6
vmware虚拟环境测试
有A、B、C三台机器
A有一个块网卡: eth1:1923168.66.225
B一个网卡:eth0:192.168.66.10
C一个网卡:eth0:192.168.66.11
由于某种需要,我希望B能将数据包发给C,但是又不能直接发送,而A又能与B、C交互数据包,此时,我就希望,B将数据包给A,然后A再把数据包,转发给C,与此同时,A要将转发的数据包的目的地址改成 B,那么当C收到A转发过来的包时,就像是B直接发给C的一样。
可以用 netflter/iptables
对A进行配置:
$ iptables -t filter -A FORWARD -o eth1 -p tcp -j ACCEPT #将A能够转发数据包 $ iptables -t filter -A FORWARD -i eth1 -p tcp -j ACCEPT #将进入路由前的数据的目的IP改成 C的IP ,端口号可以根据自己的情况来,我用的8080 $ iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.66.10:8080 #将要转发的数据包的源IP改成A 的IP $ iptables -t nat -A POST