Я задавался вопросом, как я заставляю openvpn снова соединиться после того, как я бужу свой компьютер от системного резюме? Я пытаюсь использовать openvpn cli, не через администратора сети с .ovpn файлами.
Я узнал, что уже существует сценарий запуска 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 для выхода для окружения.