В нашей конфигурации Linux Ubuntu есть DNS-сервер (Bind 9).
И resolv.conf
имеет свой
nameserver 127.0.0.1
Когда используешь openvpn
клиент на этом Linux, сервер имен не изменяется (сервером VPN), но я хотел бы установить его - только во время сеанса VPN - на другой конкретный DNS-сервер x.y.z.t
, изменив конфигурацию клиента openvpn.
Затем, когда openvpn
сессия заканчивается, сервер имен должен вернуться к 127.0.0.1
.
Есть ли «чистый» способ (например, строка в файле конфигурации клиента openvpn) для этого?
(Примечание: конфигурацию VPN-сервера изменить нельзя)
После большего количества поисков в Google можно было найти ответ - ниже, если это может кому-то помочь.
resolv.conf
файл конфигурации/usr/share/openvpn
, названный update-resolv-conf
. Скрипт определяет, что должно быть новым resolv.conf
, и как его восстановить (см. ссылку ниже)эти строки
script-security 2
up /usr/share/openvpn/update-resolv-conf
down /usr/share/openvpn/update-resolv-conf
в файле конфигурации клиента openvpn.
Читай дальше эта вики Чтобы получить больше информации.
Это была полезная информация, которая помогла мне решить эту проблему.
Я пользователь Arch Linux, и я увидел, что когда клиент Linux используется с сервером доступа, он не может изменить настройки DNS на рассматриваемом клиенте, не разрешая хост, поскольку он стоит на Документация по OPEN VPN
Я создал сценарий, который устраняет проблему и с парой дополнительных параметров обрабатывает соединения openvpn через командную строку.
https://gist.github.com/android10/ee5c3e93dbcf9b7b31e6ee768cbfd477
Вот основная команда, выполняемая для подключения:
nohup openvpn --config $OVPN_FILE_PATH --askpass $OVPN_PRIVATE_KEY_FILE_PATH \
--script-security 2 \
--setenv PATH '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' \
--up /etc/openvpn/scripts/update-systemd-resolved \
--down /etc/openvpn/scripts/update-systemd-resolved \
--down-pre \
&>/dev/null &
Любая обратная связь более чем признательна.
Рассмотрите возможность использования route-up
/ route-down
сценарии на вашем клиенте, чтобы изменить вашу конфигурацию при настройке соединения по вашему усмотрению. Увидеть Документы OpenVPN о деталях того, как это настроить и какие переменные вы можете использовать в этих скриптах.
echo "nameserver = w.x.y.z"> /etc/resolv.conf
echo "nameserver = 127.0.0.1" >> /etc/resolv.conf