如何设置网络管理器在启动时自动连接到 Wi-Fi 和 WireGuard VPN?

如何设置网络管理器在启动时自动连接到 Wi-Fi 和 WireGuard VPN?

如何设置网络管理器在启动时自动连接到 Wi-Fi 和 WireGuard VPN?

我为网络管理器配置了 2 个连接:一个 Wi-Fi 和一个 WireGuard VPN。当我手动启动它们时,它们都可以正常工作。我已将这两个连接设置为在启动时自动启动。启动后,两个连接都显示为活动状态且已连接,但我无法访问网络/互联网。如果我手动重新启动 WireGuard VPN,一切正常,我就可以再次访问网络。

这太烦人了!您知道哪里出了问题吗?我该如何正确设置?

网络连接 - Wireguard VPN 设置 网络连接 - Wi-Fi H369....设置

供您参考,我正在运行 Kubuntu 22.10。另外,供您参考,网络管理器连接配置文件

**SS-NL-WG**  
[connection]  
id=SS-NL-WG  
uuid=9xxxxxxxxxx7  
type=wireguard  
autoconnect-priority=10  
interface-name=SS-NL-WG  

[wireguard]  
private-key=xxxxxxxxxxxxxx=  

[wireguard-peer.xxxxxxx=]  
endpoint=xxxxxxxx.com:51820  
allowed-ips=0.0.0.0/0;  

[ipv4]  
address1=10.14.0.0/16  
dns=xxxxxxxxxx;  
method=manual  

[ipv6]  
addr-gen-mode=stable-privacy  
method=disabled  

##H369A3D4517## (wi-fi)  
[connection]  
id=H369A3D4517  
uuid=fxxxxxxxxxxxxxxxxxx9  
type=wifi  
autoconnect-priority=10  

[wifi]  
mode=infrastructure  
ssid=H369A3D4517  

[wifi-security]  
key-mgmt=wpa-psk  
psk=xxxxxxxxxxxx  

[ipv4]  
method=auto  

[ipv6]  
addr-gen-mode=stable-privacy  
method=auto  

答案1

我正在尝试实现与您相同的目标,但尚未成功。我猜测您的方法不起作用的原因是,Wireguard 可能首先启动,但无法解析Wireguard 端点的 IP 地址(因为 wifi 连接尚未建立,因此 DNS 请求无法通过)。这意味着您的所有流量都无法路由到任何地方。

有人发帖这里这对他们有用:

$ nmcli connection modify myvpn-wg connection.autoconnect yes
$ nmcli connection modify WLANEG connection.autoconnect-priority 1

不幸的是,这对我没有用。

答案2

我运行的是非 Ubuntu Linux。我通常工作的地方有三个可以连接的 SSID。此代码在 /etc/rc.d/rc.local 中运行。它在启动时将网络管理器连接到信号最强的 WIFI 连接。我认为,“魔法”无非就是 5 秒的暂停,让 NM 有时间进行自我排序。如果所有纯文本信息都让您感到紧张或延迟令人烦恼,我会说坚持使用手动连接。我会的……如果他们这样做。;-)

注意:“prompt> nmcli device wifi”列出了所有可检测到的接入点及其信息

sleep 5
SSID=`nmcli device wifi | grep -w '[VarLenSSIDName_1]\|-w [VarLenSSIDName_2]\|-w [VarLenSSIDName_3]'`

if [[ $(grep '[VarLenSSIDName_1]' <<<${SSID}) ]]; then
    echo "Activating wlan[#]: Connecting to [VarLenSSIDName1]..."
    nmcli device wifi connect [VarLenSSIDName_1] password [PlainTestPW_1]
fi

if [[ $(grep '[VarLenSSIDName_2]' <<<${SSID}) ]]; then
    echo "Activating wlan[#]: Connecting to [VarLenSSIDName_2]..."
    nmcli device wifi connect [VarLenSSIDName_2] password [PlainTestPW_2]
fi

if [[ $(grep '[VarLenSSIDName_3]' <<<${SSID}) ]]; then
    echo "Activating wlan[#]: Connecting to [VarLenSSIDName_3]..."
    nmcli device wifi connect [VarLenSSIDName_3] password [PlainTestPW_3]
fi

答案3

我遇到了和你一样的问题。我可以通过进入 nmtui > 编辑连接 > 来修复它我的 wireguard 连接并打开“从不将此网络用作默认路由”一切似乎都运行正常。希望这能有所帮助

相关内容