为什么 /etc/network/interfaces 被忽略?

AVH*_*AVH 11 networking xen

过去 2 小时我一直在互联网上搜索,但似乎无法找到以下问题的解决方案。

我刚刚在新的 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
Run Code Online (Sandbox Code Playgroud)

为了修复我的网络连接,我运行了一个小的“修复”脚本:

#!/bin/bash
ifconfig xenbr0 192.168.1.200 netmask 255.255.255.0 up
route add default gw 192.168.1.1 xenbr0
Run Code Online (Sandbox Code Playgroud)

不过,我想修复核心。现在启动至少需要 1 分钟的额外时间,因为系统等待工作网络连接。

编辑:我还必须将以下内容添加到 /etc/resolvconf/resolv.conf.d/base 并运行sudo resolvconf -u

nameserver 192.168.1.1
Run Code Online (Sandbox Code Playgroud)

没有这个我只能ping IP地址,没有DNS请求通过。这实际上是让我确信接口文件被完全忽略的原因。

编辑2:做sudo restart networkingsudo /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)
Run Code Online (Sandbox Code Playgroud)

这是启动后的样子。唯一缺少的是 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)
Run Code Online (Sandbox Code Playgroud)

Rob*_*sak 17

你有:

address         192.168.1.200 # the IP address of the Ethernet port
Run Code Online (Sandbox Code Playgroud)

并报告这是不工作的线路。您是否从接口(5)中知道:

   Lines starting with `#' are ignored. Note  that  end-of-line  comments
   are NOT supported, comments must be on a line of their own.
Run Code Online (Sandbox Code Playgroud)

您是否为问题添加了行尾注释,或者您的/etc/network/intefaces文件中是否确实有它们?如果是这样,请尝试删除它们。


AVH*_*AVH 3

我通过更改 2 个文件成功解决了我的问题。首先,正如 Eric Carvalho 所建议的,我auto eth0/etc/networking/interfaces. (请注意,这很奇怪,一些在线教程似乎表明 Xen 不需要这样做。)

但这本身并不能解决启动缓慢的问题。启动时似乎还需要几秒钟的时间才能出现界面,同时 Ubuntu 已经陷入了 60 秒的空闲等待状态。我通过将延迟时间/etc/init/failsafe.conf从 60 秒修改为 1 秒来修复此问题。(我通过 Google 找到了这个文件,但不知道它到底是哪个。)