Debian 6 互联网连接共享(又名 IP 伪装)不起作用

Debian 6 互联网连接共享(又名 IP 伪装)不起作用

问题:计算机 [Xbox 360 和 Kubuntu 12.04.1 笔记本电脑] 无法通过最近安装的无桌面 Debian 6 笔记本电脑(无线连接到 WLAN 站)访问互联网,但可以成功提供地址dnsmasq

尝试:

1.1) /etc/dnsmaq.conf根据http://wiki.debian.org/HowTo/dnsmasq:添加行

interface=eth0
dhcp-range=192.168.0.50,192.168.0.150,255.255.255.0,12h

1.2)跟随http://www.cyberciti.biz/faq/rhel-fedora-linux-internet-connection-sharing-howto/并使用他们的剧本设置 iptables。

2)跟着Ubuntu 互联网网关方法(iptables)https://help.ubuntu.com/community/Internet/ConnectionSharing推荐并有效在 Linux 中共享互联网

Debian 笔记本电脑重新启动了多次,每次尝试之间,有或没有剧本通过 自动执行/etc/rc.local

在将iptables-restore命令添加到该文件时我禁用了该脚本。

编辑1:

网关可 ping 通,平均耗时 39 毫秒。

iptables -nvL在尝试 #2 生效后,执行以下命令,直接从笔记本电脑的显示器写入:

Chain INPUT (policy ACCEPT 179 packets, 26088 bytes)
 pkts bytes target     prot opt in     out     source                  destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source                  destination
    0     0 ACCEPT     all  --  wlan0  eth0    192.168.0.0/24          0.0.0.0/0
         ctstate NEW
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0               0.0.0.0/0
         ctstate RELATED,ESTABLISHED

Chain OUTPUT (policy ACCEPT 88 packets, 10716 bytes)
 pkts bytes target     prot opt in     out     source                  destination

编辑2: iptables -t nat -nvL

Chain PREROUTING (policy ACCEPT 232 packets, 56438 bytes)
 pkts bytes target     prot opt in     out     source                  destination

Chain POSTROUTING (policy ACCEPT 60 packets, 4059 bytes)
 pkts bytes target     prot opt in     out     source                  destination

    4  1032 MASQUERADE  all  --  *      eth0    0.0.0.0/0               0.0.0.0/0


Chain OUTPUT (policy ACCEPT 64 packets, 5091 bytes)
 pkts bytes target     prot opt in     out     source                  destination

编辑3:我试过https://www.debian-administration.org/articles/23通过告诉 /etc/rc.local 运行它,并单独运行它,但问题仍然完全相同。这次我将 eth1 与 wlan0 进行了切换。

答案1

似乎您设置了错误的执行接口MASQUERADE。您声明要将笔记本电脑的互联网连接(可能是wlan0您的机器上的)“共享”到有线连接(似乎是eth0您的机器上的)。但是,您的POSTROUTING链式规则配置为eth0而不是wlan0(列中的 v 值out与此相关)。

尝试将您提到的脚本更改为如下形式:

# set wan interface such as eth1 or ppp0
SHARE_IF="wlan0"

然后它使用该接口在以下行中正确设置你的 iptabels 规则:

echo "Setting ${SHARE_IF} as router interface..."
$IPT --table nat --append POSTROUTING --out-interface ${SHARE_IF} -j MASQUERADE

相关内容