NordVPN
NordVPN 是一家个人虚拟专用网络服务提供商。NordVPN 的总部位于巴拿马。该国没有强制性数据保留法,也不参与五眼联盟或十四眼联盟。在 Linux 上,NordVPN 通过命令行工具运行。
创建账户
为了使用 NordVPN,您必须在 NordVPN 官方网站上创建自己的账户。 https://nordvpn.com
有不同的付款选项可供选择。
安装
NordVPN 可以使用软件包 nordvpn-binAUR 安装。
以下是一个 bash 命令序列,可用于配置您的环境以使用该软件包
# groupadd -r nordvpn # gpasswd -a <username> nordvpn
systemd 服务
为了使用 NordVPN,您必须启用并启动 nordvpnd.service
系统单元。
配置
以下是一些使用 NordVPN 的常用命令
登录/登出
$ nordvpn login
登录到您的 NordVPN 账户。
$ nordvpn login --callback "nordvpnlink"
请参阅来自 nordvpn-bin AUR 的评论
或者,通过从您的账户仪表板生成的访问令牌登录,如下所示 NordVPN 仪表板
$ nordvpn login --token "tokencode"
$ nordvpn logout
从您的 NordVPN 账户登出。
启用 NordLynx (WireGuard)
NordVPN 引入了 NordLynx 技术,该技术基于 WireGuard 协议。与默认的 OpenVPN 技术相比,WireGuard 提供更低的延迟、更高的速度和更好的连接稳定性。由于 WireGuard 用户识别的性质,NordVPN 引入了 NordLynx,它在 WireGuard 之上实现了一个双 NAT 协议,以补充增强隐私。
使用以下命令启用它
$ nordvpn set technology nordlynx
查看所有可用技术
$ nordvpn set technology --help
连接到 VPN
将您连接到 VPN。
$ nordvpn connect [[country]/[server]/[country_code]/[city] or [country] [city]]
Provide a [country] argument to automatically connect to a specific country. For example: 'nordvpn set autoconnect on Australia' Provide a [country_code] argument to automatically connect to a specific country. For example: 'nordvpn set autoconnect on us' Provide a [city] argument to automatically connect to a specific city. For example: 'nordvpn set autoconnect on Budapest'
断开您与 VPN 的连接。
$ nordvpn disconnect
显示连接状态。
$ nordvpn status
设置
设置协议。
$ nordvpn set protocol [protocol]
Supported values for [protocol]: TCP, UDP Example: nordvpn set protocol TCP
启用或禁用终止开关。此安全功能会在与 VPN 服务器的连接丢失时阻止您的设备访问安全 VPN 隧道之外的互联网。如果您开始注意到断开 VPN 连接后您的连接无法工作,这可能是由于终止开关功能存在错误,因此您必须禁用它。
$ nordvpn set killswitch [enabled]/[disabled]
Supported values for [disabled]: 0, false, disable, off, disabled Example: nordvpn set killswitch off Supported values for [enabled]: 1, true, enable, on, enabled Example: nordvpn set killswitch on
启用或禁用 Threat Protection Lite (以前称为 CyberSec)。启用后,Threat Protection Lite 功能将自动阻止可疑网站,从而防止恶意软件或其他网络威胁感染您的设备。此外,不会出现花哨的广告。有关其工作原理的更多信息:https://nordvpn.com/features/threat-protection/
$ nordvpn set threatprotectionlite [enabled]/[disabled]
Supported values for [disabled]: 0, false, disable, off, disabled Example: nordvpn set threatprotectionlite off Supported values for [enabled]: 1, true, enable, on, enabled Example: nordvpn set threatprotectionlite on
启用或禁用自动连接。启用后,此功能将在操作系统启动时自动尝试连接到 VPN。
$ nordvpn set autoconnect [enabled]/[disabled] [[country]/[server]/[country_code]/[city] or [country] [city]]
Supported values for [disabled]: 0, false, disable, off, disabled Example: nordvpn set autoconnect off Supported values for [enabled]: 1, true, enable, on, enabled Example: nordvpn set autoconnect on Provide a [country] argument to automatically connect to a specific country. For example: 'nordvpn set autoconnect on Australia' Provide a [country_code] argument to automatically connect to a specific country. For example: 'nordvpn set autoconnect on us' Provide a [city] argument to automatically connect to a specific city. For example: 'nordvpn set autoconnect on Budapest'
设置 DNS 服务器。
$ nordvpn set dns [servers]/[disabled]
Supported values for [disabled]: 0, false, disable, off, disabled Example: nordvpn set dns off Arguments [servers] is a list of IP addresses separated by space Example: nordvpn set dns 0.0.0.0 1.2.3.4
从白名单中添加或删除选项。
$ nordvpn whitelist command [command options] [arguments...]
Commands: add Adds option to whitelist remove Removes option from whitelist
显示当前设置。
$ nordvpn settings
服务器列表
显示城市列表。
$ nordvpn cities
显示国家/地区列表。
$ nordvpn countries
使用此命令显示特定国家/地区的城市。
$ nordvpn cities [country]
Example: nordvpn cities United_States
替代方法:使用 NetworkManager 连接到 NordVPN
安装
1. 安装 networkmanager 和 networkmanager-openvpn。
2. 使用 NordVPN 服务器页面选择合适的服务器:https://nordvpn.com/servers/ 在 NordVPN 站点上下载相应的 OpenVPN 配置文件:https://nordvpn.com/ovpn/ 将文件保存到用户主目录中或将来访问时易于记忆的其他位置。
配置
1. 右键单击桌面环境中的 NetworkManager 小程序,然后单击编辑连接。单击出现的网络连接窗口左下角的加号。
2. 当您选择连接类型时,单击下拉菜单并一直向下滚动,直到到达“导入已保存的 VPN 配置”。选择该选项。现在,单击创建。
3. 导航到您之前将所有 OpenVPN 文件解压缩到的目录,然后打开该文件夹中的一个文件。一般来说,您将需要打开与您特别想要的连接相关联的文件。
4. 打开其中一个 OpenVPN 文件后,出现的窗口应为“正在编辑 <连接类型>”。键入您的 NordVPN 用户名和密码。密码框中有一个图标,指示凭据的用户权限;根据需要更改设置(如果您不想每次连接都输入密码,则选择“为所有用户保存”)。
避免 DNS 泄漏
为了防止 DNS 泄漏,您必须
1. 单击“IPv4 设置”。
2. 对于方法,选择“仅自动(VPN)地址”,并在“DNS 服务器”中手动输入 NordVPN DNS 地址“103.86.96.100, 103.86.99.100”(以逗号分隔)。
3. 单击“正在编辑 <连接类型>”窗口左下角的保存。
自动连接到 VPN
1. 右键单击桌面环境中的 NetworkManager 小程序,然后单击编辑连接。
2. 双击您想要自动连接到 VPN 的以太网或 Wifi 连接
3. 在“常规”选项卡上,在您想要的每个连接中单击“使用此连接时自动连接到 VPN”,然后选择正确的配置文件。
4. 对您将与 VPN 一起使用的其他连接重复此操作。
禁用 IPv6
NordVPN 与 IPv6 不兼容。您可能需要完全禁用它。
或者您也可以
1. 右键单击桌面环境中的 NetworkManager 小程序,然后单击编辑连接。
2. 双击您想要自动连接到 VPN 的以太网或 Wifi 连接
3. 在“ipv6”选项卡上,在方法框中选择“忽略”。
使用终止开关
NordVPN 终止开关不适用于此方法,您将必须使用 ufw 或 iptables 创建自己的终止开关。
这是一个使用 UFW 的示例。
测试您的配置
您可以使用这些网站
故障排除
连接后无法访问互联网
如果网络阻止包括代理连接在内的所有 VPN 协议,则连接尝试可能会失败。尝试更改协议(例如,更改为 TCP)、使用混淆服务器或 NordLynx 协议。
$ nordvpn set technology openvpn $ nordvpn set protocol tcp $ nordvpn set obfuscate on
请注意,安装此类服务器的国家/地区列表要短得多。
或者,您的本地网络的子网可能存在冲突,例如
$ ip route default via 10.1.1.1 dev enp0s31f6 proto dhcp metric 100 10.0.0.0/8 dev enp0s31f6 proto kernel scope link src 10.1.2.86 metric 100 10.5.0.0/16 dev nordlynx proto kernel scope link src 10.5.0.2
为了解决这个问题,请使用以下命令将您网络的子网列入白名单,例如
$ nordvpn whitelist add subnet 10.0.0.0/8
断开连接后无法访问互联网
通过 nordvpn d
断开连接后,计算机可能无法访问互联网,但 ping(例如 ping 8.8.8.8
)仍然会成功。这很可能是 DNS 问题:连接到服务器后,本地 DNS 将被 NordVPN 的 DNS 覆盖,以确保与服务器的安全连接。断开连接后,DNS 将被删除,这可能会导致问题。这可能是由于终止开关功能存在错误,因此您可以禁用它,方法是写入
$ nordvpn set killswitch disabled
可能需要重启任何正在运行的网络管理器。
通过终端连接时遇到问题
如果您在通过终端连接时遇到问题并收到连接错误,则需要将您的子网列入白名单并在 NordVPN 上打开一个端口。打开终端并检查您有哪些子网。
$ ip route default via 10.1.1.1 dev enp0s31f6 proto dhcp metric 100 10.0.0.0/8 dev enp0s31f6 proto kernel scope link src 10.1.2.86 metric 100 10.5.0.0/16 dev nordlynx proto kernel scope link src 10.5.0.2
第二个子网 (10.0.0.0/8) 是我们想要在 NordVPN 中列入白名单的子网,您可以使用以下命令执行此操作
$ nordvpn whitelist add subnet 10.0.0.0/8
如果您希望再次将子网列入黑名单,只需运行以下命令
$ nordvpn whitelist remove subnet 10.0.0.0/8
端口 22 是 SSH 工作所需的端口,您可以使用以下命令打开它
$ nordvpn whitelist add port 22
如果您希望再次将端口列入黑名单,只需运行以下命令
$ nordvpn whitelist remove port 22
另请参阅#设置 systemd-resolved 作为 DNS 解析器。
终端上随机断开连接
重置终止开关
如果您在终端上随机断开与 NordVPN 的连接,并且不允许您重新连接,只需禁用并重新启用终止开关即可
$ nordvpn set killswitch off $ nordvpn set killswitch on
大多数情况下,关闭终止开关后它将无法连接,NordVPN 的 Linux 应用程序目前非常不稳定。
重启守护进程
或者,重启 nordvpn.service
可以解决连接问题。
由于最近的更新,当守护进程重启时,`iptables` 策略不再被刷新。如果重启无法恢复连接,请先尝试使用以下命令刷新这些表
# iptables -F
设置 systemd-resolved 作为 DNS 解析器
这里需要注意的是,Linux 版 NordVPN 显然旨在使用 systemd-resolved
,并且在使用不同的 DNS 解析器时可能会崩溃。您可以通过以下步骤切换到 systemd-resolved
启动/启用 systemd-resolved.service
备份现有的 resolv.conf
# mv /etc/resolv.conf /etc/resolv.conf.bak
创建指向 stub-resolv.conf 的符号链接
# ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
重启 nordvpnd.service
有关更多信息,请参阅原始来源 此处。
安装 wireguard-tools
当使用 NordLynx(NordVPN 的 WireGuard 技术)时,有时连接仍然会断开,即使在使用 systemd-resolved
作为 DNS 解析器时也是如此。这是由于对 wireguard-tools 的一个未提及的依赖项造成的,应该安装它,然后可以重启 nordvpnd.service
。
终端命令执行延迟
在没有正常运行的通知系统的桌面系统上,执行终端命令(例如 nordvpn disconnect
和类似命令)后可能会有很长的延迟。这可以通过安装和初始化通知代理来解决。