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文件里有包的流向