- 论坛徽章:
- 0
|
用IPTABLES NAT配置后,客户端还是不能上网,请求各位帮忙
主要问题解决,解决方法如下:
首先/sbin/service iptables stop,然后再iptables -t nat -A POSTROUTING -j MASQUERADE,发现客户机可以上网了,原来执行过iptables -t nat -A POSTROUTING -j MASQUERADE,命令,发现上不了网,看来主要原因在没停IPTABLES服务.
然后把自己作的脚本导入后,一步一步测试,发现主要问题在这:
(1) $IPT -P FORWARD DROP ,如果注消掉或改为ACCEPT,客户机上网正常,经测试能安MAC地址要求上网,如果加上马上就不行.对此我不太明白,按理说这个默认规则应该是最后执行,所有规则不匹配才执行,为什么现在加上后,其会屏蔽掉一切规则,我以为是顺序问题,把该句放最后,经测试还是不行.还望各位解答.这好像是最重要的,如默认ACCEPT了感觉特不保险.
(2)#拒绝其他机器访问internet WWW
$IPT -A FORWARD -s $IP_RANGE -p tcp --dport 80 -j REJECT
$IPT -A FORWARD -s $IP_RANGE -p tcp --dport 443 -j REJECT
加上后会屏蔽该网段一切,都上不了网,应该说"仅让2个MAC地址的主机可以浏览外部WWW"应该是例外,怎么一加后会屏蔽掉这两台客户机,虽然其IP属于该网段,但其是以MAC检测的,怎么会屏蔽掉了呢?
(3) #禁止MSN规则的第二句
$IPT -A FORWARD -d $IP_RANGE -j REJECT中的$IP_RANGE有问题,该规则我是从网上COPY 过来的,原来的IP范围是64.4.13.0/24,我改为自己的网段192.168.50.0/24后,又会屏蔽掉所有一切,是不是64.4.13.0/24是MSN的专属IP范围?对此不明白,也不知其原理.
(4) 楼上朋友所说的shell script 有些錯誤
if [ "$INET_IFACE"=ppp0 ]
改為:
if [ "$INET_IFACE" = ppp0 ]
也就是在=号两边各加一个空格,我该后,执行该脚本,显示INET_IP="xxx.xxx.xxx.xxx"有问题,不可知.当然我内网客户机都是固定IP的,不是动态获得,所以这段脚本没必要要的,但我对此不甚明白,还望解答,所谓的xxx.xxx.xxx.xxx格式就是如此,还是我内网DHCP的具体IP,我想不可能是外网的DHCP吧,一是其IP不可知,再是内网客户机都是通过服务器IP伪装上网的,其好像无法实现?对此,还请各位以解小弟的凝惑. |
|