当前位置: 首页>>技术问答>>正文


从命令行连接/断开VPN

, , , , ,

问题描述

我在我的Ubuntu机器上安装了两个VPN,一个使用vpnc,一个使用PPTP。这些都是使用GNOME网络管理器界面设置的,并且效果很好。但有时我需要远程访问本机 – 是否有方法从命令行连接或断开这些VPN?

最佳解决方案

如果要通过命令行与NetworkManager交互,可以使用”nmcli”命令。

列出所有的NM连接:nmcli con

开始连接(wifi,vpn等):nmcli con up id ConnectionName

向下连接:nmcli con down id ConnectionName

(nmcli manpage中的nmcli命令更多)。


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

如果这种情况发生在您身上,可能是因为VPN密码存储在用户的gnome-keyring中,这使得root用户无法访问该密码。 This comment解释了原因。

要解决此问题,请编辑/etc /NetworkManager /system-connections /ConnectionName,并在[vpn]下将password flags行更改为:

password-flags=0

并添加以下内容:

[vpn-secrets]
password=YourPassword

现在重新启动网络管理器:

sudo service network-manager restart

然后,启动与sudo nmcli con up id ConnectionName的VPN连接应该没有问题。

次佳解决方案

ihashacks对Matt的评论的回答对我来说几乎是一样的。必须调整一行。

我的password-flag行实际上是这样读的:“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”。

(对不起,这是一个新的答案,还不能发表评论。)

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/565.html,未经允许,请勿转载。