Ubuntu系统网络故障排查的方法

一、首先说明的是连不上 wifi 的原因无外乎以下几点

1、网卡问题

2、没有安装网络驱动

3、安装了网络驱动,但是没有加载进内核

4、以上均没问题,那么就是路由器没有接入 internet 了

接下来,一步步排查

二、查看网卡信息

可以使用以下命令查看网卡信息

$ lshw -C network

正常情况至少会显示两个网卡,一个 eth0, 一个 wlan0。运行这个命令,我电脑的情况是: 两个网卡的 description 字段后面都是 unclaim,并且没有 logical name。

根据这个命令的结果,可以得出以下结论

1、网卡没有问题

2、考虑到之前能够连接 wifi,所以系统中肯定存在网络驱动

3、鉴于网卡信息识别为 “unclaim”,网络驱动应该没有在运行,即没有加载进内核

所以,接下来要做的便是: 找到和网卡相关的驱动,然后加载进内核

三、寻找网卡驱动

运行以下命令

 $ vim /etc/udev/rules.d/70-persistent-net.rules

结果如下

# 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 的驱动分别是 r8169.ko, ath9k.ko

检查以上驱动模块是否在运行

$ lsmod | grep "ath9k"

发现没有任何输出,这个证明模块 ath9k.ko 没有被加载

下面检查系统中是否真的已经有这个模块

$ find / -name "ath9k.ko"

结果为

/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 确实存在!但是,等等,上面前面两个 ath9k.ko 分别处在不同的内核模块下,即 3.13.0-32-generic 3.13.0-79-generic 下。此时,我们查看以下当前系统的内核版本

$ uname -r

结果显示的是

3.13.0-92-generic

到这里问题已经很明朗了,我们系统中确实存在无线网卡驱动模块,ath9k.ko,但是当前运行的内核版本中却没有!解决办法有两个

1、在当前内核版本中,下载相应的 ath9k.ko,并通过 insmod 命令安装

2、将当前的内核回退到 3.13.0-79-generic 版本

由于我这里不仅仅是无线模块没有加载,eth0 模块也没有,所以猜测是因为系统在升级到 3.13.0-92 的过程中,发生错误导致的,所以,我这里选择将系统回退。

四、系统回退

由于系统上已经存在 3.13.0-79-generic,所以不需要下载,安装

修改 boot 启动选项

$ vim /boot/grub/grub.cfg

在打开的文件中,存在诸多的 menuentry,每个 menuentry 对应开机菜单中的一个选项,找到 3.13.0-79-generic 内核对应的 menuentry,确定它的位置序号,第一个 menuentry 位置为 0,逐次加 1。

然后修改 /etc/default/grub 中的 GRUB_DEFAULT 值为刚才那个序列号

