Arch Linux: OpenVPN – не обновляется resolv.conf

Автор: | 02/03/2019

В Arch Linux при подключении к OpenVPN AS не обновляется resolv.conf.

Насколько я в курсе – проблема специфична именно для Arch и его производных, типа Manjaro Linux.

Пакет openvpn установлен с помощь pacman, см. OpenVPN: настройка OpenVPN Access Server и AWS VPC peering.

При старте подключения – в логе выводятся сообщения:

[simterm]

...
Fri Feb 22 16:40:28 2019 Unrecognized option or missing or extra parameter(s) in [PUSH-OPTIONS]:4: dhcp-pre-release (2.4.6)
Fri Feb 22 16:40:28 2019 Unrecognized option or missing or extra parameter(s) in [PUSH-OPTIONS]:5: dhcp-renew (2.4.6)
Fri Feb 22 16:40:28 2019 Unrecognized option or missing or extra parameter(s) in [PUSH-OPTIONS]:6: dhcp-release (2.4.6)
Fri Feb 22 16:40:28 2019 Unrecognized option or missing or extra parameter(s) in [PUSH-OPTIONS]:23: register-dns (2.4.6)
Fri Feb 22 16:40:28 2019 Unrecognized option or missing or extra parameter(s) in [PUSH-OPTIONS]:24: block-ipv6 (2.4.6)
...

[/simterm]

Проверяем resolv.conf – в нём остаётся DNS провайдера:

[simterm]

$ cat /etc/resolv.conf
# Generated by resolvconf
nameserver 188.190.254.254
nameserver 31.43.120.254
nameserver 92.249.120.254

[/simterm]

Документация – тут>>>.

Загружаем скрипт:

[simterm]

$ sudo wget -O /etc/openvpn/update-resolv-conf https://raw.githubusercontent.com/masterkorp/openvpn-update-resolv-conf/master/update-resolv-conf.sh

[/simterm]

(в Debian/Ubuntu он создаётся при установке пакета openvpn).

Задаём выполнение:

[simterm]

$ sudo chmod +x /etc/openvpn/update-resolv-conf

[/simterm]

Обновляем свой client.ovpn (в моём случае это /etc/openvpn/client/setevoy-ovnas.conf) – добавляем вызов скрипта:

...
script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
...

В настройка OpenVPN указана передача DNS: первый IP – это IP сети VPN, второй – CloudFlare, just in case:

Перезапускаем подключение:

[simterm]

$ sudo /usr/bin/openvpn --suppress-timestamps --nobind --config /etc/openvpn/client/setevoy-ovnas.conf
...
Unrecognized option or missing or extra parameter(s) in [PUSH-OPTIONS]:4: dhcp-pre-release (2.4.7)
Unrecognized option or missing or extra parameter(s) in [PUSH-OPTIONS]:5: dhcp-renew (2.4.7)
Unrecognized option or missing or extra parameter(s) in [PUSH-OPTIONS]:6: dhcp-release (2.4.7)
Unrecognized option or missing or extra parameter(s) in [PUSH-OPTIONS]:20: register-dns (2.4.7)
Unrecognized option or missing or extra parameter(s) in [PUSH-OPTIONS]:21: block-ipv6 (2.4.7)
...
/etc/openvpn/update-resolv-conf tun0 1500 1553 172.27.232.17 255.255.248.0 init
dhcp-option DNS 172.31.26.29
dhcp-option DNS 1.1.1.1
...

[/simterm]

Проверяем resolv.conf:

[simterm]

$ cat /etc/resolv.conf
# Generated by resolvconf
nameserver 172.31.26.29
nameserver 1.1.1.1

[/simterm]

Готово.