我的 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
在每次提到密码之前都会出现“ ”。