通过命令行连接/断开 VPN

通过命令行连接/断开 VPN

我的 Ubuntu 机器上设置了两个 VPN,一个使用 vpnc,一个使用 PPTP。这两个都是使用 GNOME 网络管理器界面设置的,运行良好。但是有时我需要远程访问这台机器 - 有没有办法从命令行连接或断开这些 VPN?

答案1

如果你想与网络管理器从命令行,您可以使用“nmcli”命令。

  • 列出所有 NM 连接:nmcli con
  • 开始连接(Wi-Fi、VPN等):nmcli con up id ConnectionName
  • 下行连接:nmcli con down id ConnectionName

更多nmcli子命令手册页)。


另请注意,普通用户通常没有控制网络的权限。使用上述命令sudo应该适用于大多数连接,但 VPN 可能会因以下情况而失败:“错误:连接激活失败:没有有效的 VPN 密钥。”

如果您遇到这种情况,则 VPN 密码很可能存储在用户的 gnome-keyring 中,这使得 root 用户无法访问它。这条评论解释原因。

要修复此问题,请编辑/etc/NetworkManager/system-connections/连接名称并在下方[vpn]更改密码标志行至:

password-flags=0

如果有以 开头的行Xauth password-flags,请将其更改为。

然后在块下方添加以下内容[vpn]

[vpn-secrets]
password=YourPassword

如果您在上一步中更改了该行Xauth password-flags,请添加Xauth password=...

现在通过以下方式重新启动网络管理器:

sudo service network-manager restart

然后启动VPN连接应该sudo nmcli con up id ConnectionName就可以正常工作了。

答案2

ihashacks 的回答Matt 的评论对我来说差不多。只需调整一行。

我的密码标志行实际上显示为:“ Xauth password-flag”。接受的答案对我来说不起作用,直到我将其更改为以下内容

[vpn]
...
Xauth password-flag=0
IPSec secret-flags=0

[vpn-secrets]
Xauth password=<my pw> ## This is the one I changed.
IPSec secret=<group pw>

不确定为什么我的 VPN 连接Xauth在每次提到密码之前都会出现“ ”。

相关内容