请注意,我是 Ubuntu 的完全新手
我最近在双启动设置中将 Ubuntu 22.04.2 LTS 安装了到我的 Windows 桌面上。
问题陈述
安装 Ubuntu 后,除了以太网连接之外,一切似乎都正常工作。这是 GUI“网络”设置区域中当前显示的内容:
换句话说,我的电缆显然是“拔掉了”。但是,当我查看内部时,ifconfig
以太网设备enp1s0
似乎被识别了:
johnny@johnnyb1694-Ubuntu:~$ sudo ifconfig
enp1s0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 68:1d:ef:33:00:6f txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 82 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 1956 bytes 165100 (165.1 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1956 bytes 165100 (165.1 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.178.33 netmask 255.255.255.0 broadcast 192.168.178.255
inet6 2a02:8011:ee20:0:2d7f:835f:2f06:564e prefixlen 64 scopeid 0x0<global>
inet6 fe80::c4f8:ab8f:6cd8:926c prefixlen 64 scopeid 0x20<link>
inet6 2a02:8011:ee20:0:bad5:c122:b248:29f9 prefixlen 64 scopeid 0x0<global>
ether 78:8a:86:26:b7:e4 txqueuelen 1000 (Ethernet)
RX packets 9329 bytes 7275533 (7.2 MB)
RX errors 0 dropped 815 overruns 0 frame 0
TX packets 6100 bytes 1222425 (1.2 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
另一个有趣的观察是,运行时,dmesg
同一设备enp1s0
似乎从启动时被重命名,eth0
直到暂时关闭:
johnny@johnnyb1694-Ubuntu:~$ sudo dmesg | grep enp1s0
[ 1.453852] r8169 0000:01:00.0 enp1s0: renamed from eth0
[ 6.602587] r8169 0000:01:00.0 enp1s0: rtl_ocp_gphy_cond == 1 (loop: 10, delay: 25).
[ 6.603179] r8169 0000:01:00.0 enp1s0: rtl_ocp_gphy_cond == 1 (loop: 10, delay: 25).
[ 6.603791] r8169 0000:01:00.0 enp1s0: rtl_ocp_gphy_cond == 1 (loop: 10, delay: 25).
[ 6.603802] r8169 0000:01:00.0 enp1s0: Link is Down
[ 6.617385] r8169 0000:01:00.0 enp1s0: rtl_counters_cond == 1 (loop: 1000, delay: 10).
我尝试过的方法
我在类似的答案中找到的一个解决方案是从终端运行以下命令:
sudo ethtool -s enp1s0 speed 100 duplex full autoneg off
运行此语句后,事情似乎暂时地改进。例如,dmesg
再次查看日志现在显示状态发生变化:
johnny@johnnyb1694-Ubuntu:~$ sudo dmesg | grep enp1s0
[ 1.453852] r8169 0000:01:00.0 enp1s0: renamed from eth0
[ 6.602587] r8169 0000:01:00.0 enp1s0: rtl_ocp_gphy_cond == 1 (loop: 10, delay: 25).
[ 6.603179] r8169 0000:01:00.0 enp1s0: rtl_ocp_gphy_cond == 1 (loop: 10, delay: 25).
[ 6.603791] r8169 0000:01:00.0 enp1s0: rtl_ocp_gphy_cond == 1 (loop: 10, delay: 25).
[ 6.603802] r8169 0000:01:00.0 enp1s0: Link is Down
[ 6.617385] r8169 0000:01:00.0 enp1s0: rtl_counters_cond == 1 (loop: 1000, delay: 10).
[ 2132.644712] r8169 0000:01:00.0 enp1s0: Link is Up - 100Mbps/Full - flow control off
[ 2132.644736] IPv6: ADDRCONF(NETDEV_CHANGE): enp1s0: link becomes ready
[ 2137.957219] NETDEV WATCHDOG: enp1s0 (r8169): transmit queue 0 timed out
[ 2137.971670] r8169 0000:01:00.0 enp1s0: rtl_rxtx_empty_cond == 0 (loop: 42, delay: 100).
并且 GUI 视图也更新了:
然而,这种状态的变化似乎是短暂的(即它会在之后的某个时刻再次消失),而且更紧迫的是,建立起来的联系是极其差(例如,请求似乎https://www.google.com/
无限期地挂起)。
我很确定这是我的 Ubuntu 设置特有的问题,因为当我在 Windows 上启动并通过有线以太网连接访问互联网时,一切都运行正常。
有人能帮我解决这个问题吗?如果有帮助的话,我很乐意提供更多信息。
谢谢。
答案1
约翰尼,关于你的评论,如果你的以太网适配器没有获得 IP 地址,那是不正常的。
这可能意味着 DHCP 或适配器的驱动程序(或者您的以太网电缆、其连接器或两端的以太网端口,尽管您提到它们在 Windows 下运行良好)存在配置问题。
尝试一下:运行 Ubuntu 时,站在以太网交换机/路由器端,让某人将电缆的另一端插入 PC,看看路由器/交换机上该端口的预期灯是否亮起。
如果确实如此,则表明适配器的驱动程序和物理连接正常,您可以开始寻找 DHCP 的配置问题。
或者,您可以尝试为该适配器静态配置 IP 地址。
要调试 DHCP,您可以在 LAN 上的另一台计算机上运行 Wireshark 之类的工具。Wireshark 可让您观察问题 PC 和路由器之间的 DHCP 请求和响应数据包流。
如果您尝试这样做,但根本看不到任何 DHCP 流量,则表明 Ubuntu 系统上的 DHCP 客户端软件存在问题。
您可以尝试的另一个测试是在问题机器中启动实时 Ubuntu 22.04.2 DVD/USB,并查看实时系统是否在该以太网适配器上获取 IP 地址。
如果实时系统获得了 IP 地址,那么您就会知道物理连接和驱动程序良好(并且您也可以假设您安装的系统中可能没有驱动程序问题)。
但如果实时系统正常运行,则安装的系统中以太网端口的定义可能存在问题。
查看活动以太网配置文件中是否启用了 DHCP(或创建一个新的配置文件进行测试)并验证您没有意外地在错误的子网上为适配器配置了静态地址等。