我已经在网上搜索了两个小时,但似乎无法找到以下问题的解决方案。
我刚刚在全新的 Xubuntu 13.04 中安装了 Xen,为了设置网络,我必须删除 network_manager。因此,所有网络配置都是通过 /etc/network/interfaces 完成的。至少,应该如此。但是,我输入的内容似乎被忽略了:我的 xenbr0 接口没有分配 IPv4 地址,没有默认网关,也没有设置名称服务器。
/etc/network/interfaces 文件中的内容如下:
auto lo
iface lo inet loopback
# There are no IP configurations for eth0, it’s all defined under xenbr0:
#auto eth0
# Static configuration
auto xenbr0
iface xenbr0 inet static
bridge_ports eth0
address 192.168.1.200 # the IP address of the Ethernet port
broadcast 192.168.1.255
netmask 255.255.255.0
gateway 192.168.1.1 # the address of the router
bridge_stp off # disable Spanning Tree Protocol - optional
bridge_waitport 0 # no delay before a port becomes available - optional, comment out if this gives you troubles
bridge_fd 0 # no forwarding delay - optional
dns-nameservers 192.168.1.1
为了修复我的网络连接,我运行了一个小的“修复”脚本:
#!/bin/bash
ifconfig xenbr0 192.168.1.200 netmask 255.255.255.0 up
route add default gw 192.168.1.1 xenbr0
不过我想修复核心问题。目前启动至少需要额外 1 分钟,因为系统要等待网络连接。
编辑:我还必须将以下内容添加到 /etc/resolvconf/resolv.conf.d/base 并运行sudo resolvconf -u
:
nameserver 192.168.1.1
没有这个,我只能 ping IP 地址,DNS 请求无法通过。这实际上让我确信接口文件被完全忽略了。
编辑2:要么做sudo restart networking
,要么sudo /etc/init.d/networking restart
不做任何事情。
编辑3:一些额外的信息。ifconfig
输出应该是这样的(工作网络/互联网连接):
eth0 Link encap:Ethernet HWaddr 00:1c:c0:77:09:9d
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3346 errors:0 dropped:0 overruns:0 frame:0
TX packets:2903 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2931429 (2.9 MB) TX bytes:661616 (661.6 KB)
Interrupt:20 Memory:e3200000-e3220000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:16 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1720 (1.7 KB) TX bytes:1720 (1.7 KB)
xenbr0 Link encap:Ethernet HWaddr 00:1c:c0:77:09:9d
inet addr:192.168.1.200 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::21c:c0ff:fe77:99d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3329 errors:0 dropped:0 overruns:0 frame:0
TX packets:2875 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2870029 (2.8 MB) TX bytes:647394 (647.3 KB)
这是启动后的样子。唯一缺少的是 xenbr0 IPv4 地址(以及路由/DNS 数据,但您在 ifconfig 的输出中看不到):
eth0 Link encap:Ethernet HWaddr 00:1c:c0:77:09:9d
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0 B) TX bytes:0 (0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:16 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0 B) TX bytes:0 (0 B)
xenbr0 Link encap:Ethernet HWaddr 00:1c:c0:77:09:9d
inet6 addr: fe80::21c:c0ff:fe77:99d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0 B) TX bytes:0 (0 B)
答案1
你有:
address 192.168.1.200 # the IP address of the Ethernet port
并报告这是不工作的线路。您是否从接口(5)中知道:
Lines starting with `#' are ignored. Note that end-of-line comments
are NOT supported, comments must be on a line of their own.
您是否为问题添加了行末注释,或者您的/etc/network/intefaces
文件中是否确实有这些注释?如果是,请尝试将其删除。
答案2
也许,尽管删除了网络管理器包,你仍然有/etc/NetworkManager/NetworkManager.conf
包含
[ifupdown]
managed=true
这导致ifup
无法自动启动接口。
如果这是问题的原因,那么我建议dpkg --purge network-manager
或者设置managed=false
。
我提交了一个关于此的错误报告:https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/1187693
答案3
我设法通过更改 2 个文件解决了我的问题。首先,按照 Eric Carvalho 的建议,我取消了auto eth0
中的注释/etc/networking/interfaces
。(请注意,这很奇怪,网上的几个教程似乎表明 Xen 不需要这样做。)
但这本身并不能解决启动缓慢的问题。似乎在启动时,界面出现之前仍需要几秒钟,而与此同时,Ubuntu 已经陷入了 60 秒的空闲等待。我通过将延迟时间从 60 秒修改/etc/init/failsafe.conf
为 1 秒来解决这个问题。(我通过 Google 找到了这个文件,但不知道具体是哪一个。)