Linux目前有两种方法配置网络:

  • wireless-tools
  • wpa_supplicant

iw支持的驱动较多,但只支持WEP加密;wpa_supplicant有部分驱动支持不完善,但支持WEP、WPA、WPA2加密。

由于WEP在现在市面的路由器中已经几乎被淘汰,因此使用wpa_supplicant进行连接。wpa_supplicant初次配置较为复杂,但配置一次后,下次遇到该AP时就可以自动连接。

初次配置

1. 启动网卡和程序

编辑配置文件/etc/wpa_supplicant.conf,写入如下内容(如没有该文件则新建):

ctrl_interface=/var/run/wpa_supplicant
update_config=1

update_config=1表示允许更改配置。

启动无线网卡:

ifconfig wlan0 192.168.15.11 up

启动wpa_supplicant:

wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf &

其中,-i指定网卡,-c指定配置文件。

进入wpa_cli界面:

wpa_cli

在CLI界面中,可以输入各种命令修改网卡配置。

注意,在CLI中回退字符时,需要按Ctrl + Backspace,直接按Backspace会被当做一般的字符输入。

2. 扫描AP

使用scan命令扫描网络,扫描完毕后使用scan_results查看网络:

> scan

......

>> scan_results

... ...

3. 增加网络

使用add_network增加网络,会增加一个网络编号。然后使用list_network查看网络信息:

> add_network
0
> list_network
network id / ssid / bssid / flags
0 any [DISABLED]

4. 设定SSID和密码

> set_network 0 ssid "HONOR315"
OK
> set_network 0 psk "12345678"
OK

5. 使能网络连接

使用enable_network命令使能网络连接,出现CTRL-EVENT-CONNECTED表示已经连接完毕。

> enable_network 0

... ...
<3>CTRL-EVENT-CONNECTED - Connection to 94:37:f7:a5:1f:80 completed [id=0 id_str=]

6. 保存配置

使用status命令查看网络状态。输入save 保存配置。

> status

... ...

> save
OK

最后输入quit退出CLI,回到终端。

> quit

此时可以查看网卡状态:

ifconfig wlan0
iw wlan0 info

查看配置文件,已经发生变化:

cat /etc/wpa_supplicant.conf

7. 网卡连通测试

电脑ping开发板:

开发板ping电脑:

加入开机自启动

经过以上配置,只要wlan0网卡启动,且AP在信号范围内,就会自动进行连接。

如果有多个AP,可以在wpa_supplicant.conf中添加优先级:

ctrl_interface=/var/run/wpa_supplicant
update_config=1 network={
ssid="CNV315"
psk="12345678"
priority=2
}

不过,这样仍然需要手动启动网卡和wpa_supplicant,需要输入2条命令。因此,将命令加入开机加载的脚本,以便开机自启动。

编辑/etc/rc.local,在文件末尾添加以下内容:

# start wlan0 with static ip
ifconfig wlan0 192.168.15.11 up
wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf &

注意如果最后一行有exit 0,要将命令添加在exit 0之前。

之后重启开发板,将自动启动网卡并连接AP。

参考资料:

wpa_supplicant使用方法(简体中文,与英文不同步)

wpa_supplicant使用方法(英文原版)

wpa_supplicant 配置与应用

最新文章

  1. ajax教程
  2. 如何让Button使用自定义icon
  3. 一条SQL查询MYSQL最大内存用量
  4. 基于ASP.NET MVC的热插拔模块式开发框架(OrchardNoCMS)--BootStrap
  5. (一)u-boot-nand.bin的下载
  6. 关于Schema设计规范及SQL使用建议
  7. Java日期处理类
  8. HDOJ2025查找最大元素
  9. ASP.NET MVC验证 - jQuery异步验证
  10. jdk内存
  11. codeforces 652E . Pursuit For Artifacts 强连通分量
  12. 用python调用R做数据分析-准备工作
  13. 案例:数据库open时报错ORA-1172,ORA-1151 处理
  14. Redis这些知识点,是必须知道的!
  15. 利用nginx 反向代理解决跨域问题
  16. 使用VMWare虚拟mac系统,设置网络的正确姿势
  17. sqlserver数据库系统性能监控步骤
  18. 空间金字塔池化(Spatial Pyramid Pooling,SPP)
  19. Python 字典 copy()方法
  20. C语言 &#183; 完数

热门文章

  1. ElastAlert监控日志告警Web攻击行为---tomcat和nginx日志json格式
  2. APICloud可视化编程(二)
  3. 数据结构与算法【Java】08---树结构的实际应用
  4. Leetcode刷题笔记(双指针)
  5. 洛谷P2168 [NOI2015] 荷马史诗 (哈夫曼树)
  6. Gson的使用与理解
  7. 基于tauri+vue3.x多开窗口|Tauri创建多窗体实践
  8. Educational Codeforces Round 137 (Rated for Div. 2) A-F
  9. 知识图谱-生物信息学-医学顶刊论文(Bioinformatics-2021)-MSTE: 基于多向语义关系的有效KGE用于多药副作用预测
  10. 27.-Django发送邮件