debian - 在範圍內時自動連接到 wifi
我有一個安裝了 Lemuntu 的 LeMaker Guitar。我的
wpa_supplicant.conf
文件如下所示:ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="MySSID" psk="MyPasswd" }
我的
/etc/network/interfaces
文件如下所示:auto wlan0 iface wlan0 inet dhcp pre-up wpa_supplicant -B -i wlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf pre-down killall -q wpa_supplicant
當我啟動我的吉他並且 wi-fi 路由器已經在執行時,wi-fi 連接就很好了。但是當我啟動我的吉他並啟動路由器後,它沒有連接。我試圖創建每分鐘都會執行的 cron 作業,
dhclient wlan0
但它不起作用。所以我的問題是,如果在我啟動吉他後它出現了,如何自動連接到這個 wi-fi。
這是一個範例腳本,用於檢查
wlan0
stat ,通過 dhcp 連接和獲取 IP 地址:/bin/ip link set wlan0 up if grep -q 0 /sys/class/net/wlan0/carrier then killall wpa_supplicant /sbin/wpa_supplicant -B -i wlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf > /dev/null 2>&1 /sbin/dhclient -r /sbin/dhclient > /dev/null 2>&1 fi
每分鐘執行一次此腳本的 cron 作業。
* * * * * /path/to/script.sh
編輯:您可以
ping
用來測試連接性。/bin/ping -q -c3 8.8.8.8 > /dev/null if [ $? -ne 0 ] then killall wpa_supplicant /bin/ip link set wlan0 up /sbin/wpa_supplicant -B -i wlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf > /dev/null 2>&1 /sbin/dhclient -r /sbin/dhclient > /dev/null 2>&1 fi
解決方案:沒有 GUI 的網路管理器。
我嘗試了使用
wpa-supplicant
,iw
和/etc/network/interfaces
. 但它們都不適合我。可能是因為他們根本沒有描述他們在做什麼。所以我總是遇到它不起作用的地方,沒有錯誤消息,也沒有任何方法可以找出問題的根源。最後我只是嘗試安裝預設的網路管理器。恰好是 gnome-network-manager 但沒有 GUI 組件 (->
--no-install-recommends
)。簡而言之,解決方案是:
sudo apt install --no-install-recommends network-manager nmcli connection add ifname wlan0 type wifi ssid MySSID nmcli connection edit wifi-wlan0
在編輯配置文件時,您必須設置 WPA-PSK 和純文字密碼:
nmcli> goto wifi nmcli 802-11-wireless> set mode infrastructure nmcli 802-11-wireless> back nmcli> goto wifi-sec nmcli 802-11-wireless-security> set key-mgmt wpa-psk nmcli 802-11-wireless-security> set psk your-plain-text-password nmcli 802-11-wireless-security> save nmcli 802-11-wireless-security> quit
之後重新啟動並享受!網路管理員將負責一切!
如果它抱怨權限,推薦的方法似乎是從
/usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy
. 我放棄了,sudo
改用了。如果有人知道一種干淨的方法,請告訴我們!這是一個很好的指南,但它是德語的:https ://wiki.ubuntuusers.de/NetworkManager/NetworkManager_ohne_GUI/