使用 NordVPN Kill Switch 时网络连接丢失

使用 NordVPN Kill Switch 时网络连接丢失

我正在使用启用了 Kill Switch 功能的 NordVPN。

如果我的计算机没有正常关闭,该文件/etc/resolv.conf将被设置为不可变,并且以后任何解析名称的尝试都会失败。

有时,即使没有不正常的关闭,当运行pingroot,我会看到:

ping:sendmsg:不允许操作

如何使用终止开关并拥有不间断的连接?

答案1

重新启动nordvpnd服务可以解决连接问题。

自动执行此操作的方法如下:

创造/etc/systemd/system/nordvpnd-restart-after-network-online.service

# Prevent immutable /etc/resolv.conf
# https://forum.manjaro.org/t/internet-blocked-by-nordvpn-killswitch/108413
# https://bbs.archlinux.org/viewtopic.php?id=246004

# If using NetworkManager, requires NetworkManager-wait-online.service to be started
# https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/

[Unit]
Description=restart nordvpnd after network online
After=NetworkManager-wait-online.service
# Uncomment if using networkd, and comment previous line
; Before=systemd-networkd-wait-online.service

[Service]
Type=oneshot
ExecStart=/usr/bin/systemctl restart nordvpnd

[Install]
WantedBy=NetworkManager-wait-online.service
# Uncomment if using networkd, and comment previous line
; WantedBy=systemd-networkd-wait-online.service

启用两个必需的服务:

sudo systemctl daemon-reload
sudo systemctl enable NetworkManager-wait-online.service nordvpnd-restart-after-network-online.service 

现在,在NetworkManager表示在线后,nordvpnd服务将立即自动重新启动。

答案2

汤姆·黑尔的解决方案使用守护进程对我不起作用nordvpnd。 (顺便说一句,我不知道如何将终止开关与 NetworkManager 一起使用,因为似乎没有任何选项?)

我所做的是添加以下脚本/usr/lib/pm-utils/sleep.d/99restart_nordvpnd.sh

#!/bin/sh

case "$1" in
    resume)
        /usr/bin/systemctl restart nordvpnd
        ;;
esac

使其可执行后,nordvpn 守护进程会在计算机从挂起状态恢复时自动重新启动。

如果这不起作用,您可以尝试稍微不同的脚本:

#!/bin/sh

case "$1" in
        pre)
                echo "$(date): $1" >> /tmp/nordvpn/suspend.txt
                /usr/bin/systemctl restart nordvpnd
                ;;
        post)
                echo "$(date): $1" >> /tmp/nordvpn/suspend.txt
                ;;
esac

(请注意,“echo”行是完全可选的。我用它们进行调试)

该文件必须放在不同的位置:

/lib/systemd/system-sleep/

答案3

我遇到了这个问题,唯一对我有用的就是禁用终止开关。

发生的情况是,当您的计算机进入睡眠状态时,它会失去连接,并且终止开关将拒绝所有连接,因为您没有连接到 VPN。如果不禁用终止开关,它甚至不会让您重新连接。

唯一的解决方案似乎是暂时禁用终止开关以重新建立连接,然后重新启用终止开关。

相关内容