首页 程序笔记 Linux中通过命令连接指定WiFi

Linux中通过命令连接指定WiFi

前言

在Linux中,尤其是在没有GUI界面的Linux系统中,需要连接WiFi时只能通过命令来完成,大致过程如下:

安装软件

连接WiFi需要用到iw,wpa_supplicant和net-tools中的一些工具,一些嵌入型Linux中可能已经在生成系统时集成了这些工具,以yum包管理为例,安装命令如下。

yum -y install iw
yum -y install wpa_supplicant
yum -y install net-tools

查看无线网接口

iw dev

查看接口连接信息

加入iw dev命令查询到的无线网卡名称为wlan0,通过一下命令查看该网卡的连接信息:

iw wlan0 link

启用WiFi网卡

ip link set dev wls2 up

扫描当前范围的WiFi热点

iw dev wlan0 scan |grep SSID

连接指定WiFi热点

wpa_supplicant -B -i wlan -c (wap_passphrase ssid password)

这里是通过wpa_supplicant命令直接连接指定的ssid,重启系统后,这个连接信息并不能自动连接,如果需要保存连接,使得系统每次重启后都能自动连接指定WiFi,可以把连接信息写入wpa_supplicant.conf文件中,具体操作如下:

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel
update_config=1
 
network={
	ssid=xxxx
	scan_ssid=1
	psk=xxxxxxxxx37bca5cf24a345f514d319211822f568bba28f8f0b74c894e7644
	proto=RSN
	key_mgmt=WPA-PSK
	pairwise=CCMP
	auth_alg=OPEN
}

解释一下上面的比较容易困惑的地方:
签名三句应该是个模板,没仔细研究过。

network=开始是无线接入点的具体配置,一般的无线接入点可以用wpa_passphrase来自动生成,语法是
继续解释最开始的例子,network=后面的内容
ssid :接入点名称,这个没什么好说的
scan_ssid=1 :这个很容易错过,如果你的无线接入点是隐藏的,那么这个就是必须的,亲身经历,折腾了好久才搞定,记之备忘。
psk=xx :是加密后的密码,用wpa_passphrase自动生成的
proto=RSN WPA2就选这个,参考官方配置文件例子里面的:

# proto: list of accepted protocols ---支持的协议列表
# WPA = WPA/IEEE 802.11i/D3.0  
# RSN = WPA2/IEEE 802.11i (also WPA2 can be used as an alias for RSN) ---也能使用WPA2,它只是RSN的一个别名而已
# If not set, this defaults to: WPA RSN   ---如果不设置,默认就是WPA RSN,即全部支持

key_mgmt= 认证密钥管理协议:

# key_mgmt: list of accepted authenticated key management protocols  ---支持的协议列表
# WPA-PSK = WPA pre-shared key (this requires psk field)     ---一般都是这个,这就包括了WPA、WPA2开始的那些方式
# WPA-EAP = WPA using EAP authentication    ---这个就是WEP开头的,猜的,求验证
# IEEE8021X = IEEE 802.1X using EAP authentication and (optionally) dynamically
#	generated WEP keys
# NONE = WPA is not used; plaintext or static WEP could be used  ---这个是开放的,没密码,联通、电信之类的就这个
# WPA-PSK-SHA256 = Like WPA-PSK but using stronger SHA256-based algorithms
# WPA-EAP-SHA256 = Like WPA-EAP but using stronger SHA256-based algorithms
# If not set, this defaults to: WPA-PSK WPA-EAP ---如果未设置,默认支持WAP、WEP开头那些

pairwise= 这个就是加密方式:

# pairwise: list of accepted pairwise (unicast) ciphers for WPA   ---WPA可用的加密方式列表
# CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0]  ---看到没,这个就是AES,换了马甲而已
# TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0] ---TKIP 这个倒是没变
# NONE = Use only Group Keys (deprecated, should not be included if APs support
#	pairwise keys)   ---这个估计很少用
# If not set, this defaults to: CCMP TKIP  ---不设置的话是CCMP TKIP,看似正确,其实有些路由器无法自动识别,只能二选一,这里有点坑。

将以上配置文件保存为/etc/wpa_supplicant/wpa_supplicant.conf,然后执行以下命令即可链接。

wpa_supplicant -B -i wlan -c /etc/wpa_supplicant/wpa_supplicant.conf

通过DHCP获取IP地址

dhclient wlan0

查看ip

ip addr show wlan0
#或者ifconfig列出所有网卡的配置信息
ifconfig
3

站心网

前言 在Linux中,尤其是在没有GUI界面的Linux系统中,需要连接WiFi时只能通过命令来完成,大致过程如下: ..

为您推荐

如何选择更适合你的 Linux 发行版?

很多人经常会问我这样一个问题:“嘿,你是用Linux的,对吧?我应该使用Linux的哪个版本?我有这个朋友推荐我_____,你觉得怎么样?”我通常会以这样的问题回复:这取决于你想做什么?今天我决定写一篇关于如何选择L..

7大Git实用技巧和命令总结

Git 是一个非常强大的工具,它包含丰富的工具用以维护项目。本文介绍了一些 Git 日常使用过程中的实用技巧和命令,希望这些内容能够对大家有所帮助。Git diff通常情况下,我们会在自己的独立分支中完成需求开发,此..

VS创建.NET Core项目使用Docker方式部署到Linux服务器

