Согласно предоставленной вами информации, вы должны начать с определения того, действительно ли служба DNS маршрутизатора работает или нет. Вы сможете определить это, посмотрев конфигурацию маршрутизатора, чтобы увидеть, работает ли служба или нет, но если нет индикаторов, которые могли бы вам помочь, вы можете прибегнуть к сканированию порта.
ПРОПУСТИТЕ ЭТОТ РАЗДЕЛ, ЕСЛИ ВАШ МАРШРУТ СКАЗАЛ, ЧТО ВАМ DNS ЖИВЕТ:
Используйте такой инструмент, как nmap. Вы можете быстро загрузить его на свой сервер Linux, поскольку он включен в большинство репозиториев пакетов по умолчанию для стандартных дистрибутивов Linux (Debian, Ubuntu, CentOS, Mint, Fedora, Redhat и т.д.). В зависимости от того, используете ли вы дистрибутив на основе Debian или RPM, синтаксис вашей команды может отличаться.
Для Debian:
- Для поиска
nmap
: sudo apt-cache search nmap
- Для установки
nmap
: sudo apt-get install nmap
Для RPM (Fedora, Centos, RedHat и аналогичных):
dnf search nmap
dnf install nmap
(на старых версиях до dnf
:)
yum search nmap
yum install nmap
Сканирование для DNS
Предполагая, что IP-адрес вашего маршрутизатора 192.168.1.1
, вы хотите выполнить сканирование UDP-службы (-sU
) на порту 53 (-p53
) с агрессивным разрешением (-A
), чтобы выяснить, работает ли он и работает:
nmap -sU -p53 -A 192.168.1.1
Если сервис возвращается ОТКРЫТЫЙ | НЕФИЛЬТРИРОВАННЫЙ, то вы золотой. Если он отображается как ЗАКРЫТЫЙ, то побольше поэкспериментируйте с конфигурациями и посмотрите, есть ли варианты, которые позволяют перенастроить DNS или просто перезагрузить маршрутизатор в надежде, что он вернется к жизни. Если ничего не помогает, позвоните производителю и пожалуйтесь. Это иногда работает :)
Настройка хоста Windows:
Вернемся к поставленной задаче: если вы уверены, что DNS работает и работает правильно на маршрутизаторе, вы можете попытаться заставить клиента Windows работать, так как он немного проще и у вас есть графический интерфейс, на который можно рассчитывать. Я рекомендую настроить резервный DNS на вашем маршрутизаторе, чтобы он мог запрашивать несколько DNS-серверов в случае сбоя одного из них.
Мои личные фавориты:
8.8.8.8
- это Google 1
8.8.4.4
- это Google 2
208.67.220.220
- это OpenDNS 1
208.67.222.222
- это OpenDNS 2
Как только это будет сделано, следующим шагом должно стать выяснение, можете ли вы заставить систему Windows разрешить DNS на маршрутизаторе, настроив его вручную в сетевых настройках TCP/IPv4.
- Щелкните правой кнопкой мыши значок сети в правой нижней части панели задач и перейдите в Центр управления сетями
Networking and Sharing Center
.
- Нажмите на свой сетевой интерфейс (должен быть
ethernet 1
или аналогичный) и перейдите в properties
.
- Нажмите
Internet Protocol Version 4 (TCP/IPv4)
и снова нажмите properties
,
- Нажмите на пользователя следующую радиальную кнопку
User the following DNS server addresses
,
- Введите IP-адрес маршрутизатора /DNS-сервера в качестве предпочтительного DNS,
- Введите
8.8.8.8
(общедоступный DNS от Google) в качестве альтернативного DNS для резервного
- Проверьте
Validate Settings
проверки при выходе
- Нажмите
OK
чтобы подать заявку и подождите, пока сетевой интерфейс устранит неполадки / перезагрузится
На этом этапе вы должны иметь возможность разрешать имена хостов DNS в системах Windows. Если да, то вы знаете, что по какой-то причине служба DHCP вашего маршрутизатора не передает правильные настройки, и вам, возможно, потребуется либо привлечь производителя, либо вы, возможно, можете повозиться, надеясь, что он вас куда-нибудь доставит. Всегда обращайтесь к документации.
Если, с другой стороны, это не работает, я бы заподозрил сами кабели или оборудование маршрутизатора. На данный момент ничего не остается сделать, кроме как начать замену физических устройств.
Настройка сервера Linux:
(Возможно, вам придется запускать эти команды от пользователя root
/sudo
если вы видите какие-либо ошибки прав доступа.)
Скорее всего, это будет новое приключение для вас, если у вас нет большого опыта работы с Linux, но вы не беспокоитесь.
Начните с проверки файла /etc/resolv.conf
с помощью:
cat /etc/resolv.conf
В этом файле настраиваются серверы имен, доменные имена и поисковые домены. Как правило, вы увидите:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
Есть две возможности, в зависимости от того, как выглядит ваша установка. Во-первых, у вас установлен dnsmasq, и вы получите этот предупреждающий баннер, в котором говорится, что вы не должны менять свой resolv.conf. В этом случае он будет иметь петлю (127.0.0.1 или 127.0.1.1), как вы видите в моей конфигурации, что указывает на то, что он запускает свою собственную службу DNS через dnsmasq. Если вы видите это, запустите следующее:
/etc/init.d/dnsmasq status
Если вы видите No such file or directory
то dnsmasq не установлен, не проблема. Вы можете либо двигаться дальше без него, либо мы можем быстро установить его с
apt-get install dnsmasq
(или dnf install dnsmasq
).
Если вы решите не устанавливать / перезапускать dnsmasq, вы можете просто отредактировать файл /etc/resolv.conf
своем любимом текстовом редакторе (я предпочитаю nano
), включив в него следующие строки:
nameserver 192.168.1.1 8.8.8.8 8.8.4.4 # That's your router and two fallback DNS servers
Если вы видите, что dnsmasq имеет статус Active/Running, значит, он установлен и работает правильно. Если dnsmasq неактивен / неактивен, вам следует запустить его следующим образом:
/etc/init.d/dnsmasq start
dnsmasq обычно обрабатывает разрешение DNS, динамически изменяя файл /etc/resolv.conf
. В тех случаях, когда ваш распознаватель не обрабатывает запросы должным образом или dnsmasq не настроен должным образом, я настоятельно рекомендую прочитать его прекрасную документацию .
Но на самом деле для вашего /etc/dnsmasq.conf
необходимы только две настройки:
server=/yourlocaldomain/192.168.1.1
local=/yourlocaldomain/
Они устанавливают для сервера имя локального домена и IP-адрес DNS-сервера, а local=/yourlocaldomain/
запрещает dnsmasq пытаться разрешить доступ к серверам имен верхнего уровня, когда ваш домен находится в полном доменном имени хоста, который вы пытаетесь разрешить.
Например, если вы не установите этот параметр и попытаетесь разрешить emailserver.localdomain
, dnsmasq спросит общедоступный DNS Google, где находится emailserver.localdomain
... и, конечно, ответит: « Понятия не имею!"
Установка этого параметра заставит dnsmasq go:" emailserver.**localdomain**
... Я должен спросить 192.168.1.1
где это. "- и 192.168.1.1
, ваш маршрутизатор, может ответить соответствующим образом с правильным ответом DNS и IP- emailserver.localdomain
.
Я надеюсь, что это объяснение и долгое решение поможет вам. Я пытался учесть каждый сценарий, который мог придумать, но дал мне знать, если я что-то пропустил или что-то не работает.