树莓派无线网络配置

来源:互联网 发布:肛泰和马应龙 知乎 编辑:程序博客网 时间:2024/06/18 10:22


原文:树莓派连接WiFi(需科学上网)

1. 无线连接

这里介绍一种嵌入式业界常用的WiFi连接方法,可完全应用于树莓派,实现WiFi的方便、稳定连接:
1. 同时保存多个WiFi用户名和密码
2. 可设置连接优先级,多WiFi环境下优先连接指定WiFi
3. 避免重启系统,也无需重启任何服务
4. 断开自动重连

方法步骤
1. 修改网络配置
/etc/network/interfaces

用命令行文本编辑器 nano 打开 /etc/network/interfaces 文件,按如下方式修改:

如果你从没有编辑过 /etc/network/interfaces文件,那它其中几行看起来是这个样子:

iface wlan0 inet manualwpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

你要做的是把上述两行替换成

iface wlan0 inet dhcpwpa_conf /etc/wpa_supplicant/wpa_supplicant.conf

这样就行了

如果你以前按照其他文章的方法,把 /etc/network/interfaces改写成下面的样子:

iface wlan0 inet dhcpwpa-ssid "WiFi-name"wpa-psk "WiFi-password"

那么你要做的同样是,把上述三行替换成

iface wlan0 inet dhcpwpa_conf /etc/wpa_supplicant/wpa_supplicant.conf

即可。

建议,若你不使用树莓派的有线网口连接网络的话,最好把 /etc/network/interfaces 文件第一行(也可能不在第一行)中 auto lo eth0 wlan0 的 eth0 删掉。因为它会导致树莓派开机时等待有线网卡动态分配IP,但实际上你的有线网口并没有连接到路由器,这里会让内核等待更长的时间,从而拖慢开机速度。

尚不熟悉nano的用法,戳 nano简明使用指南
笔者的 /etc/network/interfaces 配置如下:
这里写图片描述
2. 配置/etc/wpa_supplicant/wpa_supplicant.conf
/etc/network/interfaces 之外,你还需要修改 /etc/wpa_supplicant/wpa_supplicant.conf 。所有的WiFi连接配置都在这里了。

打开 /etc/wpa_supplicant/wpa_supplicant.conf 照着下面的样子添加(请不要删除原先就已经存在的任何行):

# 最常用的配置。WPA-PSK 加密方式。network={ssid="WiFi-name1"psk="WiFi-password1"priority=5}network={ssid="WiFi-name2"psk="WiFi-password2"priority=4}

priority 是指连接优先级,数字越大优先级越高(不可以是负数)。

按照自己的实际情况,修改这个文件。

例如,你家中有3个WiFi,分别为WiFi-A、WiFi-B和WiFi-C。你希望树莓派的连接优先级为 WiFi-A>WiFi-B>WiFi-C,则整个配置文件看起来像这样:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1network={ssid="WiFi-A"psk="12345678"priority=5}network={ssid="WiFi-B"psk="12345678"priority=4}network={ssid="WiFi-C"psk="12345678"priority=3}

笔者的 /etc/wpa_supplicant/wpa_supplicant.conf 配置如下:
这里写图片描述
3. 开始连接WiFi
修改好 /etc/network/interfaces 之后,无论是连接还是断开WiFi,都变得简洁无比。

连接WiFi

在命令行下输入
sudo ifup wlan0
这条命令的意思是,启用(up)wlan0端口,即寻找可用WiFi并尝试连接。

命令会在屏幕上打印几行字符,未输出错误信息的话,就意味着WiFi连接成功了:
这里写图片描述
你可以用 iwconfig 命令或 ifconfig 命令检查一下WiFi连接:
这里写图片描述
这里写图片描述
4. 断开WiFi
在命令行下输入
sudo ifdown wlan0
这条命令的意思是,关闭(down)wlan0端口,即断开已连接的WiFi。
这里写图片描述
千万不要在网络连接ssh时候执行这条命令,它会直接断开你的ssh连接

0 0