linux连接无线网络配置详解

目录

1.找到无线网卡

2.扫描附近的WiFi

3.连接WiFi

4.配置自动连接

5.NetworkManager 无法自动重连问题排查及解决


前言:公司最近买了一台win10的电脑来做服务器,现技术领导要求改装成linux--CentOS系统,本人完成重装之后要连接wifi,但出现无法重启自动连接,断网自动连接。找了相当多的博客,甚至到官网找资料都无法解决问题(楼主很无力~~)。最后凭系统日志线索和自己的一些思考解决了这个问题。本文着重讲解CentOS7 的无线网络配置及自动重连的问题。

无线网络配置

1.找到无线网卡

首先要找到无线网卡的名称,才能操作它

iw dev

wlp3s0就是本机的无线网卡的名称了。

2.扫描附近的WiFi

iw wlp3s0 scan|grep SSID

其中的SSID就是WiFi名字,找到你熟悉的名字然后开始连接

3.连接WiFi

这里有两款工具:wireless-tools和wpa_supplicant,由于我本机是自带wpa_supplicant的,所以wireless-tools在这里略过。

wpa_supplicant -B -i wlp3s0 -c <(wpa_passphrase "$SSID" "$password")  //$SSID:WiFi名称,$password:WiFi密码 
dhclient wlp3s0 //给无线网卡动态分配ip
iw wlp3s0 link //查看无线网络连接状态
 

 

看到connected to 说明已经连接成功!

wpa_supplicant介绍:

WPA是WiFi Protected Access的缩写,中文含义为“WiFi网络安全存取”。wpa_supplicant是一个开源项目,已经被移植到Linux,Windows以及很多嵌入式系统上。它是WPA的应用层认证客户端,负责完成认证相关的登录、加密等工作。

wpa_supplicant help //查看wpa指令集

-B指的是使用守护进程在后台执行这个是必须的选项。

-c(小写)指定是使用配置文件:/etc/wpa_supplicant/wpa_supplicant.conf,如果不带配置文件就用这条命令 <(wpa_passphrase "$SSID" "$password") ,把文件作为命令输入。

-i 指的是接口名称,也就是wlp3s0无线网卡了。

在上面的操作中已经成功连接WiFi了,但是wpa_supplicant还没有重启、断线自动连接能力。

 

4.配置自动连接

这里自动连接就需要使用NetworkManager工具了。

NetworkManager介绍:

NetworkManager是RedHat(红帽组织,传送门:https://www.redhat.com/en)开发的一个项目,由一个管理系统网络连接、并且将其状态通过D-BUS(是一个提供简单的应用程序 互相通讯的途径的自由软件项目,它是作为freedesktoporg项目的一部分来开发的。)进行报告的后台服务,以及一个允许用户管理网络连接的客户端程序。优点是:带有GUI工具界面,能大大简化网络连接。

1.安装NetworkManager

yum -y install NetworkManager-wifi

 2.启动NetworkManager

systemctl start NetworkManager 

systemctl enable NetworkManager //设置开机启动

现在可以使用nmcli (NetworkManagerClient)命令啦

3.令NetworkManager管理起wifi

扫描WiFi

nmcli dev wifi //扫描WiFi

 连接WiFi 

这里就有个问题,前面我们是通过wpa_supplicant连接的,这里再用NetworkManager连接就会产生冲突,所以这里我们先重启下network,以便让wap_supplicant的连接失效,然后再操作NetworkManager连接WiFi。

service network restart
nmcli dev wifi connect $SSID password $password //$SSID:WiFi名称,$password:WiFi密码
nmcli conn //查看已连接的WiFi

 可以看到已连接WiFi,UUID:060c319f-3e24-4b57-976d-9a2705d2467b

根据UUID来管理WiFi

nmcli c down 060c319f-3e24-4b57-976d-9a2705d2467b //停用WiFi

nmcli c up 060c319f-3e24-4b57-976d-9a2705d2467b //启用WiFi

nmcli c delete 060c319f-3e24-4b57-976d-9a2705d2467b //删除WiFi
systemctl restart NetworkManager //重启

5.NetworkManager 无法自动重连问题排查及解决

WiFi连接上了,楼主重启了无数遍还是不能够自动连接WiFi。网上找相关的博客都很水,根本就没有排查过程,张口就来命令,什么意思也不解释。在这绝望的境地下,也只好自力更生了。

1.NetworkManager排查过程

首先要排查问题,那么日志分析是必不可少的,找到相关的日志信息,有错误提示就能找到解决问题的线索。

less /var/log/messages //查看linxu内核及公共消息日志

进去后按G跳到底部,输入?NetworkManager回车找到NetworkManager的相关日志,按n往上搜索,果然出了几条关键的信息线索:

在红色框里可以看到,出现了三条warn信息,第一条意思是“取消p2p连接失败:返回空的body信息”。第二条意思是“在wap_supplicant 设置WFD IES 失败原因是GDBUS.Error.InvalidArgs没有这个属性”  。第三条意思是:"不能获取请求扫描结果:返回错误的body("ss")"。

分析过程:

第二条信息很关键,因为没有相关属性导致 第一条和第三条都出错了。直接百度搜索 "GDBUS.Error.InvalidArgs: No such property" ,发现没有答案。

其实从日志信息可以知道,NetworkManager会向wpa_supplicant发送请求来获取扫描信息,现在是请求wpa_supplicant时失败了。那就可以初步猜测两个工具之间的兼容问题!

解决问题

既然定位到问题了,兼容问题,那就从工具本身下手吧,下载wpa_supplicant最新版本,然后重启NetworkManager.

yum -y install wpa_supplicant //下载最新版本

systemctl restart NetworkManager //重启NetworkManager

果然,安装最新版本之后,查看日志,NetworkManager已经可以自动扫描WiFi信息连接了。

你可能感兴趣的:(i)