最后运行 update-grub,以及 reboot 即可

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家能有一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • Ubuntu中为Android HAL编写JNI方法提供JAVA访问硬件服务接口

    在上两篇文章中,我们介绍了如何为Android系统的硬件编写驱动程序,包括如何在Linux内核空间实现内核驱动程序和在用户空间实现硬件抽象层接口.实现这两者的目的是为了向更上一层提供硬件访问接口,即为Android的Application Frameworks层提供硬件服务.我们知道,Android系统的应用程序是用Java语言编写的,而硬件驱动程序是用C语言来实现的,那么,Java接口如何去访问C接口呢?众所周知,Java提供了JNI方法调用,同样,在Android系统中,Java应用程序通过

  • ubuntu 设置静态IP的实现方法

    Ubuntu 设定静态IP: 切换到root用户,然后进入/etc/network目录.备份interfaces文件(备份文件是一个好习惯) 下面编辑interfaces文件,添加如下语句: 1 # Assgin static IP by eric on 26-SEP-2012 2 iface eth0 inet static 3 address 192.168.196.135 #change to your static IP 4 netmask 255.255.255.0 #change t

  • Ubuntu 使用Jni开发实例详解

    1. 编写Java文件,在其中声明native方法, 并通过static 语句块加载动态链接库,示例Prompt.java代码如下: class Prompt { private native String getLine(String prompt); public static void main(String args[]) { Prompt p = new Prompt(); String input = p.getLine("Type a line: "); System.o

  • ubuntu下迅雷极速版的安装与使用

    配置说明: 本机OS: Ubuntu 16.04 x64 一.环境配置 1.1直接命令安装 sudo add-apt-repository ppa:ubuntu-wine/ppa sudo apt-get update sudo apt-get install wine 安装大概需要500多M的容量 1.2或者不嫌麻烦可以用源码编译安装 https://www.winehq.org/ ./configure make sudo make install 注意:源码配置如果出现 configure

  • Ubuntu Server 16.04安装MySQL设置远程访问出现问题的完美解决方案(error:10061)

    说明: 一个朋友在使用Ubuntu Server 16.04安装MySQL,设置远程访问的时候出现了问题,请我帮忙.但是,我也没有使用过Ubuntu安装MySQL,于是乎搜索了很多技术文件,比着葫芦画瓢.但是,由于MySQL版本的差异,导致在安装设置的过程中出现了一些问题:就是不能远程访问. 一.安装mysql 1. 安装需要使用root账号,如果不会设置root账号的请参考Linux公社的其他文章.安装mysql过程中,需要设置mysql的root账号的密码,不要忽略了. sudo apt-g

  • ubuntu mysql更改tmp路径的方法

    ubuntu系统是一个linux操作系统;下面我们小编给大家介绍ubuntu mysql更改tmp路径的方法. 因为mysql经常要把文件定入tmp目录,而tmp的目录为/tmp,为了提高性能,所以考虑更改tmpdir目录为/run/shm,即使用内存来存储. 1.打开/etc/mysql/my.cnf 更改tmpdir = /tmp为 tmpdir = /run/shm 2.更改/etc/apparmor.d/usr.sbin.mysqld添加: /run/shm/* rw, 3.重启mysq

  • 腾讯云ubuntu服务器tomcat访问慢的原因分析及解决方法

    在腾讯云上配了个一元的学生云,开始一切正常,直到配置tomcat开始出现各种莫名其妙的问题.最莫名其妙的是tomcat启动了,端口也 正常监听,安全组也放行端口了,然后问题来了. 用浏览器访问tomcat主页,会发现超级慢,浏览器一直在等待服务器的响应,从这里可以看出能够接入8080端口,但是服务器没有返回数据.(这个问题折腾几天) 后来在网上找了无数资料,终于发现了原因.tomcat8.0在腾讯云ubuntu14.04上有bug. 问题原因: 随机数引起线程阻塞. tomcat不断启动,关闭,

  • VMware Tools(ubuntu系统)安装图文教程

    前一段时间博主在VMware虚拟机上安装了Ubuntu系统,如果还没有安装的同学可以参考博主上一篇文章:VMware Ubuntu安装详细过程. 猿友们都知道linux不太好用,如果你想将你主机Windows上的文件或安装包放到虚拟机上,VMware Tools是必不可少的工具. 欢迎关注,相互学习讨论,后续还会有更多linux搭建java开发环境和框架相关博客. 下面小宝鸽附上VMware Tools安装的详细流程. 1.打开虚拟机VMware Workstation,启动Ubuntu系统,菜

  • Ubuntu 安装 vsftpd FTP详细步骤

    vsftpd 是一个对 UNIX 系统遵循 GPL 协议的 FTP 服务器,包括 Linux.它安全而且速度非常快. 本教程将告诉你如何在 Linux 系统中搭建自己的 FTP 服务器. 1. 安装 vsftpd. sudo apt-get install vsftpd  2. 替换配置文件. 用文本编辑器打开 vsftpd.conf 配置文件,一般在 /etc 目录下. [sudo joe /etc/vsftpd.conf 可以做如下修改: 把  anonymous_enable=YES 改成

  • Ubuntu系统网络故障排查的方法

    一.首先说明的是连不上 wifi 的原因无外乎以下几点 1.网卡问题 2.没有安装网络驱动 3.安装了网络驱动,但是没有加载进内核 4.以上均没问题,那么就是路由器没有接入 internet 了 接下来,一步步排查 二.查看网卡信息 可以使用以下命令查看网卡信息 $ lshw -C network 正常情况至少会显示两个网卡,一个 eth0, 一个 wlan0.运行这个命令,我电脑的情况是: 两个网卡的 description 字段后面都是 unclaim,并且没有 logical name.

  • Android8.1原生系统网络感叹号消除的方法

    原生系统Android8.1上,WiFi上出现感叹号,此时WiFi可正常访问. 原因 这是Android 5.0引入的网络评估机制:就是当你连上网络后,会给目标产生204响应的服务器发送给一个请求,如果服务器返回的是状态码为204的响应,那么就被认为网络可以访问:否则,如返回的是其他状态码,那么将被视为网络访问需要登录操作等:没有响应的话,就被认为是网络不可访问.这里的情况就是,目标服务器不能正常访问 产生204响应的服务器 加粗网址亲测可行,其余未测试,但可作为一个参考 http://conn

  • Kubernetes中使用临时容器进行故障排查的方法

    目录 前言 什么是临时容器? 临时容器的配置 启动临时容器 使用临时容器 与临时容器共享进程命名空间 结论 前言 容器及其周围的生态系统改变了工程师部署.维护和排查工作负载故障的方式.但是,在 Kubernetes 集群上调试应用程序有时可能会很困难,因为你可能在容器中找不到所需的调试工具.许多工程师使用基于精简.发行版构建无发行版的基础镜像,其中甚至没有包管理器或shell.甚至一些团队使用 scratch 作为基础镜像,并且只添加应用程序运行所需的文件.这种常见做法的一些原因是: 具有较小的

  • ubuntu 系统上为php加上redis 扩展的实现方法

    ubuntu 系统上为php加上redis 扩展的实现方法 最近一个项目,,想用redis 作为数据库,php是不待redis 扩展,必须安装,怎么安装呢?我在网上找的很多资料发现都是预编译的,但都没成功,于是就找了另外一种方法是不需要编译直接安装就可以了. 安装redis 扩展 sudo apt-get install git-core 安装好后重启nginx ,php5-fpm, 重启nginx sudo /etc/init.d/nginx restart 重启php5-fmp sudo /

  • ubuntu系统下禁用utc时间的设置方法

    前言 大家在安装双系统以后,发现进入win7和ubuntu系统以后,显示的时间不一致,后来发现是两个系统对硬件时间的看法不一致 原因如下 1.Windows会认为BIOS时间就是你的本地时间 2.ubuntu默认时间是把BIOS时间当成GMT+0时间,也就是世界标准时,而我国在东八区(GMT+8),所以如果你的Ubuntu位置是中国的话你系统显示的时间就是BIOS时间+8小时.假如现在是早上8点,那么你Ubuntu会显示8点,这时BIOS中的时间是0点. 更正方法 将ubuntu对待bios时间

  • ubuntu系统下 python链接mysql数据库的方法

    进入root 权限下 apt-get install mysql-server apt-get install mysql-client 创建数据库 mysql -u root -p passward 链接数据库 create database basename use basename 如果数据库存在要进行改动可以直接使用 mysql -u root -p passward basename 创建表 create table latest_face( id int(11) not null a

  • ubuntu系统下使用pm2设置nodejs开机自启动的方法

    1.安装pm2 : npm install pm2 -gd 这时在命令行下执行pm2命令可能找不到,需要执行如下命令 1.创建软链接:ln -s /home/XXX/node-node-v6.11.5-linux-x64/bin/pm2 /usr/local/bin/pm2 2.一下命令需要在root用户下执行: sudo pm2 start ./bin/www sudo pm2 save sudo pm2 startup sudo pm2 save 3.重启系统试一下:如果不行执行 chatt

  • ubuntu系统theano和keras的安装方法

    说明:系统是unbuntu14.04LTS,32位的操作系统,以前安装了python3.4,现在想要安装theano和keras.步骤如下: 1,安装pip sudo apt-get install python3-setuptools sudo easy_install3 pip 2,安装g++  sudo apt-get install g++ 采用上述命令安装g++,安装完成后可用g++ -version查看是否安装完成.注意,如果没有安装g++,在import theano时会出现以下错

  • Ubuntu 20.04系统中安装vncserver的方法步骤

    Ubuntu 20.04已经在2020年4月份正式发布,笔者今天正式安装了一个镜像系统,并在该系统中安装vncserver以便于远程图形化管理和使用.安装vncserver的步骤如下: 第一步:安装桌面环境和VNCServer #更新 apt update #安装桌面环境 sudo apt install xfce4 xfce4-goodies #安装vncserver apt install tightvncserver #启动vncserver vncserver 随后按照提示,输入vncs

  • ubuntu系统修改时区和时间的方法

    在Linux计算机上,有两个时间,一个是硬件时间(BIOS中记录的时间,称为hwclock),另一个是操作系统时间(osclock).硬件时钟由BIOS电池供电, 当计算机关机后,会继续运行,BIOS电池一般可使用几年,如果没电了,那BIOS中的数据会恢复出厂设置. 硬件时间与操作系统时间的交互流程 1.开机时,操作系统从BIOS中读取硬件时间+时区,然后根据osclock的时区,转换为对应的时间.然后操作系统时间与硬件时间就独立运行,相互不影响,我们 通过应用程序获取的时间用的都是操作系统时间

随机推荐