Импортируйте файлы конфигурации VPN в NetworkManager из командной строки

14

Можно импортировать .ovpnфайлы в NetworkManager с помощью инструмента с графическим интерфейсом nm-connection-editor(щелкните правой кнопкой мыши nm-appletи выберите Edit connections): Add-> Import a saved VPN configuration....

Моя цель - сделать то же самое, но через командную строку, используя такие инструменты, как nm-cli. Возможно ли это как-то?

Петрушка
источник
Вы продвинулись в этом? Я пытаюсь сделать то же самое, поэтому выложу ответ, если у меня получится.
Дэвид Мейсон
@DavidMason, к сожалению, нет. Я жду вашего решения.
петРУшка
Я тоже активно ищу решение.
Распбегуй
Я хотел бы увидеть решение для импорта из командной строки
davidbaumann

Ответы:

10

Я использую версию 1.2.6 nmcli и могу использовать ее для импорта конфигураций openvpn.

nmcli connection import type openvpn file ~/myconfig.ovpn

Отныне даже в пользовательском интерфейсе NetworkManager мой vpn виден.

Для дальнейшей настройки соединения вы можете использовать showкоманду, чтобы узнать имя соединения и modifyизменить значения конфигурации.

nmcli connection show
nmcli connection modify myvpnconnectionname +vpn.data username=myusername
Бастиан
источник
Любая идея, как использовать, -vpn.dataесли я случайно добавил что-то не так в данные конфигурации?
32r34wgf3e
@ 32r34wgf3e не знаю. Когда моя конфигурация неверна, я удаляю ее и выполняю новую настройку из командной строки, как указано в моем ответе. Совет: сохраняйте свои команды в текстовом файле для последующего повторного использования.
Бастиан
5

Обходной путь, который я использую для преодоления недостатка функциональности, который поставляется с nmcli в системах на основе debian, - это использование команд для копирования существующего файла конфигурации VPN в папке / etc / NetworkManager / system-settings в новый файл (как 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

Я использовал это для запуска от root:

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) успешно добавлено.

djieno
источник
Почему использовать runuserтолько для использования пользователем sudo? Это не добавляет ничего, что уже не упомянуто, например, Импорт файлов конфигурации VPN в NetworkManager из командной строки
Kusalananda
Сценарий регистрации на ноутбуке запускается от имени пользователя root
djieno
Конечно, и вы переключаетесь на japieиспользование runuser, но затем вы переключаетесь обратно на root с помощью sudo...
Кусалананда
если вы не добавите «sudo ...», у текущего пользователя / пользователя недостаточно прав для запуска nmcli
djieno
Так что не переключайтесь на этого пользователя с runasпотом ... Короче говоря, я говорю, что этого должно быть достаточно с nmcli connection import type openvpn file ~japie/vpn_clients/flappie3-TO-IPFire.ovpn.
Кусалананда