Tim*_*ain 172 command-line network-manager vpn pptp vpnc
我在我的 Ubuntu 机器上设置了两个 VPN,一个使用 vpnc,一个使用 PPTP。这些都是使用 GNOME 网络管理器界面设置的,效果很好。但是,有时我需要远程访问这台机器 - 有没有办法从命令行连接或断开这些 VPN?
小智 268
如果您想从命令行与 NetworkManager 交互,您可以使用“nmcli”命令。
列出所有 NM 连接: nmcli con
开始连接(wifi、vpn 等): nmcli con up id ConnectionName
向下连接: nmcli con down id ConnectionName
(更多 nmcli 命令在nmcli 联机帮助页中)。
另请注意,普通用户通常无权控制网络。使用上面的命令sudo应该适用于大多数连接,但 VPN 可能会因“错误:连接激活失败:没有有效的 VPN 机密”而失败。
如果您遇到这种情况,则 VPN 密码很可能存储在您用户的 gnome-keyring 中,这使得 root 用户无法访问它。这条评论解释了原因。
要解决此问题,请编辑/etc/NetworkManager/system-connections/ConnectionName并在 下[vpn],将密码标志行更改为:
password-flags=0
Run Code Online (Sandbox Code Playgroud)
如果有一行以 开头Xauth password-flags,请改为更改它。
然后在[vpn]块下面添加以下内容:
[vpn-secrets]
password=YourPassword
Run Code Online (Sandbox Code Playgroud)
(如果在上一步中更改了 line Xauth password-flags,请改为添加Xauth password=...。)
现在通过以下方式重新启动网络管理器:
sudo service network-manager restart
Run Code Online (Sandbox Code Playgroud)
然后启动 VPN 连接sudo nmcli con up id ConnectionName应该没有问题。
ihashacks的答案与马特的意见为我工作......几乎。不得不调整一行。
我的密码标志行实际上是:“ 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>
Run Code Online (Sandbox Code Playgroud)
不知道为什么我的 VPN 连接Xauth在每次提到密码之前都有“ ”。