|
发表于 2005-8-6 23:09:25
|
显示全部楼层
正在学习iptables,看了楼主的问题,我想不知道这样行不行,没试过,高手给看看:
/sbin/iptables -t nat -A PREROUTING -d ppp0地址 -j DNAT --to-destination 192.168.134.16:80
/sbin/iptables -A FORWARD -p tcp -i eth0 -d 192.168.134.16 --dport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -s 192.168.134.16:80 -j SNAT --to-source ppp0地址
(这三句的顺序对不对,我觉得应该是先DNAT,再过滤)
看上面楼主兄弟的第三句,是不是不想让内网访问?那就不要用POSTROUTING,这个链子只能做网址转译。
ppp0地址是比较麻烦,不过如果用个脚本可能会好些,下面是我设想的,不知对不对,
比如每次拨号后执行一下:
[php]
#!/bin/sh
ifconfig ppp0 | grep inet > /tmp/ppp0.tmp
cut -c 21-36 /tmp/ppp0.tmp > /tmp/ppp_0
[/php]
把上面iptables里第二句改成:
for ppp0 in 'cat /tmp/ppp_0'
do
/sbin/iptables -t nat -A PREROUTING -d $ppp0 -j DNAT --to-destination 192.168.134.16:80
done
拨号后重启防火墙。
自己对iptables还觉得很生疏,请大家指点。 |
|