当 VPN 设置为自动连接时,无线连接不会自动连接

当 VPN 设置为自动连接时,无线连接不会自动连接

我有一个无线连接,可以自动连接。在网络设置中,它设置为:

“可用时自动连接”和“所有用户都可以连接到此网络”。

当我选中“使用此连接时自动连接到 VPN”复选框时,它会停止自动连接。无线图标旋转,好像正在尝试连接,然后断开连接的通知弹出几次,好像连接失败了。然后,当我手动单击下拉菜单中的无线连接时,它会完美连接并登录 VPN。

在互联网上搜索解决方案后,我发现的唯一答案是解密我的默认密钥环。我使用的是个人桌面,所以这可能没问题,但它并没有解决我的问题。

任何帮助我调试或帮助我接近解决方案的建议都将不胜感激。谢谢!

编辑- 如果有关系的话,我的无线网卡是 Rosewill RNWD-N9003PCe。

答案1

我找到了解决方案这里

首先,找出您的 VPN 连接的 UUID。

nmcli con list | grep -i vpn

UUID 是第二列,包含字母、数字和破折号。

简单的解决方案:将以下命令添加到启动应用程序列表中。(请点击上面的链接查看操作方法。)

nmcli con up uuid <put you UUID here>

复杂/高级解决方案:我的 wifi 需要一段时间才能连接,因此如果在启动时立即运行上述命令(在 wifi 连接之前),它将失败,而不会重试。因此,我编写了一个在启动时运行的 shell 脚本,该脚本每隔几秒钟尝试连接一次(如果无法连接,最终会放弃)。

#This script autoconnects a vpn on startup.
#It just runs the vpn connect command in a while loop.

#Whatever is returned by nmcli con list | grep -i vpn
VPN_UUID=<Whatever your UUID is>

VPN_RETRY_TIME=2 #how many seconds until you retry?
MAX_RETRIES=30 #how many time will you try before you give up?

#run the command once, so the while loop has 
#something to check the first time around
nmcli con up uuid $VPN_UUID
SUCCESS=($? = 0)

ATTEMPT_COUNT=1 #the number of times we've tried to connect.

#$ATTEMPT_COUNT <= $MAX_RETRIES
while [[ (!$SUCCESS) && ATTEMPT_COUNT -le MAX_RETRIES ]];
do
   sleep $VPN_RETRY_TIME #it just keeps on trying
   nmcli con up uuid $VPN_UUID
   SUCCESS=($? = 0)
   ATTEMPT_COUNT=$((ATTEMPT_COUNT+1))
done

将上述代码保存到某个 .sh 文件中。对其进行编辑,使“无论您的 UUID 是什么”(第 5 行)成为您从第一个命令中获得的长而复杂的数字。使其可执行(chmod +x fileName.sh),然后将其添加到启动应用程序列表中。)

答案2

我的有线连接设置为通过 自动连接到 VPN,因此遇到了这个问题nm-connection-editor。使用 自动启动时启用 VPN nmcli con up(按照这个答案)并没有帮助,但确实使有线连接本身。 所以:

  1. 找到您的互联网连接的 UUID(设置为自动连接到 VPN 的 UUID):

nmcli con

UUID 位于输出的第二列。

  1. 在 Dash 中搜索“启动应用程序”并启动它。

  2. 单击“添加”并添加此命令:

nmcli con up uuid <UUID>

将“名称”设置为您喜欢的任何名称并保存。

  1. 重新启动后,网络连接应该可以正常使用,并且可以使用 VPN。

答案3

我在使用 Ubuntu/Linux Mint 时遇到了同样的问题,我发现它与我的无线驱动程序有关。

看看你是否有 realtek 卡lspci

02:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8188EE Wireless Network Adapter (rev 01)

如果按照以下步骤修复:

sudo apt-get install linux-headers-generic linux-headers-$(uname -r) build-essential dkms git
git clone https://github.com/FreedomBen/rtl8188ce-linux-driver
cd rtl8188ce-linux-driver
make
sudo make install
sudo cp -r firmware/* /lib/firmware
echo "options rtl8188ee ips=0 fwlps=0" | sudo tee /etc/modprobe.d/rtl8188ee.conf

相关内容