Ubuntu系統(tǒng)網(wǎng)絡(luò)故障排查的方法
一、首先說明的是連不上 wifi 的原因無外乎以下幾點(diǎn)
1、網(wǎng)卡問題
2、沒有安裝網(wǎng)絡(luò)驅(qū)動(dòng)
3、安裝了網(wǎng)絡(luò)驅(qū)動(dòng),但是沒有加載進(jìn)內(nèi)核
4、以上均沒問題,那么就是路由器沒有接入 internet 了
接下來,一步步排查
二、查看網(wǎng)卡信息
可以使用以下命令查看網(wǎng)卡信息
$ lshw -C network
正常情況至少會(huì)顯示兩個(gè)網(wǎng)卡,一個(gè) eth0, 一個(gè) wlan0。運(yùn)行這個(gè)命令,我電腦的情況是: 兩個(gè)網(wǎng)卡的 description 字段后面都是 unclaim,并且沒有 logical name。
根據(jù)這個(gè)命令的結(jié)果,可以得出以下結(jié)論
1、網(wǎng)卡沒有問題
2、考慮到之前能夠連接 wifi,所以系統(tǒng)中肯定存在網(wǎng)絡(luò)驅(qū)動(dòng)
3、鑒于網(wǎng)卡信息識(shí)別為 “unclaim”,網(wǎng)絡(luò)驅(qū)動(dòng)應(yīng)該沒有在運(yùn)行,即沒有加載進(jìn)內(nèi)核
所以,接下來要做的便是: 找到和網(wǎng)卡相關(guān)的驅(qū)動(dòng),然后加載進(jìn)內(nèi)核
三、尋找網(wǎng)卡驅(qū)動(dòng)
運(yùn)行以下命令
$ vim /etc/udev/rules.d/70-persistent-net.rules
結(jié)果如下
# PCI device 0x10ec:0x8168 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:53:ed:31:c3:29", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x168c:0x0032 (ath9k)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:3e:8e:d8:10:95", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"
從這里得知,eth0, wlan0 的驅(qū)動(dòng)分別是 r8169.ko, ath9k.ko
檢查以上驅(qū)動(dòng)模塊是否在運(yùn)行
$ lsmod | grep "ath9k"
發(fā)現(xiàn)沒有任何輸出,這個(gè)證明模塊 ath9k.ko 沒有被加載
下面檢查系統(tǒng)中是否真的已經(jīng)有這個(gè)模塊
$ find / -name "ath9k.ko"
結(jié)果為
/lib/modules/3.13.0-32-generic/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko /lib/modules/3.13.0-79-generic/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko /usr/lib/debug/lib/modules/3.13.0-79-generic/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko
以上說明模塊 ath9k.ko 確實(shí)存在!但是,等等,上面前面兩個(gè) ath9k.ko 分別處在不同的內(nèi)核模塊下,即 3.13.0-32-generic 和 3.13.0-79-generic 下。此時(shí),我們查看以下當(dāng)前系統(tǒng)的內(nèi)核版本
$ uname -r
結(jié)果顯示的是
3.13.0-92-generic
到這里問題已經(jīng)很明朗了,我們系統(tǒng)中確實(shí)存在無線網(wǎng)卡驅(qū)動(dòng)模塊,ath9k.ko,但是當(dāng)前運(yùn)行的內(nèi)核版本中卻沒有!解決辦法有兩個(gè)
1、在當(dāng)前內(nèi)核版本中,下載相應(yīng)的 ath9k.ko,并通過 insmod 命令安裝
2、將當(dāng)前的內(nèi)核回退到 3.13.0-79-generic 版本
由于我這里不僅僅是無線模塊沒有加載,eth0 模塊也沒有,所以猜測(cè)是因?yàn)橄到y(tǒng)在升級(jí)到 3.13.0-92 的過程中,發(fā)生錯(cuò)誤導(dǎo)致的,所以,我這里選擇將系統(tǒng)回退。
四、系統(tǒng)回退
由于系統(tǒng)上已經(jīng)存在 3.13.0-79-generic,所以不需要下載,安裝
修改 boot 啟動(dòng)選項(xiàng)
$ vim /boot/grub/grub.cfg
在打開的文件中,存在諸多的 menuentry,每個(gè) menuentry 對(duì)應(yīng)開機(jī)菜單中的一個(gè)選項(xiàng),找到 3.13.0-79-generic 內(nèi)核對(duì)應(yīng)的 menuentry,確定它的位置序號(hào),第一個(gè) menuentry 位置為 0,逐次加 1。
然后修改 /etc/default/grub 中的 GRUB_DEFAULT 值為剛才那個(gè)序列號(hào)
最后運(yùn)行 update-grub,以及 reboot 即可
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家能有一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
JVM上高性能數(shù)據(jù)格式庫包Apache Arrow入門和架構(gòu)詳解(Gkatziouras)
Apache Arrow是是各種大數(shù)據(jù)工具(包括BigQuery)使用的一種流行格式,它是平面和分層數(shù)據(jù)的存儲(chǔ)格式,今天給大家介紹JVM上高性能數(shù)據(jù)格式庫包Apache Arrow入門和架構(gòu)介紹,感興趣的朋友一起看看吧2021-05-05
Centos8最小化部署安裝OpenStack Ussuri的詳細(xì)教程
這篇文章主要介紹了Centos8最小化部署安裝OpenStack Ussuri的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
詳解Ubuntu/CentOS下Apache多站點(diǎn)配置
本篇文章主要介紹了Ubuntu/CentOS下Apache多站點(diǎn)配置,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05
Apache與Tomcat服務(wù)器整合的基本配置方法及概要說明
網(wǎng)上的亂七八糟的資料太多了,很多都是自說自話,希望這篇文章能給大家?guī)硪恍┣逦乃悸贰?/div> 2010-12-12最新評(píng)論

