Debian

debian - 在範圍內時自動連接到 wifi

  • October 3, 2020

我有一個安裝了 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。

這是一個範例腳本,用於檢查wlan0stat ,通過 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/

引用自:https://unix.stackexchange.com/questions/483678