Debian -- 範囲内であれば自動的に Wi-Fi に接続

Debian -- 範囲内であれば自動的に Wi-Fi に接続

LemuntuがインストールされたLeMakerギターがあります。私の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 接続は正常に機能します。ただし、ギターを起動してルーターの電源を入れると接続できません。毎分実行されるクローンジョブを作成しましたが、dhclient wlan0成功しませんでした。

だから私の質問は、ギターを起動した後にそのWi-Fiが表示されたら、そのWi-Fiに自動的に接続する方法です。

答え1

解決策:GUIのない​​ネットワーク管理者。

wpa-supplicantiwおよびを使って6つのチュートリアルを試しました/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.policysudoもしきれいな方法ご存知の方お気軽に教えてください!

以下は本当に良いガイドです。しかし、ドイツ語になっています。https://wiki.ubuntuusers.de/NetworkManager/NetworkManager_ohne_GUI/

答え2

wlan0以下は、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

1分ごとにこのスクリプトを実行するクローンジョブです。

* * * * * /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

関連情報