如何在 shell 脚本中检查系统是否连接到 WiFi-1,如果未连接,则连接到 WiFi-2?我尝试使用 wpa_supplicant 和接口(interface)配置,但没有按预期工作。我跟着这个tutorial
如果有任何其他方法可以做到这一点,请告诉我。
/etc/network/interfaces 文件
auto eth0
iface eth0 inet6 manual
pre-up ip link set dev eth0 up || true
wpa-iface eth0
wpa-driver wired
wpa-conf /etc/wpa_supplicant/wpa_supplicant_wired.conf
pre-down /etc/netplug/netplug eth0 out >/dev/null 2>&1 || true
post-down ip link set dev eth0 down || true
auto wlan0
iface wlan0 inet manual
pre-up ip link set dev wlan0 up || true
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
wpa-driver wext
pre-down /etc/netplug/netplug wlan0 out >/dev/null 2>&1 || true
post-down ip link set dev wlan0 down || true
# open is specific (IPv6 only) so I just stop dhcp via netplug
iface open inet manual
up /etc/netplug/netplug wlan0 out >/dev/null 2>&1 || true
iface default inet manual
up /etc/netplug/netplug wlan0 in >/dev/null 2>&1 || true
down /etc/netplug/netplug wlan0 out >/dev/null 2>&1 || true
最佳答案
我想您现在可能已经找到了解决方案。无论如何,作为解决方法,您可以安装网络管理器(支持所有 debian 发行版,包括 ubuntu/raspbian/etc)
sudo apt-get install network-manager
然后将所需的网络配置添加到/etc/NetworkManager/system-connections
文件夹。
wifi 网络连接的示例配置如下:
[connection]
id=milanWiFi
uuid=56439211-1067-4334-b199-b73ceed32d83
type=802-11-wireless
[802-11-wireless]
ssid=milanWiFi
mode=infrastructure
mac-address=84:3A:4B:9B:CF:66
security=802-11-wireless-security
[802-11-wireless-security]
key-mgmt=wpa-psk
auth-alg=open
psk=milan123
[ipv4]
method=auto
[ipv6]
method=auto
这里,id
是您连接的唯一名称,您可以通过调用获取 uuid
,
uuidgen
命令在控制台中。
为了获得可用的 wifi 连接,您可以使用
sudo iw dev wlan0 scan
在那里您可以看到有关连接的相关详细信息。您要做的是从中获取详细信息并创建配置文件。
关于linux - 在Raspberry Pi/Ubuntu/Debian中使用shell程序动态切换WiFi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25635301/