无法建立有线网络,无线可用

无法建立有线网络,无线可用

我有 Ubuntu 14.10 和 Windows 10 的双启动。

启动 Windows 后不存在任何网络问题。

但是,每当我启动 Ubuntu 时,我甚至无法连接到我的路由器(ZTE ZXDSL 931VII)。DHCP 似乎无法获取 IP(我从未获得过 ipv4 地址,而 ipv6 只获得基于 MAC 的自动配置地址),尽管 tcpdump 确实列出了一些(我假设是传出的)ARP 和其他 UDP 数据包。

以前有线连接是可以工作的,但是由于我几个月没开机了,所以我不确定这个问题是什么时候开始的。我猜可能是由于一些更新。:-/

顺便说一句,无线连接无需任何额外配置即可工作。

我尝试了几种方法,但都无法解决问题(从上到下):

  • 重启
  • ifconfig eth0 启动和关闭
  • 将 DNS 服务器配置为 8.8.8.8 和 8.8.4.4
  • 重新配置 DHCP(dhclient.conf)
  • 在 /etc/network/interfaces 中指定 auto eth0 和 iface eth0 inet[6] dhcp 的变体(最终导致 eth0 iface 不受管理)
  • 更改我的主机名
  • 手动设置静态 IPv4 地址
  • 禁用 ipv4,启用 ipv6,反之亦然
  • 删除 Docker 接口
  • 通过网络管理器 GUI 进行各种其他设置

简而言之,从配置的角度来看一切都看起来很正常,我觉得我已经用尽一切办法来修复这个问题。

在我看来,根本没有实现任何 IP 连接。我没有费心通过 MAC 探测路由器。

我也没有尝试更新驱动程序或任何相关软件,但一旦我尝试更新,我会在这里回复。

这是我的网卡:

05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)
Subsystem: Gigabyte Technology Co., Ltd Motherboard
Flags: bus master, fast devsel, latency 0, IRQ 74
I/O ports at b000 [size=256]
Memory at fe600000 (64-bit, non-prefetchable) [size=4K]
Memory at d0000000 (64-bit, prefetchable) [size=16K]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [70] Express Endpoint, MSI 01
Capabilities: [b0] MSI-X: Enable- Count=4 Masked-
Capabilities: [d0] Vital Product Data
Capabilities: [100] Advanced Error Reporting
Capabilities: [140] Virtual Channel
Capabilities: [160] Device Serial Number 01-00-00-00-68-4c-e0-00
Kernel driver in use: r8169

ifconfig 给我:

eth0      Link encap:Ethernet  HWaddr 74:d4:35:xx:yy:zz  
      inet6 addr: fe80::76d4:35ff:fexx:yyzz/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:1440 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

当我检查网卡的状态时,它显示检测到链接。

$ ethtool eth0

Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes:   10baseT/Half 10baseT/Full 
                        100baseT/Half 100baseT/Full 
                        1000baseT/Half 1000baseT/Full 
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes:  10baseT/Half 10baseT/Full 
                        100baseT/Half 100baseT/Full 
                        1000baseT/Half 1000baseT/Full 
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Link partner advertised link modes:  10baseT/Half 10baseT/Full 
                                     100baseT/Half 100baseT/Full 
Link partner advertised pause frame use: Symmetric
Link partner advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000033 (51)
               drv probe ifdown ifup
Link detected: yes

有任何想法吗?

答案1

听起来像是一个可怕的独白,但我似乎已经解决了这个问题。

问题出在 Realtek 以太网卡驱动程序上,很可能是由我不记得是否进行过的更新造成的。

我意识到安装的驱动程序是 r8169,但应该安装的是 r8168。

解决方案是下载适合您的内核的最新驱动程序(我的是 3.xx)并安装它们。

Realtek r8168 驱动程序(Linux): http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PNid=13&PFid=5&Level=5&Conn=4&DownTypeID=3&GetDown=false#2

请参阅里面的 README 文件来了解安装说明。

安装后,请确保重新启动。

如果需要从内核模块中手动删除 r8169,可以这样做:

sudo modprobe -r r8169

还是没有网络?

检查 /etc/resolv.conf(为名称服务器添加 8.8.8.8 和 8.8.4.4 应该可以解决问题)。

希望它能为某些人节省几个小时。:-)

干杯!

相关内容