当我尝试通过交换机将我的 PC 连接到路由器时,我遇到了一些问题。当 PC 直接连接到路由器时,一切正常,Ubuntu (14.04) 正常启动,并且互联网连接立即运行。以太网控制器是英特尔公司以太网连接,因为 lspci 返回:
$ lspci | grep Eth
00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I217-V (rev 04)
但是,当我尝试通过交换机连接时,我得到的是以下内容。dmesg 返回:
$ dmesg | grep eth
[ 1.035585] e1000e 0000:00:19.0 eth0: registered PHC clock
[ 1.035587] e1000e 0000:00:19.0 eth0: (PCI Express:2.5GT/s:Width x1) 00:22:4d:a7:be:5d
[ 1.035589] e1000e 0000:00:19.0 eth0: Intel(R) PRO/1000 Network Connection
[ 1.035625] e1000e 0000:00:19.0 eth0: MAC: 11, PHY: 12, PBA No: FFFFFF-0FF
[ 1.357838] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 2.165413] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 2.165574] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 2.641287] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 16.715086] e1000e: eth0 NIC Link is Up 100 Mbps Full Duplex, Flow Control: Rx/Tx
[ 16.715090] e1000e 0000:00:19.0 eth0: 10/100 speed: disabling TSO
[ 16.715117] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
看起来 eth0 工作正常。实际上,nm-tool 返回:
$ nm-tool
- Device: eth0 [Conexión cableada] -------------------------------------------
Type: Wired
Driver: e1000e
State: connected
Default: yes
HW Address: 00:22:4D:A7:BE:5D
Capabilities:
Carrier Detect: yes
Speed: 100 Mb/s
Wired Properties
Carrier: on
IPv4 Settings:
Address: 192.168.1.30
Prefix: 24 (255.255.255.0)
Gateway: 192.168.1.1
DNS: 80.58.61.250
DNS: 80.58.61.254
DNS: 192.168.1.1
但是 ping 返回:
$ ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
From 192.168.1.30 icmp_seq=1 Destination Host Unreachable
From 192.168.1.30 icmp_seq=2 Destination Host Unreachable
From 192.168.1.30 icmp_seq=3 Destination Host Unreachable
通过重新启动即可恢复连接:
# ifconfig eth0 down
# ifconfig eth0 up
从此时起,一切都运行顺利,就像 PC 直接连接到路由器一样。
这似乎是与集成 LAN 适配器和以太网控制器有关的问题,因为我的笔记本电脑连接没有任何问题。我的台式机主板是 Intel DB85FL。
如果有人能提供一些关于如何解决这个问题的建议,我将不胜感激。提前谢谢您。
答案1
这是一个明显的例子,说明糟糕的连接如何毁掉你的一天。我有点不好意思承认,我在检查墙上的插座后才意识到这一点(为了替我辩解,我必须说它被一个大书柜遮住了,所以不容易拿到)。
看起来 e1000e 驱动程序花了太长时间协商连接速度。然后驱动程序将连接速度降低到 100Mb 并停止协商。出于某种原因(不幸的是,我不知道这个驱动程序是如何实现的,我猜这些细节与我的理解相去甚远),重新启动驱动程序后协商正常工作。