在 Visual Studio(VS) 中,使用 Docker 方式部署 .NET Core 项目 到 Linux 服务器,可以简化环境管理并提高部署效率。以下是完整教程:1. 在 VS 创建 .NET Core 项目并启用 Docker新建 ASP.NET Core 项目打开 Visu..

.NET C#连接FTP实现文件上传下载

在 .NET 中可以使用 System.Net.FtpWebRequest 类来连接 FTP 服务器,实现文件上传和下载。以下是实现文件上传和下载的完整代码示例。1. 上传文件到 FTP 服务器using System;using System.IO;using System.Net;class..

.net 通过 HttpClient 下载文件同时报告进度的方法

通过 HttpClient 的 ContentLength 很多时候都可以拿到下载的内容的长度,通过 ReadAsync 可以返回当前读到的长度,将读取到的长度加起来就是已经下载的长度看起来很简单,于是直接给代码private static async Task ..

javascript 6种连接数组的方法和对比

在 JavaScript 中,有多种方法可以用来连接数组,以下是常见的几种:1. concat() 方法用于连接两个或多个数组,返回一个新的数组,不修改原数组。const arr1 = [1, 2, 3];const arr2 = [4, 5, 6];const result = arr..

Git 常用命令总结

基础命令初始化一个Git仓库:git init添加到暂存区:git add <file>提交到本地仓库:git commit -m <message>仓库版本号切换:git reset --hard commit_id查看提交历史:git log查看历史命令:git reflog丢弃工作区..

SocketException: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

SocketException: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 这个错误通常表示客户端在尝试连接到服务器时,服务器没有及时响应,导致连接超时。以下是一些可能的原因和解决方法:可..

通过js修改tinymce的编辑器的内容

在网页开发中,TinyMCE是一个流行的富文本编辑器。它允许用户轻松地创建和编辑HTML内容,而无需直接操作代码。然而,有时我们可能需要通过JavaScript来动态修改编辑器中的内容。本文将介绍如何使用JavaScript来修改T..

.NET C# EntityFramework(EF)连接SQLite代码示例

在.NET C#中使用Entity Framework(EF)连接SQLite数据库是一种常见的做法,可以有效地管理和操作数据。以下是一个简单的示例代码,展示了如何使用EF Core连接到SQLite数据库并执行基本的CRUD操作。首先,确保你已经..

使用ADO.NET连接到南大通用GBase 8s数据库

南大通用GBase 8s数据库广泛应用于各种企业级应用中,对于开发者而言,掌握如何使用ADO.NET连接到GBase 8s数据库非常重要。本文将详细阐述如何通过ADO.NET方式连接到南大通用GBase 8s数据库,并进行基本的数据库操作..

Git 常用命令

仓库# 在当前目录新建一个Git代码库$ git init# 新建一个目录,将其初始化为Git代码库$ git init [project-name]# 下载一个项目和它的整个代码历史$ git clone [url]配置# 显示当前的Git配置$ git config --list# 编..

CentOS7部署发布.NET Core网站Ngnix安装配置图文教程

Linux服务器部署.NET Core网站运行速度更快,最近打算把原来windows server上的网站迁到linux的云服务器上。 顺便记录一下CentOS7安装.NET运行环境,安装和配置Ngnix的过程。首先安装.NET运行时sudorpm-Uvhhttps://p..

C#复制文件到指定文件夹

C# 复制文件到指定文件夹可以使用C#的File类中的Copy方法来复制文件到指定文件夹。下面是一个示例代码片段,展示如何将名为sourceFile的文件复制到名为destinationFolder的目标文件夹:string sourceFile = @"C:\Sou..

.NET Core复制文件到指定目录

在.NET Core中,你可以使用System.IO命名空间下的File类来复制文件到指定目录。C#复制文件到指定目录下面是一个示例代码:using System.IO;public class Program{public static void Main(){string sourceFilePath =..

Kubernetes(k8s) Linux安装和配置

什么是Kubernetes(k8s)?Kubernetes(通常称为"k8s")是一种用于自动部署、扩展和管理容器化应用程序的开源平台。它提供了一个容器编排和管理系统,可以自动化应用程序的部署、管理和缩放,并确保它们的高可用性。在..

类似sms-activate的国外手机验证码接码平台

很多网站需要通过手机验证码才能注册成功,例如最近大火的ChatGPT的官网OpenAI只能使用国外手机号注册。这里推荐几个可以接收国外手机验证码的平台。sms-activatehttps://sms-activate.org/cn站点推荐:ChatGPT手机..

百度文心一言邀请码如何获得?

3月16日下午,百度于北京总部发布了新一代大语言模型、生成式AI产品文心一言。首批用户即可通过邀请测试码,在文心一言官网体验产品,后续将陆续开放给更多用户。邀请码申请方式请往下看。百度文心官网地址:https://..

免费申请SSL证书的网站教程推荐

现在有很多平台可以申请的免费SSL证书让你的网站提供https服务。一些云服务器平台可能也会有一些免费SSL证书的服务。免费SSL证书安全吗?免费SSL证书可以使用,并且在许多情况下是足够安全的。免费SSL证书可以通过Le..

react使用echart图文教程

可以参考ECharts官网的文档:https://echarts.apache.org/handbook/zh/basics/import在React中使用ECharts可以通过以下步骤:安装ECharts库使用npm或者yarn安装ECharts库:npm install echarts --save引入ECharts库..

发表回复

返回顶部