我想在我的家庭网络中设置一个私有子网。我已经阅读了一些关于此内容的文章,但我不确定/etc/network/interface
在 Linux 下如何设置该文件。Linux 客户端应充当 DSL 路由器和私有子网中其他客户端之间的路由器。客户端通过 eth0 接口连接到路由器,路由器通过 wlan0 接口连接到家庭 wifi。
ubuntu 路由器 iptable 条目包括:
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT
ubuntu 路由器/etc/network/interface
文件如下所示:
auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
allow-hotplug eth0
iface eth0 inet static
address 10.0.0.1
netmask 255.255.255.0
broadcast 10.0.0.255
gateway 192.168.0.1 (Wifi Router IP)
dns-nameservers 192.168.0.1
我还启用了 ip4 转发。ubuntu 客户端的转发如下:
allow-hotplug
iface eth0 net static
address 10.0.0.2 (changed for each client)
netmask 255.255.255.0
broadcast 10.0.0.255
gateway 10.0.0.1 (Ubuntu Router IP)
curl www.google.de
在客户端上使用会给我Could not resolve host: www.google.de
ping 结束于Destination Host Unreachable
答案1
首先,您的 wlan0 接口是 DHCP,因此您必须查看它是否请求并获取了具有租约的 DNS 服务器 IP。您可以通过简单地测试路由器计算机的查找来查看它们是否有效。更准确地说,查看请求和授予的租约。如果您使用的是默认文件,/etc/dhcp/dhclient.conf
那么您应该看到类似以下内容:
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, domain-search, host-name,
netbios-name-servers, netbios-scope, interface-mtu,
rfc3442-classless-static-routes, ntp-servers;
您可以在其中看到 的部分请求domain-name-servers
。您可以修改请求和/或覆盖此文件中的内容。授予的租约应该在 中/var/lib/dhcp/dhclient.wlan0.leases
,您应该在其中看到 DNS 行。
其次,您的客户端计算机使用的是静态 IP 地址,因此您必须告诉它们使用什么作为 DNS。您需要将其添加到它们的 `/etc/network/interface 文件中,即(我不熟悉“allow-hotplug”,但保留了它):
allow-hotplug
iface eth0 net static
address 10.0.0.2 (changed for each client)
netmask 255.255.255.0
broadcast 10.0.0.255
gateway 10.0.0.1 (Ubuntu Router IP)
dns-nameservers 192.168.0.1
第三,从路由器接口文件中删除该dns-nameservers
节。它不属于那里。