Каждый раз, когда я меняю сети, DNS-кеш имеет неверный IP-адрес. Как исправить автоматически каждый раз?

Веб-сайт сотрудников моей компании доступен:

  • из внешнего мира через его IP-адрес 1.2.3.4 или имя employees.corp.com
  • изнутри сети компании через ее IP-адрес 192.168.1.2 или имя employees.corp.com

Проблема: после коммутирующих из дома, доступ к сайту employees.corp.com изнутри компания часто терпит неудачу.

  • Когда это не удается, если я бегу ping employees.corp.com это говорит 64 bytes from w91284.telco.com (1.2.3.4): icmp_seq=1 ttl=255 time=2.08 ms,
  • Я единственный человек с этой проблемой. Все остальные сотрудники просматривают employees.corp.com все время, внутри и снаружи, без проблем. Я также единственный, кто использует Linux (Ubuntu 2018.04 установлен с нуля, но у меня была такая же проблема с 2016.04).

Я нашел два обходных пути, когда это произойдет:

  • Обходной путь A: измените URL для замены employees.corp.com с 192.168.1.2
  • Обходной путь B: Выполнить sudo service network-manager restart

Оба эти обходных пути на мгновение решают проблему, но ни один из них не приносит удовлетворения, поскольку они тратят время каждый день. Каким было бы постоянное решение?

Отключение или сокращение кеша DNS замедлит доступ ко всему Интернету, поэтому я бы предпочел, чтобы он ограничивался этим конкретным доменом. Я тоже открыт для совершенно разных решений.

2 ответа

Решение

Этот сценарий systemd перезапускает Network Manager при выходе из режима ожидания.

#!/bin/sh

MYNAME=$0

restart_network() {
    /usr/bin/logger $MYNAME 'restart_network BEGIN'
    systemctl restart NetworkManager.service
    /usr/bin/logger $MYNAME 'restart_network END'
}

/usr/bin/logger $MYNAME 'case=[' ${1}' ]'
case "${1}/${2}" in
    hibernate|suspend|pre*)
      ;;
    resume|thaw|post*)
      restart_network;;
esac

Вам нужно будет создать этот скрипт, называемый network-reset, с полномочиями sudo и сохраните его в каталоге /lib/systemd/system-sleep, Затем пометьте его исполняемым, используя:

chmod a+x /lib/systemd/system-sleep/network-reset

logger Приведенные выше команды позволяют проверять результаты, выполнив journalctl или глядя в /var/log/syslog,

Я был в основном удовлетворен решением WinEunuuchs2Unix, но иногда по какой-то причине оно все еще не получалось, поэтому приходилось очень часто перезагружать сеть, часто 4 раза во время одного и того же заседания за рабочим столом моей компании.

Наконец-то я настроил WiFi-соединение, чтобы всегда использовать оба DNS-адреса:

Возможно, это иногда приводит к замедлению соединения, но, по крайней мере, я могу надежно подключиться к веб-сайту компании.

Другие вопросы по тегам