问题是:
root@home:~# ping 8.8.8.8
connect: Network is unreachable
root@home:~# dhclient eth0
RTNETLINK answers: File exists
root@home:~# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=51 time=16.8 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=51 time=16.6 ms
^C
--- 8.8.8.8 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 16.654/16.737/16.820/0.083 ms
root@home:~#只有在我手动调用dhclient之后,网络才能正常工作。我没有NetworkManager (移除)。下面是来自/etc/network/interfaces的相关行:
auto eth0
iface eth0 inet dhcp下面是启动日志:
root@home:~# cat /var/log/syslog | grep dhclient
May 28 21:39:44 home kernel: [ 7.237076] type=1400 audit(1369762781.497:2): apparmor="STATUS" operation="profile_load" name="/sbin/dhclient" pid=405 comm="apparmor_parser"
May 28 21:39:44 home kernel: [ 7.238298] type=1400 audit(1369762781.497:4): apparmor="STATUS" operation="profile_load" name="/usr/lib/connman/scripts/dhclient-script" pid=405 comm="apparmor_parser"
May 28 21:39:45 home dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 8 (xid=0x79607e29)
May 28 21:39:45 home dhclient: DHCPREQUEST of 192.168.0.103 on eth0 to 255.255.255.255 port 67 (xid=0x79607e29)
May 28 21:39:45 home dhclient: DHCPOFFER of 192.168.0.103 from 192.168.0.1
May 28 21:39:45 home dhclient: DHCPACK of 192.168.0.103 from 192.168.0.1
May 28 21:39:45 home dhclient: bound to 192.168.0.103 -- renewal in 234779 seconds.
May 28 21:39:45 home kernel: [ 11.695666] type=1400 audit(1369762785.953:10): apparmor="STATUS" operation="profile_replace" name="/sbin/dhclient" pid=1154 comm="apparmor_parser"
May 28 21:40:11 home dhclient: DHCPREQUEST of 192.168.0.103 on eth0 to 255.255.255.255 port 67 (xid=0x2aa61c47)
May 28 21:40:11 home dhclient: DHCPACK of 192.168.0.103 from 192.168.0.1
May 28 21:40:11 home dhclient: bound to 192.168.0.103 -- renewal in 243414 seconds.有什么想法会导致这样的问题吗?
更新:我发现默认网关不是在引导时添加的,而是在重新启动networking服务或手动运行dhclient时添加的。但我还没找到导致这种行为的原因。
发布于 2013-08-02 21:46:05
在我的例子中,在CentOS 6/Fedora下,这与/etc/sysconfig/network/ifcfg-eth0和/etc/udev/rues.d/70-持久性-net.ules之间的不一致有关。
在这两个文件中,都声明了与eth0接口相关联的MAC。在VM克隆上,分配了一个新的MAC,但在这里没有反映出来(管理员应该这样做)。
启动时,您可以在dmesg中看到真正的eth0被重命名为eth1 (与ifcfg-eth0冲突),然后在70-持久性-net.ules下自动创建一个新条目,该规则将查找的MAC与eth1关联。
dhclient没有启动(或者启动,中止)--结果是系统没有从DHCP服务器获得IP。
值得注意的是,运行dhclient手动强制为假eth1获取IP,网络在此之后正常工作。直到下一次重启。
手动编辑上面引用的文件,这样MAC和eth*名称是一致的,解决了这个问题-- dhclient现在在启动时启动&获得自己的IP。
发布于 2013-05-29 17:43:48
一般来说,您应该通过备选方案003从DHCP服务器获得默认网关。最好的方法是将您的DHCP服务器配置为正确地向客户端提供此信息。如果您由于任何原因不能这样做,我相信您可以使用/etc/network/interfaces指令在您的gateway文件中手动指定它(参见命令页)。我从来没有这样做过,但我认为它应该适用于没有静态配置的接口。
如果没有,可以使用init脚本手动添加它。
看起来您正在正确地使用dhclient接收DHCP租约。我怀疑NetworkManager没有被完全删除,或者您有另一个网络自动配置实用程序正在启动(可能绑定到您的桌面环境)并试图重新配置您的网络设置。
首先,通过运行网络init脚本确认您的/etc/network/interfaces配置正确:
sudo /etc/init.d/networking restart或者只使用ifup和ifdown:
sudo ifdown eth0 && ifup eth0然后确保您没有任何挥之不去的网络管理器痕迹:
sudo apt-get purge network-managerhttps://serverfault.com/questions/511737
复制相似问题