192.168.1.1 - это мой роутер NetGear. Он имеет 8.8.8.8 и 8.8.4.4 в качестве DNS. из окон:

nslookup google.com 192.168.1.1  // works OK

из убунту:

me@ubuntu:/etc/mail# dig @192.168.1.1 google.com +tcp
;; Connection to 192.168.1.1#53(192.168.1.1) for google.com failed: connection refused.

Я думаю, что это не должно идти на порт 53, верно? Если да, то, что может быть причиной , чтобы dig перевод мой DNS запрос спрашивать NetGear на неверный порт?

Я не могу запросить 8.8.8.8:

dig @8.8.8.8 google.com

; <<>> DiG 9.9.2-P2 <<>> @8.8.8.8 google.com
; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached
root@ubuntuamd:/etc/mail# dig @8.8.8.8 google.com +tcp

однако может с +tcp:

dig @8.8.8.8 google.com +tcp

; <<>> DiG 9.9.2-P2 <<>> @8.8.8.8 google.com +tcp
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59432
;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;google.com.            IN  A

;; ANSWER SECTION:
google.com.     88  IN  A   46.28.247.93
google.com.     88  IN  A   46.28.247.119
//etc

;; Query time: 33 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed May  8 00:20:06 2013
;; MSG SIZE  rcvd: 295

в конце этого: здесь 127.0.1.1 (dnsmasq верно?) отвечает:

 dig  google.com

; <<>> DiG 9.9.2-P2 <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34747
;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.com.            IN  A

;; ANSWER SECTION:
google.com.     300 IN  A   208.117.224.29
//etc

;; Query time: 3 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Wed May  8 00:04:44 2013
;; MSG SIZE  rcvd: 284

нм инструмент:

me@ubuntu:/etc/mail# nm-tool | tail -n 8   IPv4 Settings:
    Address:         192.168.1.3
    Prefix:          24 (255.255.255.0)
    Gateway:         192.168.1.1

    DNS:             192.168.1.1

3 ответа3

5

Порт 53 действительно является портом, который DNS-сервер прослушивает для запросов.

Однако по умолчанию это UDP-порт 53, а TCP-порт 53 используется не часто.

Ваши команды dig и nslookup по умолчанию используют UDP, но в своей команде dig вы указали использовать TCP с +tcp , и поскольку маршрутизатор прослушивает только UDP, запрос завершается неудачно.

Чтобы решить эту проблему, сделайте запрос с UDP, удалив +tcp из команды dig .

1

Вам следует установить bind и использовать 127.0.1.1 . Это может помочь и решить ваши проблемы.

1

DNS работает на порту 53.

Порт 53 является портом, назначенным IANA для DNS.

dig делает поиск DNS. nslookup выполняет поиск DNS. Таким образом, они оба используют порт 53.

Что касается вашего реального вопроса, который:

тогда почему отказано?

Ну, это может быть по ряду причин. Возможно, ваш компьютер с Ubuntu находится в другой сети. Может быть, его сетевой кабель отключен. Возможно, у вас есть правила брандмауэра, блокирующие исходящий DNS, за исключением некоторых конкретных IP-адресов.

Есть ли конкретная проблема, которую вы пытаетесь решить с помощью этой команды dig ?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .