树莓派连接WiFi,不使用界面,多WiFi切换
概述
树莓派是一个只有信用卡大小的卡片式电脑,基于ARM架构,采用Linux作为其操作系统;它默认是通过有线接口连接互联网,对于如此小巧的设备,有线连接非常不方便,下面我们介绍下如何让树莓派通过无线网卡连接网络。
网上大多数文章介绍的是编辑 /etc/network/interfaces 文件,修改成如下的形式:iface wlan0 inet dhcp
wpa-ssid "WiFi-name"
wpa-psk "WiFi-password"
然后重启树莓派或者重启network服务来连接WiFi:sudo service network restart
这种方法虽然简单,但也有非常明显的缺点:不能同时保存多个WiFi用户名和密码,更换WiFi连接时非常不便
连接WiFi可能要重启系统 即使靠重启network服务来避免重启系统,也会导致其他网络连接中断(如网口的有线连接)
WiFi意外断开后不能自动重连
由于实用性不强,上述方法的具体操作过程就不再熬述了。这里介绍一种嵌入式业界常用的WiFi连接方法,可完全应用于树莓派,实现WiFi的方便、稳定连接:同时保存多个WiFi用户名和密码
可设置连接优先级,多WiFi环境下优先连接指定WiFi
避免重启系统,也无需重启任何服务
断开自动重连
修改网络配置cd /etc/network/interfaces
用命令行文本编辑器 nano 打开 /etc/network/interfaces 文件,按如下方式修改:
如果你从没有编辑过 /etc/network/interfaces文件,那它其中几行看起来是这个样子:iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
你要做的是把上述两行替换成iface wlan0 inet dhcp
wpa_conf /etc/wpa_supplicant/wpa_supplicant.conf
这样就行了
如果你以前按照其他文章的方法,把 /etc/network/interfaces改写成下面的样子:iface wlan0 inet dhcp
wpa-ssid "WiFi-name"
wpa-psk "WiFi-password"
那么你要做的同样是,把上述三行替换成iface wlan0 inet dhcp
wpa_conf /etc/wpa_supplicant/wpa_supplicant.conf
即可。cd /etc/wpa_supplicant/wpa_supplicant.conf
除 /etc/network/interfaces 之外,你还需要修改 /etc/wpa_supplicant/wpa_supplicant.conf 。所有的WiFi连接配置都在这里了。nano /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=netdev
update_config=1
network={
ssid="WiFi-A"
psk="12345678"
priority=5
}
network={
ssid="WiFi-B"
psk="12345678"
priority=4
}
network={
ssid="WiFi-C"
psk="12345678"
priority=3
}
开始连接WiFi
修改好 /etc/network/interfaces 之后,无论是连接还是断开WiFi,都变得简洁无比。
连接WiFi,在命令行下输入sudo ifup wlan0
这条命令的意思是,启用(up)wlan0端口,即寻找可用WiFi并尝试连接。
断开WiFi
在命令行下输入sudo ifdown wlan0