Если вы читаете это в 2019 году и используете Ubuntu 16.x или 18.x, особенно если вы используете несколько IP-адресов, хост libvirt/kvm или ожидаете, что ваш экземпляр OpenVPN прослушивает только один указанный порт, и возникает следующая ошибка:
Socket bind failed on local address [AF_INET]XXX.XXX.XXX.XXX:10e94: Cannot assign requested address
Все остальные ответы являются неправильными или плохими решениями, правильным решением является:
В /etc/default/openvpn
AUTOSTART="none"
В /etc/network/interfaces
iface ethX inet static
address XXX.XXX.XXX.XX
netmask 255.255.255.0
openvpn my_vpn_name
Где ethX ваш интерфейс (ex, eth0 для обычного интерфейса, eth0 :1 для псевдонима интерфейса ), мой _vpn _name — это базовое имя файла без суффикса.conf вашего файла /etc/openvpn/my _vpn _name.conf .
Для пояснения, приведенное выше приводит к выполнению сценария /etc/network/if -up.d/openvpn , который, в свою очередь, выполняет systemctl --no -block start openvpn@my _vpn _name который запускает openvpn после вызова интерфейса или псевдонима.
Почему я говорю, что другие ответы плохие или неправильные? потому что они либо излишне сложны, либо требуют, чтобы ваш экземпляр openvpn прослушивал все IP-адреса, что крайне нежелательно по очевидным причинам.
Да, они используют правильный каталог.
/var
означает переменную, и этот каталог всегда предназначался для хранения данных, которые изменяются с течением времени.
https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch05s08.html