admin 管理员组

文章数量: 1184232

问题:

昨天拿到新主机后装载了ubuntu系统,但ping不通有线网,搞了近一天,从硬件网卡、防火墙再到路由,甚至还拿交换机来试了一下,在ubuntu系统就是ping不通有线网,在此记录一下,防止以后事故重现

解决办法:

1.检验硬件问题

如果在windows系统下能ping通有线网,但在ubuntu系统下ping不通,那说明不是硬件问题,然后往下看

2.安全启动

如果你的ubuntu系统连有线连接标识都没有,那极有可能是开启了安全启动,需要禁用它,不同主板的安全启动设置不一样,可在网上查看,我在这里特地记录下华硕主板的安全启动设置,进入BIOS后,能看到下面的界面:

要禁用安全启动,只需将OS type 改为Other OS 即可,其它不用修改

如果这时候你的电脑还是ping不通有线网,那大概率是驱动的问题了,继续往下看

3.Ubuntu驱动/内核与网卡不兼容

我的有线网名字是eno1(可通过ifconfig查看),输入如图指令,如果输出detected: no,那就是驱动未能正确初始化PHY芯片导致。

qc@qc-virtual-machine:~$ ethtool eno1
Settings for eno1:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Full
	                        2500baseT/Full
	Supported pause frame use: Symmetric Receive-only
	Supports auto-negotiation: Yes
	Supported FEC modes: Not reported
	Advertised link modes:  10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Full
	                        2500baseT/Full
	Advertised pause frame use: No
	Advertised auto-negotiation: Yes
	Advertised FEC modes: Not reported
	Speed: Unknown!
	Duplex: Unknown! (255)
	Auto-negotiation: on
	Port: Twisted Pair
	PHYAD: 0
	Transceiver: internal
	MDI-X: Unknown
netlink error: Operation not permitted
        Current message level: 0x00000033 (51)
                               drv probe ifdown ifup
	Link detected: no

确定网卡型号和当前驱动

lspci -nnk | grep -A 3 "Ethernet controller"

//示例输出:
02:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller I225-V [8086:15f3]
	Subsystem: Intel Corporation Device [8086:0000]
	Kernel driver in use: igc
  • Kernel driver in use为空或(none) → 驱动未加载

  • 若显示igce1000er8169 → 记录驱动名称

我的驱动是r8125,因此去安装安装第三方维护的r8125驱动

# 卸载旧驱动
sudo modprobe -r r8125

# 添加PPA源(Ubuntu 22.04/20.04)
sudo add-apt-repository ppa:carliro8/networkdriver
sudo apt update
sudo apt install r8125-dkms

# 重建initramfs并重启
sudo update-initramfs -u
sudo reboot

若PPA不可用,手动编译安装最新驱动

# 安装编译依赖
sudo apt install build-essential dkms

# 下载最新驱动(检查最新版本)
wget https://github/awesometic/realtek-r8125-dkms/archive/refs/heads/master.zip
unzip master.zip
cd realtek-r8125-dkms-master

# 安装DKMS模块
sudo ./dkms-install.sh

# 屏蔽内核自带的r8169驱动(避免冲突)
echo "blacklist r8169" | sudo tee /etc/modprobe.d/r8169-blacklist.conf

sudo reboot

重启后如果还是ping不通,甚至连有线网络标识都消失了,执行以下步骤:

sudo modprobe r8125
sudo ip link set eno1 up  # 或你找到的新接口名

# 确认驱动已加载
lsmod | grep r8125

# 查看网卡状态
ethtool eno1 | grep "Link detected"  # 或新接口名

这样就大功告成了

本文标签: 系统 网络 Ubuntu ping