DHCP 工作正常但客户端没有互联网

DHCP 工作正常但客户端没有互联网

正如标题所述。我的 DHCP 为客户端分配 IP 地址和所有这些东西;但是客户端无法访问互联网。这是我的 DHCP 配置:

ddns-update-style none;
option domain-name "home.lan";
option domain-name-servers 8.8.8.8, 8.8.4.4;
default-lease-time 600;
max-lease-time 7200;
option broadcast-address 10.8.8.255;
subnet 10.8.8.0 netmask 255.255.255.0 {
 range 10.8.8.5 10.8.8.9;
 option routers 10.8.8.1;
}
broadcast-address 10.8.8.255

我当然已经添加INTERFACES="eth0"/etc/default/isc-dhcp-server eth0 接口定义/etc/network/interfaces

auto eth0
iface eth0 inet static
address 10.8.8.1
netmask 255.255.255.0
gateway 10.8.8.1
broadcast 10.8.8.255

我已经添加net.ipv4.ip_forward=1/etc/sysctl.conf

在网上,我读到可以使用 Linux GUI 简单地共享网络。(以下是有关如何共享连接的简单指南,其中包含屏幕截图) 但在我的例子中它不起作用。如果我将 wlan0(自动 DHCP)更改为(共享给其他计算机),则重启后我无法访问互联网,因为 wlan0 不会自动获取连接信息。

客户端接收 IP、默认网关、DNS、网络掩码等。有人能帮我找出它为什么不起作用吗?我使用的是 ubuntu 12.04。谢谢。

答案1

您的第一步看起来不错,但您还必须使用来设置 IP 伪装 (NAT) iptables

发出以下命令:

iptables --table nat --append POSTROUTING --out-interface ethX -j MASQUERADE
iptables --append FORWARD --in-interface eth0 -j ACCEPT

假设这eth0是您的本地 LAN,并且ethX是您的外部接口 (inet)。我还建议您将这些命令放入 init 脚本中,因为它们是易失性的,iptables 规则在重新启动后会丢失。

在继续之前,我建议您在 Google 上搜索“Ubuntu NAT”,那里有很多可立即使用的脚本来解决这个问题。

祝你好运!

答案2

在 /etc/network/interfaces 中,(远程)网关的地址不应与本地接口的地址相同。

相关内容