从命令行连接/断开VPN
我在我的Ubuntu机器上安装了两个VPN,一个使用vpnc,一个使用PPTP。 这些都是使用GNOME网络管理器界面设置并且工作得很好。 但有时我需要远程访问这台机器 – 有没有办法从命令行连接或断开这些VPN?
如果要从命令行与NetworkManager交互,可以使用“nmcli”命令。
列出所有NM连接: nmcli con
启动连接(wifi,vpn等): nmcli con up id ConnectionName
down connection: nmcli con down id ConnectionName
( nmcli联机帮助页中的更多nmcli命令)。
另请注意,普通用户通常无权控制网络。 使用上面的命令与sudo
应该适用于大多数连接,但VPN特别可能失败,并显示“错误:连接激活失败:没有有效的VPN机密”。
如果您遇到这种情况,VPN密码很可能存储在用户的gnome-keyring中,这使得root用户无法访问。 这个评论解释了原因。
要解决此问题,请编辑/ etc / NetworkManager / system-connections / ConnectionName并在[vpn]
,将密码标记行更改为:
password-flags=0
如果有一行以Xauth password-flags
开头,请更改它。
然后在[vpn]
块下面添加以下内容:
[vpn-secrets] password=YourPassword
(如果在上一步中更改了Xauth password-flags
,请添加Xauth password=...
)
现在重启网络管理员:
sudo service network-manager restart
然后使用sudo nmcli con up id ConnectionName
启动VPN连接应该没有问题。
ihashacks回答Matt的评论对我有用……差不多。 不得不调整一行。
我的密码标志行实际上是:“Xauth password-flag”。 在我改为以下之前,接受的答案对我不起作用
[vpn] ... Xauth password-flag=0 IPSec secret-flags=0 [vpn-secrets] Xauth password= ## This is the one I changed. IPSec secret=
不确定为什么我的vpn连接在每次提到密码之前都有“Xauth”。
(对不起,这是一个新的答案,还不能发表评论。)