Làm cách nào tôi có thể hướng truy vấn đến máy chủ DNS cụ thể?


155

Tôi muốn đưa ra một truy vấn đến một máy chủ DNS cụ thể, có địa chỉ IP mà tôi biết. Nó không thực sự quan trọng nếu nó trên Windows hoặc * nix.

Trong Windows tôi có thể làm một cái gì đó như:

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

Nhưng điều này sử dụng cài đặt DNS của máy cục bộ. Thay vào đó, tôi muốn truy vấn một máy chủ DNS cụ thể để kiểm tra xem nó có trả lời đúng các truy vấn của tôi hay không.

Vì vậy, nó phải là một cái gì đó như:

nslookup --dns-ip=8.8.8.8 superuser.com

Câu trả lời:


201

Đối với các bản ghi A và CNAME cơ bản, bạn chỉ cần làm

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'

hoặc nếu bạn chỉ gõ nslookup mà không có bất kỳ tham số nào, bạn có thể thực hiện nhiều tùy chọn hơn ...

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

7
Thật không may là hướng dẫn sử dụng thuật ngữ 'máy chủ' và 'máy chủ' thay vì một cái gì đó rõ ràng hơn như 'tên miền' và 'máy chủ dns'.
ClearCrescendo

1
Nó không hoàn toàn không chính xác. "Tên miền" chỉ là một phần của tên máy chủ. Bạn thực sự có thể thực hiện tra cứu trên phần "máy chủ" của FQDN, bỏ qua hậu tố tên miền. NSLOOKUPsẽ tự động cố gắng sử dụng bất kỳ hậu tố tìm kiếm nào được định cấu hình trong hệ thống của bạn để có được kết quả khớp.
TheCompWiz

1
Bạn không phải truy cập đầy đủ NSLOOKUPđể sử dụng các tùy chọn - cú pháp chỉ là một chút lạ. Ví dụ :nslookup -all -debug -type=ANY -class=ANY servertolookup.com someDNSserver.com
Coruscate5

11

Chỉ cần đào sâu vào các tùy chọn của nslookup, bạn có thể hiển thị nếu bạn gọi nslookupvà sau đó nhập helpvào bên trong chế độ tương tác nslookup đã cho tôi câu trả lời đúng:

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

16
Tôi mỉm cười khi thấy câu trả lời này bắt đầu bằng "Chỉ cần đào ...".
Hossein

7

Có, C:\Documents and Settings\Anton Daneyko>nslookup superuser.com sẽ tra cứu máy chủ DNS của riêng bạn để tìm địa chỉ IP cho superuser.com. Nếu bạn thêm địa chỉ IP hoặc tên của một máy chủ DNS khác vào dòng lệnh, nó sẽ tra cứu máy chủ DNS đã cung cấp cho địa chỉ IP của superuser.com. Ví dụ:

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

Nhân tiện, 8.8.4.4 là địa chỉ IP của máy chủ DNS của Google.

Nhưng, cả hai điều trên đều đưa ra "câu trả lời không có thẩm quyền", vì cả hai đều không phải là SOA, vốn là thẩm quyền cho tên miền superuser.com. Cả hai đều có một bản sao được lưu trong bộ nhớ cache đã được truyền bá từ SOA. Nếu bạn muốn hỏi máy chủ có thẩm quyền, trước tiên hãy tìm hiểu tên địa chỉ IP của máy chủ có thẩm quyền, sử dụng lệnh:

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

Điều này sẽ trả về một câu trả lời không có thẩm quyền từ máy chủ DNS cục bộ của bạn, từ Marburg Uni, đặt tên cho tất cả các máy chủ có thẩm quyền cho superuser.com. Sau đó, bạn có thể sử dụng lệnh chúng tôi đã sử dụng trước đó để hỏi bất kỳ máy chủ nào trong số 4 máy chủ có thẩm quyền, như sau:

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

Như bạn thấy, lần này máy chủ SOA có thẩm quyền đã trả về các địa chỉ IP, do đó bạn không thấy bình luận "Câu trả lời không có thẩm quyền" nữa. Điều này đặc biệt hữu ích, khi bạn đã tạo một tên miền mới hoặc thay đổi nhà cung cấp dịch vụ lưu trữ hoặc chuyển sang một công ty đăng ký tên miền khác và bạn không thể truy cập trang web của mình, vì các địa chỉ IP mới vẫn chưa được truyền bá sau 24 giờ. Sau đó, bạn có thể bắt đầu với SOA và xác minh rằng địa chỉ IP chính xác của bạn được cung cấp bởi máy chủ DNS và sau đó theo dõi sâu hơn về cây. Tốt để kiểm tra xem máy chủ DNS của Google có nhận được các thay đổi hay không, và cuối cùng nếu máy chủ DNS cục bộ của bạn có thể phân giải tên miền của bạn thành địa chỉ IP chính xác.


1

Để thay đổi máy chủ DNS mặc định của bạn trong nslookup, bạn chỉ cần thay đổi máy chủ bằng cách nhập máy chủ NAMEorIPofDNS Trong ví dụ này bên dưới, tôi đã thay đổi máy chủ DNS mặc định của mình (192.168.50.21) sang máy chủ mới (4.2.2.3)

C: \ Windows \ system32> nslookup

Máy chủ mặc định: UnKnown

Địa chỉ: 192.168.50,21

máy chủ 4.2.2.3

Máy chủ mặc định: c.resolvers.level3.net

Địa chỉ: 4.2.2.3

>

Bây giờ tôi đã sẵn sàng để thực hiện các truy vấn đối với 4.2.2.3 so với 192.168.50.21


Điều này trùng lặp một câu trả lời khác và không thêm nội dung mới. Vui lòng không đăng câu trả lời trừ khi bạn thực sự có điều gì đó mới để đóng góp.
DavidPostill

Không có nội dung mới có thể, nhưng giá trị. Tôi thích câu trả lời này hơn các lực lượng dài :)
Pawel Cioch

0

bạn có thể định cấu hình DNS chính được sử dụng với kết nối của mình.
Chuyển đến thuộc tính kết nối của bạn => Internet Procol (TCP / IP). (nơi bạn có thể đặt IP tĩnh)
Tại đây bạn có thể xác định thủ công DNS nào bạn muốn sử dụng cho mỗi kết nối.
Sau khi thử nghiệm, bạn luôn có thể thay đổi nó trở lại giá trị trước đó.


3
Tôi không nghĩ rằng đó là một cách "trực tiếp" để truy vấn máy chủ DNS.
Lepe

0

Nhận các loại bản ghi cụ thể từ máy chủ DNS được chỉ định bằng một lệnh

Để tra cứu các loại bản ghi khác với bản ghi A và AAAA (và CNAME) mặc định được trả về bởi nslookup, sử dụng máy chủ DNS bạn chỉ định:

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

Ví dụ: để trả về các bản ghi MX cho miền stackexchange.combằng máy chủ DNS 8.8.4.4, lệnh sẽ là:

nslookup -q=MX stackexchange.com 8.8.4.4

0

Tôi đang làm việc trên Openwrt 18.06.1 ARMv6 Raspberry pi và thiết lập tor dns cũng như dnscrypt-proxy nên có một vấn đề rất giống nhau. Nguyên nhân sâu xa là do isp cục bộ đang chặn các phản hồi không an toàn từ root-servers.net, các phản hồi nói rằng trang web không được tìm thấy, sau đó chuyển hướng đến trang web của riêng họ. Mặc dù nó không phải là một lỗ hổng bảo mật tuyệt vời, tôi cũng không thấy nó đặc biệt hữu ích.

Thử nghiệm đầu tiên cần thực hiện khi truy vấn một địa chỉ cụ thể thực sự là thử một địa chỉ không hợp lệ, để đảm bảo rằng bạn nhận được phản hồi null phù hợp khi sử dụng các tham số máy chủ, cổng và máy chủ, Có nhiều hướng dẫn và phiên bản và rất dễ suy nghĩ. bạn đang thực hiện kiểm tra cổng khi thực tế nó đang trả lời từ các kết quả được lưu trong bộ nhớ cache hoặc các máy chủ mặc định. Sau khi nhận được phản hồi null, sau đó làm việc với một địa chỉ máy chủ và cổng hoạt động. Các cổng hoạt động có thể được hiển thị trên openwrt với netstat -plnt nhưng lưu ý rằng một số lệnh của bộ định tuyến có thể cần phải được cài đặt trước. Dịch vụ tor tôi đặt trên cổng 9053 không hiển thị ở đây nhưng vẫn hoạt động sau khi thêm DNSPort 127.0.0.1:9053 vào tệp torrc. Định dạng nslookup trên nền tảng này chấp nhận các tham số [host] và [server] và tôi có thể kiểm tra tor dns với nslookup cnn.com 127.0.0.1 # 9053 Tôi có thể kiểm tra dnscrypt bằng lệnh nslookup cnn. com 127.0.0.1 # 5353 Thay đổi thành số cổng hoặc tên miền không hợp lệ sẽ nhận được phản hồi; ; kết nối quá hạn; không có máy chủ nào có thể truy cập Dig cũng hoạt động trên openwrt nhưng phải được cài đặt từ gói bind-dig. dig -q 127.0.0.1 -p 9053 www.bbc.com Và một lần nữa thất bại đối với các cổng không hợp lệ. Trong trường hợp của tôi, sự cố đã được giải quyết khi tôi thay đổi các mục trong / etc / config / network và đặt tùy chọn dns '127.0.0.1' cho các mạng mà trước đây tôi đã sử dụng các mục dns không an toàn ở đó.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.