wpa_supplicant - 强有力的终端 wifi 配置工具【转】
本文转载自:http://rickgray.me/2015/08/03/useful-command-tool-for-wifi-connection.html
最近网购了一套Raspberry-Pi2,用来跑一些神秘脚本。因为树莓派是基于 ARM 架构的,所以给它装上了 Ubuntu专版,对于终端下基本的 iwconfig 命令可能对现代的多种加密方式的 wifi 已经不太适应了,取而代之的是支持多种加密方式(WEP, WPA and WPA2等)的 wpa_supplicant 更符合我的需求。
一、安装
Debian/Ubuntu 下直接使用 sudo apt-get install wpa_supplicant 来进行安装,CentOS 下使用 sudo yum install wpa_supplicant 来安装。
二、配置并使用
使用 iwconfig 命令来查看当前机器上被识别出来的无线设备,例如这里我的树莓派上插入了一块腾达的USB无线网卡,则在系统中会得到识别。

然后在 /etc/wpa_supplicant/ 目录下或者其它目录建立一个 wifi 的配置文件 example.conf,这里我创建在 /etc/wpa_supplicant/example.conf,并写入如下配置内容:
ctrl_interface=/run/wpa_supplicant
update_config=1
这样配置是为了后面可以使用 wpa_cli 命令来实时地扫描和配置网络,并能狗保存配置信息。
配置文件建立完毕后,运行 wpa_supplicant 命令来启动无线网络接口,并加载相关配置文件。
sudo wpa_supplicant -B -D nl80211 -i wlan0 -c /etc/wpa_supplicant/example.conf

可以看到提示初始化成功,-B参数表示后台运行。如果遇到驱动不支持所插入的无线网卡,可选择wired或者wext等,具体详情可使用 wpa_supplicant -h 进行查看。
初始化完毕后,即可运行 sudo wpa_cli 来实时地配置网络。进入 wpa_cli 的交互界面后,它会自动地扫描周围的无线网络,你也可以使用 scan 命令进行手动扫描:

扫描完成后,使用 scan_result 打印扫描结果,选择你要连接的无线网络的 SSID(名称),然后新建一个网络配置信息(0代表了配置编号):
> add_network
然后对编号为 1 的网络配置信息进行设置:
> set_network 1 ssid "Wifi名称"
> set_network 1 psk "Wifi密码"
> set_network 1 key_mgmt "Wifi的加密方式(WPA-PSK/WPA2-PSK)"
设置好后,即可使用 enable_network 1 来启用该配置并使用 save_config 来保存当前配置至 /etc/wpa_supplicant/example.conf。

这是可以再次使用 iwconfig 命令来查看无线网卡信息,可以看到已经连接上了对应的 Wifi 并有了相应的信息。

一般 Wifi 的 IP 地址获取都使用了 DHCP 协议,因此我们还需要手动 dhclient wlan0 来自动协商获取 IP 地址。

