1

我有一个在我的 archlinux 主机上运行的 LXC debian 容器。我尝试使用 wlan0 设置网桥(lxc-bridge-nat),但我无法从容器 ping 外部世界,除非我使用 ip 而不是域名 ping。

我可以从主机 ping 容器,从容器 ping 主机。

这里有一些信息:

主机:ip地址

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether d4:be:d9:70:bd:e5 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether c4:85:08:b4:5c:e9 brd ff:ff:ff:ff:ff:ff
    inet 192.168.42.121/24 brd 192.168.42.255 scope global wlan0
       valid_lft forever preferred_lft forever
    inet6 fe80::c685:8ff:feb4:5ce9/64 scope link 
       valid_lft forever preferred_lft forever
       valid_lft forever preferred_lft forever
4: lxc-bridge-nat: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
    link/ether fe:b3:b7:a2:e1:31 brd ff:ff:ff:ff:ff:ff
    inet 192.168.50.1/24 brd 192.168.50.255 scope global lxc-bridge-nat
       valid_lft forever preferred_lft forever
    inet6 fe80::b0c8:d2ff:fe73:aa50/64 scope link 
       valid_lft forever preferred_lft forever

主机:ip路由

default via 192.168.42.1 dev wlan0  proto static 
192.168.42.0/24 dev wlan0  proto kernel  scope link  src 192.168.42.121  metric 9 
192.168.50.0/24 dev lxc-bridge-nat  proto kernel  scope link  src 192.168.50.1

容器:ip 地址

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
10: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:ff:aa:00:00:01 brd ff:ff:ff:ff:ff:ff
    inet 192.168.50.2/24 brd 192.168.50.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::2ff:aaff:fe00:1/64 scope link 
       valid_lft forever preferred_lft forever

容器:ip路由

default via 192.168.50.1 dev eth0 
192.168.50.0/24 dev eth0  proto kernel  scope link  src 192.168.50.2

容器:/etc/resolv.conf

nameserver 212.27.40.240
nameserver 212.27.40.241
4

2 回答 2

1

主机名没有立即解析到 DNS 服务器,发布内容在resolv.conf这里很有用;它们是此设置中唯一不受您直接控制的部分。

正如您所发现的,简单地 ping 远程服务器并不总是有帮助 -nslookup对它们运行表明它们是问题所在。(作为对立面,由于其ping本身的工作方式,ping 没有响应并不意味着服务器已关闭 - 在防火墙级别阻止 ping 是微不足道的。)

要解决您的 DNS 问题,您可以使用其他 DNS 服务器,例如由 Google 托管的那些。只需将您的更改resolv.conf为:

nameserver 8.8.8.8
nameserver 8.8.4.4
于 2013-09-20T14:54:19.863 回答
1

在 /etc/network/interfaces 中添加 8.8.8.8 不是一个好主意。您应该保持接口文件不变(恢复旧设置)并仅修改 /etc/resolv.conf 文件。

您已将容器 IP 设置为与 Google 的 DNS 服务器之一相同的 IP。

当然,ping 会起作用,但是当您尝试解析 DNS 主机名时,您的容器将自行联系并生成错误。

于 2015-06-15T22:35:48.977 回答