Сервер имен VPN остается в resolv.conf после отключения

Сервер имен VPN остается в resolv.conf после отключения

Я использую Network Manager (1.18.0-1) в системе Arch Linux, где resolvconfтакже присутствует (от openresolvкоторого зависит базовый пакет netctl).

Когда я подключаюсь к VPN-серверу через NetworkManager, у меня возникает проблема с сохранением записи DNS после отключения VPN. Я частично нашел причину:

  1. после подключения процесс NetworkManager включает сервер имен VPN вresolv.conf
  2. относительно /etc/ppp/ip-up.d/00-dns.sh(ниже) и действительно USEPEERDNS=1вызывается resolvconf; он сделает резервную копию resolv.confи заменит собственной записью сервера имен
  3. после отключения VPN /etc/ppp/ip-down.d/00-dns.shвызывает resolvconfудаление записи сервера имен и восстановление resolv.confиз resolv.conf.bakтого места, где (в данный момент) находится запись недоступного сервера имен

Грязное исправление — отключить /etc/ppp/ip-up.d/00-dns.sh(или просто закомментировать строку /usr/bin/resolvconf ...). Я не хочу удалять, openresolvпотому что это сломает netctlзависимость, а мне нужен этот базовый пакет тоже.

Поскольку NetworkManager не является "стандартным" сетевым инструментом в Arch Linux, я не уверен, является ли это своего рода ошибкой или я упускаю какие-то настройки. Каков правильный способ решения этой проблемы?

/etc/ppp/ip-up.d/00-dns.sh:

#!/bin/sh

if [ "$USEPEERDNS" = "1" -a -f /etc/ppp/resolv.conf ]; then
  if [ -x /usr/bin/resolvconf ]; then
    /usr/bin/resolvconf -a ${IFNAME} </etc/ppp/resolv.conf
  else
    [ -e /etc/resolv.conf ] && mv /etc/resolv.conf /etc/resolv.conf.backup.${IFNAME}
    mv /etc/ppp/resolv.conf /etc/resolv.conf
    chmod 644 /etc/resolv.conf
  fi
fi

Связанный контент