debian - 在范围内时自动连接到 wifi

debian - 在范围内时自动连接到 wifi

我有一台安装了 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 连接正常。但是当我启动吉他并打开路由器电源时,它无法连接。我尝试创建每分钟执行一次的 cron 作业dhclient wlan0,但没有成功。

所以我的问题是,如果我启动吉他后该 Wi-Fi 启动,如何自动连接到该 Wi-Fi。

答案1

解决方案:不带 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/

答案2

这是一个示例脚本,用于检查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

相关内容