LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1009|回复: 9

iptables 的问题

[复制链接]
发表于 2005-4-26 08:19:37 | 显示全部楼层 |阅读模式
我想通过iptables 带动局域网内另一台机子共享上网,可是它能上校园网,却怎么也上不了因特网,请高手帮忙解决.我的规则如下:
#!/bin/sh
IPT=/sbin/iptables
LAN_FACE=192.168.13.5
INET_FACE=0/0
echo "1" >/proc/sys/net/ipv4/ip_forward
echo "1" >/proc/sys/net/ipv4/ip_dynaddr
/sbin/modprobe ip_nat_ftp

$IPT -F
$IPT -t nat -F
$IPT -X
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

$IPT -A INPUT -s $LAN_FACE -i eth0 -p tcp --dport 23 -j ACCEPT
$IPT -A INPUT -p tcp ! --syn -j ACCEPT
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

$IPT -A OUTPUT -j ACCEPT

$IPT -t nat -A POSTROUTING -s $LAN_FACE -o ppp+ -j MASQUERADE
$IPT -t nat -A PREROUTING -s $INET_FACE -i ppp+ -j DNAT --to $LAN_FACE

$IPT -A FORWARD -s $LAN_FACE -i eth0 -o ppp+ -d $INET_FACE -j ACCEPT
$IPT -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -s $INET_FACE -i ppp+ -p udp --sport 53 -o eth0 -d $LAN_FACE -j ACCEPT
发表于 2005-4-26 11:08:47 | 显示全部楼层
INET_FACE=0/0
这个没指定IP?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-26 21:02:30 | 显示全部楼层
Post by konds
INET_FACE=0/0
这个没指定IP?

因为是用PPPOE拨号上网,所以没有指定ip.
回复 支持 反对

使用道具 举报

发表于 2005-4-27 07:02:27 | 显示全部楼层
从最简单的入手。
$IPT -t nat -A POSTROUTING -s $LAN_FACE -o ppp+ -j MASQUERADE
这句有问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-27 20:24:11 | 显示全部楼层
Post by faint
从最简单的入手。
$IPT -t nat -A POSTROUTING -s $LAN_FACE -o ppp+ -j MASQUERADE
这句有问题。

我今天已经把所有链的规则都清除并且把默认策略置为ACCEPT,然后只设置PREROUTING进行伪装,POSTROUTING进行DNAT,结果它还是上不了.真把我给搞得一点办法都没有了.   
能仔细说明上面那句是什么问题妈.
回复 支持 反对

使用道具 举报

发表于 2005-4-30 14:17:17 | 显示全部楼层
作者: faint
从最简单的入手。
$IPT -t nat -A POSTROUTING -s $LAN_FACE -o ppp+ -j MASQUERADE
这句有问题

把这句改成 $IPT -t nat -A POSTROUTING -i eth0 -j MASQUERADE
回复 支持 反对

使用道具 举报

发表于 2005-4-30 17:01:09 | 显示全部楼层
$IPT -t nat -A POSTROUTING -s $LAN_FACE -o ppp+ -j MASQUERADE
$IPT -t nat -A PREROUTING -s $INET_FACE -i ppp+ -j DNAT --to $LAN_FACE
两句改成
$IPT -t nat -A POSTROUTING -o $ppp+ -j MASQUERADE
你就不是一个伪装吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-3 11:11:18 | 显示全部楼层
我的windows 机器的ip地址是192.168.13.5,而我的Linux机器的接内网的ip地址是192.168.13.2。现在我的windows机器通过ip地址能ping到我的ISP的主机,而通过ping主机名却ping不到,我分析最有可能是DNS解析包没有发出去或者没有收到。而我又试着加了两句
$IPT -t nat -A POSTROUTING -o ppp+ -p udp --sport 53 -j MASQUERADE
$IPT -t nat -A PREROUTING -i ppp+ -p udp --dport 53 -j DNAT --to $LAN_FACE
但问题还是没有解决。请大家多帮帮忙,帮我分析问题倒底出在哪。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-6 13:01:54 | 显示全部楼层
谢谢兄弟们帮忙,问题已经解决了.原来原因就是我没开DNS服务器.自从开了DNS服务器之后就能共享上网了,真爽.
回复 支持 反对

使用道具 举报

发表于 2005-5-15 00:00:26 | 显示全部楼层
chenzc 你还来吗我想我的代理可能跟你差不多我是校园网的但是不会
我在linux里面不会设置代理让别人上网
我想iptables能解决吧你教下我好吗我不会配置
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表