下次启动时可以直接使用现有配置来对之前的 Wifi 进行连接,当然不要忘了使用相应命令来进行 DCHP 协商获取 IP 地址。
sudo wpa_supplicant -B -D nl80211 -i wlan0 -c /etc/wpa_supplicant/example.conf
sudo dhclient wlan0
至此就大功告成了,终端下连接 Wifi 就是这么简单 :)
wpa_supplicant - 强有力的终端 wifi 配置工具【转】的更多相关文章
- Linux下Wi-Fi配置工具2
上回说到,linux下面的Wi-Fi配置工具,说是江湖多事,风起云涌...嗯,这回是真的要动手配置了.各种麻烦啊,想死的心都有了有木有啊. 尝试用iwconfig 话说上回说用iwconfig配置Wi ...
- 树莓派学习笔记——USB wifi配置指南
0 前言 树莓派既能够使用有线网络又能够无线网络,假设使用有线网络不方便的话能够借助USB wifi无线网卡让树莓派也插上无线"翅膀". 可是和使用有线网络即插即用的方式不 ...
- 小白自制Linux开发板 五. Debian文件系统制作,以及WIFI配置、交换分区配置
该片文章将完整记录一个Debian的最小文件系统的生成,以及自定义配置WIFI组件.网络组件和交换分区配置 本文章参考:https://whycan.com/t_4236.htmlhttp://www ...
- RASPBERRY PI wifi配置
Raspberry Pi 手把手教你在树莓派上安装USB无线网卡支持WIFI 树莓派虽然已经有了有线网卡,但是并未配置无线网卡,移动性不够强,好在机器配备了2个USB口,当然要分一个出来给WIFI无线 ...
- 树莓派最简易Wifi配置
树莓派最简易Wifi配置 相信我,连博客都会偷懒写个最简易给你看 前提,只有一根网线没有网络的前提下进行的. 基于Win10系统和树莓派2015-05-05-raspbian-wheezy.img测试 ...
- huhamhire-hosts — Hosts文件自动配置工具
https://www.anotherhome.net/1376 推荐配合EasyGoAgent使用: EasyGoAgent — 开箱即用的GoAgent Update 2015.5.15 数据文件 ...
- 基于终端的日志工具logview
概述 logview是一个Shell脚本编写的基于终端的日志工具, 具有终端通知, email通知, 错误信息颜色配置, 以及灵活强大的监控配置. 还可以灵活的配置脚本监控的时间, 以及错误发生时需要 ...
- Kali Linux中前十名的Wifi攻击工具
无 线网络的攻与防一直是比较热门的话题,由于无线信号可以被一定范围内的任何人接收到(包括死黑阔),这样就给WIFI带来了安全隐患:路由器生产厂商和网 络服务供应商(ISPs)的配置大多是默认开启了WP ...
- BatchConfigTool批量配置工具
海康批量配置工具BatchConfigTool是一款支持设备在线搜索.批量配置参数.批量升级等功能的软件,支持对大批量设备同时进行各参数的配置,极大的简化了操作过程! 软件功能 1.对在线设备进行搜索 ...
随机推荐
- Fiddler抓包-工具介绍(request和response)
from:https://www.cnblogs.com/yoyoketang/p/6731121.html 本篇简单的介绍下fiddler界面的几块区域,以及各自区域到底是干什么用的,以便于各好的掌 ...
- 大数据学习——有两个海量日志文件存储在hdfs
有两个海量日志文件存储在hdfs上, 其中登陆日志格式:user,ip,time,oper(枚举值:1为上线,2为下线):访问之日格式为:ip,time,url,假设登陆日志中上下线信息完整,切同一上 ...
- URAL 1277 Cops and Thieves
Cops and Thieves Time Limit: 1000ms Memory Limit: 16384KB This problem will be judged on Ural. Origi ...
- 让你的 CDN 费用省 50% 以上!图片瘦身的正确姿势
七牛云新推出的图片瘦身功能是做什么的? 打开七牛云的「数据处理」中的「图片瘦身」功能,在图片受到访问时,能够实时对图片进行瘦身,在保证分辨率和画质不变的情况下,可以将图片最高缩小 80%.当「图片瘦身 ...
- vscode安装插件
十分简单,知道名字叫啥后,直接搜索,安装,就完了,还可以查看自己已经安装了哪些插件. step1 如图.png step2 image.png step 3 去网上查找想要安装的插件的名字 step ...
- django学习之- CSRF及中间件
CSRF # 表示django全局发送post请求均需要字符串验证功能:防止跨站请求伪造的功能工作原理:客户端访问服务器端,在服务器端正常返回给客户端数据的时候,而外返回给客户端一段字符串,等到客户端 ...
- 有向图欧拉回路个数 BEST定理
有向图欧拉回路个数 BZOJ 3659 但是没有这道题了 直接贴一个别人的板子吧 欧拉回路:存在一条路径经过所有的边刚好1次 有向图欧拉回路存在充要条件:①图连通:②对于所有点都满足出度=入度 BE ...
- [bzoj3998][TJOI2015]弦论_后缀自动机
弦论 bzoj-3998 TJOI-2015 题目大意:给定一个字符串,求其$k$小子串. 注释:$1\le length \le 5\cdot 10^5$,$1\le k\le 10^9$. 想法: ...
- Java面试题总结之JDBC 和Hibernate
1.100 用户同时来访数据库,要采取什么技术? 答:采用数据库连接池. 2.什么是ORM? 答:对象关系映射(Object—Relational Mapping,简称ORM)是一种为了解决面向对象与 ...
- try catch finally执行顺序 (return / 变量覆盖)
finally有return 始终返回finally中的return 抛弃 try 与catch中的return 情况1:try{} catch(){}finally{} return x; try{ ...