Как я автоматически запускаю и использую openvpn cli на Ubuntu 16.04 после того, как приостановят / резюме?

Я задавался вопросом, как я заставляю openvpn снова соединиться после того, как я бужу свой компьютер от системного резюме? Я пытаюсь использовать openvpn cli, не через администратора сети с .ovpn файлами.

2
задан 10 April 2017 в 05:04

1 ответ

Я узнал, что уже существует сценарий запуска openvpn, который сканирует для .conf файлов (можно просто изменить расширение от .ovpn до .conf). Для перезапуска openvpn после пробуждения моего компьютера, тем не менее, я смог создать systemd сервис, который работает над Ubuntu 16.04 LTS.

Назовите файл openvpn-reconnect.service и вставьте следующее:

[Unit]
Description=Restart OpenVPN after suspend
After=suspend.target
After=hibernate.target
After=hybrid-sleep.target

[Service]
ExecStart=/bin/systemctl restart openvpn.service

[Install]
WantedBy=suspend.target
WantedBy=hibernate.target
WantedBy=hybrid-sleep.target

Я рекомендую сначала удостовериться, что только серверы DNS Вашей VPN используются по умолчанию. Отключите с ошибками и полностью бессмысленную dnsmasq локальную вещь сервера DNS использование человечности, который унавоживает с разрешением DNS (см. статью здесь: disabling-dnsmasq-as-your-local-dns-server-in-ubuntu) путем комментирования (добавление #) к началу строки dns=dnsmasq при редактировании файла конфигурации администратора сети как так:

sudo emacs /etc/NetworkManager/NetworkManager.conf

Затем после того, чтобы сохранить файл нажмите на апплет администратора сети GUI, выберите "Соединения Редактирования", выберите основное устройство (не-VPN) сеть, Вы используете, нажимаете на вкладку "IPv6 Settings", игнорируете трафик IPv6 путем нажатия на вкладку "IPv6 Settings", и выбор Игнорируют" в меню "Method". Сохраните свои изменения, затем перезапустите администратора сети с

sudo service network-manager restart

Теперь получить ovpn, работающий через командную строку:

Создайте файл auth.txt, содержащий:

<username>
<password>

Например, демонстрационный auth.txt мог содержать две строки как так:

user1234
password1234

Отредактируйте .ovpn (или .conf) файлы для использования auth.txt для автоматизированного входа в систему: найдите строку, содержащую auth-user-pass, и добавьте auth.txt в конец как так:

...
auth-user-pass auth.txt
...

Если Ваш файл содержит автора-nocache опции, удалите ту строку. auth-user-pass и автор-nocache не совместимы! В openvpn страницах справочника явно говорится

Further,  using --daemon together with --auth-user-pass (entered
          on console) and --auth-nocache will fail as soon as key renego‐
          tiation (and reauthentication) occurs.

Этот жаргон по существу означает, что openvpn умрет спонтанно, в то время как Вы просматриваете или передаете потоком или безотносительно при включении подлинной-nocache строки в файл конфигурации.

Переименуйте .ovpn файлы в .conf файлы:

mv <filename>.ovpn <filename>.conf

Поместите необходимый .conf, .pem, и .crt файлы в каталоге Copy содержание каталога к/etc/openvpn:

sudo cp <path-to-auth-crt-pem-and-conf-files>/* /etc/openvpn

Укажите, который должно автоматически запустить соединение, когда openvpn запускается путем редактирования/etc/default/openvpn (конфигурационный файл для/etc/init.d/openvpn)

sudo emacs /etc/default/openvpn

Добавьте названия .conf файлов минус расширение ниже #AUTOSTART = "все", например, если у меня есть два .conf файла под названием американский Восток и US-East-Strong,

#AUTOSTART="all"
#AUTOSTART="US-East"
#AUTOSTART="US-East-Strong"

Некомментарий (удаляют знак #) из директивы АВТОМАТИЧЕСКОГО ЗАПУСКА единственного соединения Вы хотите активный. Каждый раз Вы изменяетесь, который соединение автоматически запустить, работайте:

sudo systemctl daemon-reload
sudo systemctl stop openvpn*
sudo systemctl start openvpn.service

Чтобы заставить openvpn снова соединиться после приостанавливают, используют openvpn-reconnect.service

Поместите сервисный файл, где systemd может найти его:

sudo cp openvpn-reconnect.service /lib/systemd/system

Включите и создайте использование символьных ссылок:

sudo systemctl enable openvpn-reconnect.service

Для проверки состояния openvpn соединения используйте:

systemctl status openvpn@<conf-filename-minus-extension>.service

например, если мой conf файл называют США-East.conf:

systemctl status openvpn@US-East.service

если с возможностью прокрутки, тип q для выхода для окружения.

3
ответ дан 2 December 2019 в 02:47

Другие вопросы по тегам:

Похожие вопросы: