2011-12-14 16:43:50 +0000 2011-12-14 16:43:50 +0000
162
162

Jak mogę skierować zapytanie do konkretnego serwera DNS?

Chciałbym skierować zapytanie do konkretnego serwera DNS, którego adres IP znam. Nie ma znaczenia czy jest on w systemie Windows czy *nix.

W systemie Windows mogę zrobić coś w stylu:

C:\Documents and Settings\Anton Daneyko>nslookup superuser.com
Server: DNSs2.Uni-Marburg.DE
Address: 137.248.21.22

Non-authoritative answer:
Name: superuser.com
Address: 64.34.119.12

Ale to wykorzystuje ustawienia DNS lokalnej maszyny. Zamiast tego chciałbym zapytać konkretny serwer DNS, czy odpowiada na moje zapytania poprawnie, czy też w ogóle.

Więc powinno to być coś w stylu:

nslookup --dns-ip=8.8.8.8 superuser.com

Odpowiedzi (8)

210
210
210
2011-12-14 16:54:16 +0000

Dla podstawowych rekordów A i CNAME, możesz po prostu zrobić

nslookup somewhere.com some.dns.server
Usage: 
   nslookup [-opt ...] # interactive mode using default server
   nslookup [-opt ...] - server # interactive mode using 'server'
   nslookup [-opt ...] host # just look up 'host' using default server
   nslookup [-opt ...] host server # just look up 'host' using 'server'

lub jeśli po prostu wpiszesz nslookup bez żadnych parametrów, możesz zrobić dużo więcej opcji…

Commands: (identifiers are shown in uppercase, [] means optional)
NAME - print info about the host/domain NAME using default server
NAME1 NAME2 - as above, but use NAME2 as server
help or ? - print info on common commands
set OPTION - set an option
    all - print options, current server and host
    [no]debug - print debugging information
    [no]d2 - print exhaustive debugging information
    [no]defname - append domain name to each query
    [no]recurse - ask for recursive answer to query
    [no]search - use domain search list
    [no]vc - always use a virtual circuit
    domain=NAME - set default domain name to NAME
    srchlist=N1[/N2/.../N6] - set domain to N1 and search list to N1,N2, etc.
    root=NAME - set root server to NAME
    retry=X - set number of retries to X
    timeout=X - set initial time-out interval to X seconds
    type=X - set query type (ex. A,AAAA,A+AAAA,ANY,CNAME,MX,NS,PTR,SOA,SRV)
    querytype=X - same as type
    class=X - set query class (ex. IN (Internet), ANY)
    [no]msxfr - use MS fast zone transfer
    ixfrver=X - current version to use in IXFR transfer request
server NAME - set default server to NAME, using current default server
lserver NAME - set default server to NAME, using initial server
root - set current default server to the root
ls [opt] DOMAIN [> FILE] - list addresses in DOMAIN (optional: output to FILE)
    -a - list canonical names and aliases
    -d - list all records
    -t TYPE - list records of the given RFC record type (ex. A,CNAME,MX,NS,PTR etc.)
view FILE - sort an 'ls' output file and view it with pg
exit - exit the program
11
11
11
2011-12-14 16:50:55 +0000

Po prostu zagłębiając się w opcje nslookup, które można wyświetlić po wywołaniu nslookup, a następnie wpisaniu help w trybie interaktywnym nslookup dało mi właściwą odpowiedź:

C:\Documents and Settings\Anton Daneyko>nslookup help
Server: DNSs2.Uni-Marburg.DE
Address: 137.248.21.22

*** DNSs2.Uni-Marburg.DE can't find help: Non-existent domain

C:\Documents and Settings\Anton Daneyko>nslookup
Default Server: DNSs2.Uni-Marburg.DE
Address: 137.248.21.22

> stackoverflow.com 8.8.8.8
Server: [8.8.8.8]
Address: 8.8.8.8

Non-authoritative answer:
Name: stackoverflow.com
Address: 64.34.119.12
7
7
7
2015-09-22 13:20:36 +0000

Tak, C:\Documents and Settings\Anton Daneyko>nslookup superuser.com wyszuka Twój własny serwer DNS, aby dowiedzieć się o adresie IP dla superuser.com. Jeśli dodasz adres ip lub nazwę innego serwera DNS do linii poleceń, to wyszuka ten serwer DNS dla adresu ip superuser.com. Na przykład:

C:\Documents and Settings\Anton Daneyko>nslookup superuser.com 8.8.4.4
Server: google-public-dns-b.google.com
Address: 8.8.4.4

Non-authoritative answer:
Name: superuser.com
Addresses: 190.93.245.58
      190.93.246.58
      141.101.114.59
      190.93.247.58
      190.93.244.58

Przy okazji, 8.8.4.4 jest adresem ip serwerów DNS Google.

Ale oba powyższe dają “Nieautorytatywne odpowiedzi”, ponieważ żaden z nich nie jest SOA, co jest autorytatywne dla domeny superuser.com. Obie mają kopię w pamięci podręcznej, która została rozpowszechniona z SOA. Jeśli chcesz zapytać autorytatywny serwer, najpierw dowiedz się o nazwę adresu ip autorytatywnego serwera, używając komendy:

C:\Documents and Settings\Anton Daneyko>nslookup -type=ns superuser.com
Server: DNSs2.Uni-Marburg.DE
Address: 137.248.21.22

Non-authoritative answer:
superuser.com nameserver = cf-dns02.superuser.com
superuser.com nameserver = cf-dns01.superuser.com

cf-dns02.superuser.com internet address = 173.245.59.4
cf-dns02.superuser.com AAAA IPv6 address = 2400:cb00:2049:1::adf5:3b04
cf-dns01.superuser.com AAAA IPv6 address = 2400:cb00:2049:1::adf5:3a35
cf-dns01.superuser.com internet address = 173.245.58.53

To zwróci nieautorytatywną odpowiedź z lokalnego serwera DNS, z Marburg Uni, nazywając wszystkie autorytatywne serwery dla domeny superuser.com. Następnie możesz użyć komendy, której użyliśmy wcześniej, aby zapytać któryś z 4 autorytatywnych serwerów, w następujący sposób:

C:\Documents and Settings\Anton Daneyko>nslookup superuser.com 173.245.59.4
Server: cf-173-245-59-4.cloudflare.com
Address: 173.245.59.4

Name: superuser.com
Addresses: 141.101.114.59
      190.93.246.58
      190.93.245.58
      190.93.247.58
      190.93.244.58

Jak widzisz, tym razem autorytatywny serwer SOA zwrócił adresy ip, stąd nie widzisz już komentarza “Nieautorytatywna odpowiedź”. Jest to szczególnie użyteczne, gdy utworzyłeś nową nazwę domeny lub zmieniłeś dostawców usług hostingowych, albo zostałeś przeniesiony do innego rejestratora domen, a nie masz dostępu do swojej strony internetowej, ponieważ nowe adresy IP nie rozprzestrzeniły się nawet po 24 godzinach. Następnie możesz zacząć od SOA i sprawdzić, czy Twój prawidłowy adres ip jest podany przez serwer DNS, a następnie śledzić go dalej w dół drzewa. Dobrze jest sprawdzić, czy serwery DNS Google otrzymały zmiany, a następnie sprawdzić, czy lokalny serwer DNS jest w stanie rozwiązać problem Twojej nazwy domeny, aby skorygować adres IP.

1
1
1
2017-09-24 20:07:36 +0000

Get specific record-types from specified DNS server with one command

To look up records types other than the default A and AAAA (and CNAME) records returned by nslookup, using the DNS server you specified:

nslookup -q=<record type> <host> <DNS server>

For example, to return MX records for the domain stackexchange.com using DNS server 8.8.4.4 the command would be:

nslookup -q=MX stackexchange.com 8.8.4.4
1
1
1
2016-03-30 20:02:05 +0000

Aby zmienić domyślny serwer DNS w nslookup, wystarczy wpisać nazwę serwera NAMEORIPofDNS W tym przykładzie poniżej zmieniłem domyślny serwer DNS (192.168.50.21) na nowy (4.2.2.3)

C:\Windows\system32>nslookup

Default Server: UnKnown

Adres: 192.168.50.21

server 4.2.2.3

Default Server: c.resolvers.level3.net

Adres: 4.2.2.3

>

Teraz jestem gotowy do wykonywania zapytań w stosunku do 4.2.2.3 vs 192.168.50.21

0
0
0
2018-10-05 09:42:11 +0000

Pracuję nad Openwrt 18.06.1 ARMv6 Raspberry pi i ustawienie tor dns jak i dnscrypt-proxy więc miał bardzo podobny problem. Główną przyczyną jest to, że lokalny isp przechwytuje niepewne odpowiedzi z root-servers.net, odpowiedzi, które mówią, że strona nie została znaleziona, a następnie przekierowanie do własnej strony. Chociaż nie jest to wielka wada bezpieczeństwa, nie uważam, że jest to szczególnie użyteczne.

Pierwszy test do zrobienia podczas zapytania o konkretny adres jest rzeczywiście spróbować nieprawidłowy adres, aby upewnić się, że otrzymasz właściwą odpowiedź zerową podczas korzystania z serwera, portu i parametrów hosta, Istnieje wiele przewodników i wersji i łatwo jest myśleć, że robisz test portu, gdy w rzeczywistości jest to odpowiedzi z wyników z pamięci podręcznej lub serwerów domyślnych. Po uzyskaniu odpowiedzi null, pracuj z aktywnym adresem i portem serwera. Aktywne porty mogą być pokazane na openwrt z netstat -plnt, ale należy pamiętać, że niektóre komendy routera mogą wymagać uprzedniej instalacji. Usługa tor, którą ustawiłem na porcie 9053 nie jest tutaj widoczna, ale nadal działa po dodaniu DNSPort 127.0.0.1:9053 do pliku torrc. Format nslookup na tej platformie akceptuje parametry [host] i [server] i mogę przetestować tor dns za pomocą komendy nslookup cnn.com 127.0.0.1#9053 Mogę przetestować dnscrypt za pomocą komendy nslookup cnn. com 127.0.0.1#5353 Zmiana na niepoprawne numery portów lub domen uzyskuje odpowiedź; ; połączenie zostało przerwane; nie można było dotrzeć do żadnego serwera Dig również działa na openwrt, ale musi być zainstalowany z pakietu bind-dig. dig -q 127.0.0.1 -p 9053 www.bbc.com I znowu nie działa na niepoprawnych portach. W moim przypadku problem został rozwiązany, gdy zmieniłem wpisy w /etc/config/network i ustawiłem opcję dns ‘127.0.0.1’ dla sieci, gdzie wcześniej używałem tam wpisów insecure dns.

0
0
0
2018-10-12 11:59:26 +0000

Dla okien, które mogą być poszukiwane, przedstawiamy w poniższym artykule: https://technet.microsoft.com/en-us/library/ff394369.aspx

0
0
0
2011-12-14 16:50:27 +0000

Możesz skonfigurować podstawowy DNS, który ma być używany z twoim połączeniem. Przejdź do swoich właściwości połączenia => Internet Procol (TCP/IP). (miejsce, w którym możesz ustawić statyczny adres IP) Tutaj możesz ręcznie zdefiniować, który DNS ma być używany dla każdego połączenia. Po przetestowaniu, zawsze możesz zmienić jego poprzednią wartość.