问题如下:
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.
有什么想法可能导致此类问题吗?
答案1
看起来是因为 DHCP 客户端启动时 /var/lib/dhcp3 或 /var/run 尚未挂载。
根据dhclient 的手册页,尝试指定这些文件的名称和/或位置,分别使用 -cf、-lf、-pf 和 -sf 标志,后跟文件名。(DHCP 客户端通常从
/etc/dhcp3/dhclient.conf
,其租赁数据库来自
/var/lib/dhcp3/dhclient.leases
,将其进程 ID 存储在名为
/var/run/dhclient.pid
并使用配置网络接口
/sbin/dhclient-script