从命令行将VPN配置文件导入NetworkManager


14

可以.ovpn通过GUI工具nm-connection-editor(右键单击nm-applet并单击Edit connections)将文件导入NetworkManager :Add-> Import a saved VPN configuration...

我的目标是做同样的事情,但要通过命令行使用诸如的工具nm-cli。有可能吗?


您在这方面取得了进展吗?我正在尝试做同样的事情,所以如果我能解决问题,将发布答案。
戴维·梅森

@DavidMason,不幸的是,没有。我正在等待您的解决方案。
petRUShka 2014年

我也在积极寻找解决方案。
Raspbeguy

我希望看到通过命令行导入的解决方案
davidbaumann

Answers:


10

我正在使用nmcli版本1.2.6,可以使用它导入openvpn配置。

nmcli connection import type openvpn file ~/myconfig.ovpn

从现在开始,即使在NetworkManager UI中,我的vpn仍然可见。

要进一步配置连接,可以使用show命令找出连接名称并modify更改配置值。

nmcli connection show
nmcli connection modify myvpnconnectionname +vpn.data username=myusername

-vpn.data如果我不小心在配置数据中添加了错误的内容,该如何使用?
32r34wgf3e

@ 32r34wgf3e不知道。当我的配置错误时,我将其删除并按照答案中的概述从命令行进行全新设置。提示:将命令存储在文本文件中,以备日后重用。
bastian

5

为了克服基于debian的系统上nmcli所缺乏的功能,我使用的一种解决方法是使用命令将/ etc / NetworkManager / system-settings文件夹中的现有VPN配置文件复制到新文件(作为root,当然)在同一文件夹中,并替换新副本中允许的用户,网关,用户名和密码值的字符串。然后,我重新启动网络管理器以应用更改。

例如:

/ etc / NetworkManager / system-settings文件夹中的典型配置文件可能如下所示:

[connection]
id=<<id>>
uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
type=vpn
permissions=user:<<permissions_user>>:;
autoconnect=false

[vpn]
password-flags=0
service-type=org.freedesktop.NetworkManager.pptp
require-mppe-128=yes
mppe-stateful=yes
user=<<user>>
refuse-eap=yes
refuse-chap=yes
gateway=<<gateway>>
refuse-pap=yes

[vpn-secrets]
password=<<password>>

[ipv4]
method=auto

...因此您可以创建一个新的配置文件,该文件看起来类似于上面的文件...

cd /etc/NetworkManager/system-settings
cp "existing-working-vpn-config-file" "new-vpn-config-file"

...然后用您自己的VPN设置替换上面的'<< >>'值,例如:

sed -i "s/<<permissions_user>>/my_permissions_user/g" new-vpn-config-file
sed -i "s/<<user>>/my_user/g" new-vpn-config-file
sed -i "s/<<gateway>>/my_gateway/g" new-vpn-config-file
sed -i "s/<<password>>/my_password/g" new-vpn-config-file

...,然后最终通过以下命令重新启动网络管理器:

service network-manager restart

注意:UUID设置似乎并不重要,即使它不是唯一的。不知道为什么。东西就可以了。

另外,如果要添加新文件而不是复制文件,请确保对该文件的权限设置为600(读和写),并且所有者为root。

试一试,告诉我您的想法。它对我有用,全部通过命令行。


0

我用它来从根运行:

USER=japie
runuser -l $USER -c "sudo -S nmcli connection import type openvpn file ~/vpn_clients/flappie3-TO-IPFire.ovpn"

已成功添加连接'flappie3-TO-IPFire'(26d0b28e-9212-4e71-90dc-3911ddf231e5)。


为什么runuser只使用有用户使用sudo?这不会添加任何未提到的内容,例如,从命令行将VPN配置文件导入NetworkManager
Kusalananda

笔记本电脑注册脚本以root用户
身份

当然可以,您切换为japie使用runuser,但随后您使用sudo... 切换回root
Kusalananda

如果您不添加“ sudo ...”,则当前用户/ japie没有足够的权限运行nmcli
djieno

因此,不要再使用该用户了runas……简而言之,我的意思是使用它应该足够了nmcli connection import type openvpn file ~japie/vpn_clients/flappie3-TO-IPFire.ovpn
库沙兰丹
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.