Каждый раз, когда я меняю сети, 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-адреса:
Возможно, это иногда приводит к замедлению соединения, но, по крайней мере, я могу надежно подключиться к веб-сайту компании.