Вы можете отключить systemd-resolved
от загрузки при загрузке используя sudo systemctl disable systemd-resolved
.
Если вы хотите запустить их вместе, вы можете перенаправить systemd-resolved
на использование localhost в качестве основного сервера имен. Это гарантирует, что все запросы будут направлены на dnsmasq для разрешения перед обращением к внешнему DNS-серверу. Это можно сделать, добавив строку nameserver 127.0.0.1
в начало файла /etc/resolv.conf
. Это также отключит локальное кеширование systemd.
Вы можете прочитать больше на вики Arch Linux . Я скопировал это оттуда, и он довольно хорошо покрывает это.
Однако это не позволяет надежно избежать ошибки во время загрузки, т.е. dnsmasq все равно не сработает, если systemd-resolved запускается первым. Если ваша версия systemd
достаточно новая, используйте ответ Malvineous . Если ваша версия systemd
слишком старая, вы можете обойти эту проблему, изменив модуль dnsmasq: в разделе [Unit]
добавьте Before = systemd-resolved
.
После этого, если хотите, вы можете создать отдельный / etc / dnsmasq-resolv.conf
для вышестоящих серверов имен и передайте его с помощью параметра -r
или - resolv-file
, либо добавьте вышестоящие серверы имен в файл конфигурации dnsmasq и используйте -R
или - опция no-resolv
. Таким образом, у вас будет только локальный хост в вашем /etc/resolv.conf
, и все будет проходить через dnsmasq.
Как я уже говорил раньше:
Полагаю, я упускаю что-то новое в том, как systemd управляет службой.
Да, и это объясняется в комментарии в верхней части /lib/systemd/system/openvpn.service
. Вы, как и другой автор вопроса, вызываете сценарий System 5 rc
напрямую. Не вызывайте скрипты System 5 rc
напрямую, особенно в системе, где System 5 rc
не используется, например, Debian версии 8.
OpenVPN является шаблонизированной службой под systemd - будь то в Fedora, Ubuntu или Debian Linux. Службы называются openvpn@config.service
. Итак, вы должны запустить свой экземпляр /etc/openvpn/servervpn.conf
с
systemctl start openvpn@servervpn.service