как автоматически запустить openvpn (клиент) на Ubuntu Cli?

16

Я использую Ubuntu 12.04 64bit. У меня есть *.ovpnфайл, который работает, если я наберу:

sudo openvpn client.ovpn

Теперь я хотел бы запустить openvpnпри загрузке компьютера.

Как я могу это сделать?

Оспинатор
источник

Ответы:

22
  1. Скачать OpenVPNConfigFile.ovpn. Обратите внимание, что вы можете переименовать файл так, как вам нравится.

  2. Переместить файл ovpn в /etc/openvpn

  3. cd /etc/openvpn папку и введите sudo nano yourserver.txt

    your_server_user_name
    your_server_passowrd
    

    Сохранить и закрыть

  4. sudo nano OpenVPNConfigFile.ovpn

    Найти auth-user-passи добавить yourserver.txtрядом с ним, чтобы он стал

    auth-user-pass yourserver.txt
    

    Это позволит вам пропустить ввод учетных данных при каждом запуске соединения openvpn

  5. Переименовать OpenVPNConfigFile.ovpnвOpenVPNConfigFile.conf

    sudo mv OpenVPNConfigFile.ovpn OpenVPNConfigFile.conf
    
  6. sudo nano /etc/default/openvpn

    Раскоментируйте AUTOSTART="all"

  7. sudo service openvpn start

    Вы должны увидеть сообщение о том, что вы подключены. Соединение будет устанавливаться при каждом запуске компьютера.

Роберт Полсон
источник
5
Если вы используете systemd, вам нужно будет запустить его systemctl daemon-reloadдо перезапуска службы
Mario Campa
6

openvpnПакет поставляется с сценарием инициализации /etc/init.d/openvpn. Этот скрипт автоматически устанавливает соединение для каждого .conf(обратите внимание на расширение) файла в /etc/openvpn.

Нашел это на основе информации здесь: https://openvpn.net/index.php/open-source/documentation/howto.html#startup

Если вы устанавливаете OpenVPN через пакет RPM или DEB в Linux, программа установки настроит начальный скрипт. После выполнения initscript будет сканировать файлы конфигурации .conf в / etc / openvpn и, если найден, запустит отдельный демон OpenVPN для каждого файла.

Вашек покупатель
источник
2

Было бы неплохо иметь un-hacker способ сделать это, но сейчас это нужно сделать.

1) Создайте файл myopenvpn в /etc/init.d/

nano /etc/init.d/myopenvpn

2) Вставьте в myopenvpn и сохраните:

# OpenVPN autostart on boot script

start on runlevel [2345]
stop on runlevel [!2345]

respawn

exec /usr/sbin/openvpn --status /var/run/openvpn.client.status 10 --cd /etc/openvpn --config /etc/openvpn/client.conf --syslog openvpn

ИСТОЧНИК: http://www.hackerway.ch/2012/12/11/how-to-auto-start-openvpn-client-in-debian-6-and-ubuntu-12-04/#comment-79

Оспинатор
источник
2

Я немного застрял в этом и закончил тем, что выписал все инструкции по настройке с помощью systemd вручную.

У меня это работало с использованием Ubuntu 16.10 и openvpn 2.3.11

Настройка вашего vpn для запуска из bash

Эти примеры используют expressvpn, но большинство будет работать так же

Загрузите файл конфигурации ovpn вашего провайдера vpn, например, my_express_vpn_amsterdam_2 . OVPN

переместите это в /etc/openvpn/и переименуйте в конец .conf

sudo mv ~/Downloads/my_express_vpn_amsterdam_2.ovpn /etc/openvpn/amsterdam-2.conf

Ваш провайдер VPN предоставит вам имя пользователя и пароль для подключения через openvpn. Сохраните имя пользователя, а затем пароль каждого в своей строке

sudo vim /etc/openvpn/express-vpn-crednetials.txt
# add these lines
YOUR_VPN_USERNAME
YOUR_VPN_PASSWORD
# save the file

Теперь отредактируйте, /etc/openvpn/amsterdam-2.conf найдите строку с надписью auth-user-passи замените ее на путь к файлу учетных данных.

auth-user-pass /etc/openvpn/express-vpn-crednetials.txt

Проверьте свой конфиг! Запустите openvpn, как это

sudo openvpn --config /etc/openvpn/amsterdam-2.conf

openvpn должен подключаться без запроса имени пользователя или пароля

Удалить существующий (сломанный) сервисный конфиг для openvpn

sudo rm /etc/systemd/system/multi-user.target.wants/openvpn.service

Настройте openvpn для запуска в качестве службы systemd

Конфигурация, поставляемая с openvpn, была повреждена, поэтому я удалил ее и создал новый на основе этого ответа

Создать сервис systemd для openvpn

sudo vim /usr/lib/systemd/system/openvpn@service

добавьте этот конфиг:

[Unit]
Description=OpenVPN Robust And Highly Flexible Tunneling Application On %I
After=syslog.target network.target

[Service]
PrivateTmp=true
Type=forking
PIDFile=/var/run/openvpn/%i.pid
ExecStart=/usr/sbin/openvpn --daemon --writepid /var/run/openvpn/%i.pid --cd /etc/openvpn/ --config %i.conf

[Install]
WantedBy=multi-user.target

%iиспользуются в качестве шаблона , так что эта услуга может быть использована для нескольких конфигураций VPN. Настройте его для amsterdam-2.confфайла, который мы создали ранее

sudo systemctl start openvpn@amsterdam-2.service

служба systemd должна теперь работать на amsterdam vpn. проверить его статус так

sudo systemctl status openvpn@amsterdam-2.service

вы должны увидеть несколько строк вывода, оканчивающихся на, Initialization Sequence Completedи ваш vpn должен работать.

Надеюсь это поможет! связанное чтение:

/unix/206058/how-to-start-2fa-using-openvpn-with-systemd/206490#206490

Как запустить клиентский сервис OpenVPN в Ubuntu 15.04

/unix/148990/using-openvpn-with-systemd/149003#149003?newreg=53ca53879fcc489f94304f91bbc82ab3

roo2
источник