pc1   1.1.1.1      pc2   2.2.2.2

port 80               port 80

 

1、 首先应该做的是/etc/sysctl.conf配置文件的 net.ipv4.ip_forward = 1 默认是0
    这样允许iptalbes FORWARD。

2、 在/etc/rc.d/init.d目录下有iptables 文件,使用格式如下
    Usage: ./iptables {start|stop|restart|condrestart|status|panic|save}
    相当与service iptables {....}
    把iptables 服务停止,清除以前的规则,存盘
    到/etc/rc.d/init.d目录下,

运行

./iptables stop

iptalbes -F
iptalbes -X
iptalbes -Z
./iptables save

 

3、 重新配置规则

iptables -t nat -A PREROUTING -d 1.1.1.1 -p tcp --dport 80 -j DNAT --to-destination 2.2.2.2:80

iptables -t nat -A POSTROUTING -d 2.2.2.2 -p tcp --dport 80 -j SNAT --to 1.1.1.1

iptables -A FORWARD -o eth0 -d 2.2.2.2 -p tcp --dport 80 -j ACCEPT

iptables -A FORWARD -i eth0 -s 2.2.2.2 -p tcp --sport 80 -j ACCEPT

这里需要注意的是,系统在路由及过虑等处理直到数据包要被送出时才进行SNAT。

有一种SNAT的特殊情况是ip欺骗,也就是所谓的Masquerading,通常建议在使用拨号上网的时候使用,或者说在合法ip地址不固定的情况下使用。比如

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

可以看出,这时候我们没有必要显式的指定源ip地址等信息。 

 

 

4、 新的规则存盘

   ./iptables save

 

存盘后在

/etc/sysconfig/iptables

这个文件里面

 

5、 启动iptables 服务

    ./iptables start

    在/proc/net/ip_conntrack文件里有包的流向