卡在获取 IP 配置处

卡在获取 IP 配置处

最近,每当我尝试连接到以太网时,Ubuntu 都会检测到 LAN 线,但需要很长时间(大约 10 分钟)才能获取 IP 地址。

输出nm-tool

Type: Wired
Driver: r8169
State: connecting (getting IP configuration)
Default: no
HW Address: ----------

Capabilities:
  Carrier Detect: yes
  Speed: 100Mb/s

Wired Properties:
  Carrier: on

DHCP服务器没有问题。Windows连接同一个局域网非常快。

内容/etc/network/interfaces

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

什么可能导致这个问题?

编辑:

输出ifconfig

eth0      Link encap:Ethernet  HWaddr e8:03:9a:b6:d1:2a  
      inet addr:10.2.64.198  Bcast:10.2.95.255  Mask:255.255.224.0
      inet6 addr: fe80::ea03:9aff:feb6:d12a/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:1123164 errors:0 dropped:0 overruns:0 frame:0
      TX packets:582761 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:1503341500 (1.5 GB)  TX bytes:56327121 (56.3 MB)

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:119202 errors:0 dropped:0 overruns:0 frame:0
      TX packets:119202 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:7588901 (7.5 MB)  TX bytes:7588901 (7.5 MB)

输出dmesgPastebin 链接

答案1

以下是一些建议,但绝不是明确的答案:

尝试不同的 dhcp 客户端

如果您使用 搜索apt-cache search dhcp | less,您将看到很多默认的 dhcp 替代方案。例如,我建议获取dhcpcd。我不确定 NetworkManager 是否在您安装 dhcpcd 后自动更改其设置,但我建议打开/etc/NetworkManager/NetworkManager.conf并在[main]部分下指定 dhcp=dhcpcd,如下所示。至少根据man NetworkManager.conf

目前支持 dhclient 和 dhcpcd。此处配置的客户端也应在您的系统上可用。如果缺少此键,则按以下顺序查找可用的 DHCP 客户端:dhclient、dhcpcd。

禁用 dnsmasq 插件

dns=dnsmasq是 中指定的另一个选项NetworkManager.conf。我之所以禁用它,是因为 dnsmasq 会从默认网关(即路由器)获取 dns 服务器,这也是“获取 ip 配置”过程中的元素之一。只需注释掉该插件,就像这样# dns=dnsmasq。需要记住的小事是 NetworkManager 不会解析域名。因此,我建议更改 DNS 设置完全。另外,考虑删除/etc/resolv.conf以让一切重置,或者至少sudo dpkg-reconfigure resolvconf

删除连接配置并重新连接

这可以通过连接编辑器(下拉菜单中的“编辑连接”选项或nm-connection-editor从终端)完成。同样,也sudo rm -i /etc/NetworkManager/system-connections/*可以达到目的。

禁止 NetworkManager 创建默认有线连接

再次,它在NetworkManager.conf[main] 下,选项应该是no-auto-default=*

尝试 WICD 网络管理器

我想这是不言自明的……

检查 /etc/dhcp/dhclient.conf 文件

您可以与我的配置进行比较:

#send host-name "andare.fugue.com";
send host-name = gethostname();
#send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
#send dhcp-lease-time 3600;
supersede domain-name-servers 208.67.222.222,208.67.220.220,8.8.8.8;
# prepend domain-name-servers 208.67.222.222,208.67.220.220;
request subnet-mask, broadcast-address, time-offset, routers,
        domain-name, domain-name-servers, domain-search, host-name,
        dhcp6.name-servers, dhcp6.domain-search,
        netbios-name-servers, netbios-scope, interface-mtu,
        rfc3442-classless-static-routes, ntp-servers,
        dhcp6.fqdn, dhcp6.sntp-servers;

除此以外,我还建议您将 ifconfig 中的信息、您拥有的以太网卡以及 dmesg 的输出添加到您的问题中。干杯!

答案2

您必须将以太网接口添加到 /etc/network/interfaces 列表中,如下所示

iface eth0 inet dhcp

反过来,如果您想手动执行 dhcp 过程,请输入:

sudo dhclient eth0

答案3

我觉得这可以是一个评论,但我的声誉还不够高,无法发表评论。

因此,在我的 Ubuntu 服务器严重崩溃后,我遇到了类似的问题。恢复后,谢天谢地,一切都恢复了启动,然后幸运的是,没有互联网,因为网卡似乎卡在询问但从未收到 IP 地址。它所做的只是发送如上所述的 DHCPDISCOVER 请求。

经过几个小时/几天的修修补补,我发现 realtek 驱动程序 r8169(如第一个屏幕截图角落所示)无法正常使用。除了 Sergiy 建议的故障排除方法外,还可以查看

dmesg | grep -e r8169 -e <NICName>

您可能会看到链接已断开且尚未准备好,但是可能并不十分明显,因为在 ifdown ; ifup 重置期间,卡似乎仍会发送 DHCPDISCOVER 消息。

回滚驱动程序非常容易,我遵循此网页作为指南: https://unixblogger.com/2016/08/11/how-to-get-your-realtek-rtl8111rtl8168-working-updated-guide/

即使没有互联网连接,也可以将驱动程序加载到 USB 记忆棒上并将其安装到服务器上。

希望这会有所帮助,并且至少希望当我将来用谷歌搜索这个问题时它会出现,因为我确信这会再次发生!

答案4

您可能遇到的是自动协商问题。(因为没有进行过 wireshark,很难说,但这就是它的味道。)几年前,当恐龙在地球上漫游时,以太网从 10 MBit 发展到 100 MBit 时,这些问题更为常见。

因此,以 an 开头ethtool --change eth0 autoneg off speed 100 duplex half,然后以 a:开头sudo dhclient -r&&sleep 5&&sudo dhclient,这样应该正好需要 5 秒,而不是 10 分钟。

一旦成功,我们将着手进行永久修复,使其在冷启动后仍然可用(具体取决于您的硬件,这可能已经可以在热启动后继续可用)

相关内容