列出所有 DNS 服务器,包括那些由 VPN 推送的服务器

Joh*_*uiz 5 dns networkmanager vpn openvpn resolvconf

当我运行 nslookup、dig、host、ping 等命令时,我想知道哪些 DNS 服务器有效。

一般的答案是cat /etc/resolv.conf,或者查看 NetworkManager,但这只会显示我通常使用的服务器列表。当我连接到 VPN 时,它不会向我显示任何推送给我的 DNS 服务器。

有没有办法获取 nslookup、dig、host、ping 等命令将尝试使用的 DNS 服务器的有序列表?

slm*_*slm 3

如果您正在使用NetworkManager,则可以使用其中的命令行工具nmcli来获取此列表:

$ nmcli dev list iface wlan0 | grep IP4
IP4-SETTINGS.ADDRESS:           192.168.1.110
IP4-SETTINGS.PREFIX:            24 (255.255.255.0)
IP4-SETTINGS.GATEWAY:           192.168.1.1
IP4-DNS1.DNS:                   192.168.1.8
IP4-DNS2.DNS:                   192.168.1.5
IP4-DNS3.DNS:                   24.92.226.11
Run Code Online (Sandbox Code Playgroud)

您必须将该位更改wlan0为您的网络接口。您可以使用以下命令使其更加动态iwgetid

$ nmcli dev list iface $(iwgetid | awk '{print $1}') | grep IP4
Run Code Online (Sandbox Code Playgroud)

您还可以使用以下方法nm-tool获取完整报告:

$ nm-tool 
...
  IPv4 Settings:
    Address:         192.168.1.110
    Prefix:          24 (255.255.255.0)
    Gateway:         192.168.1.1

    DNS:             192.168.1.8
    DNS:             192.168.1.5
    DNS:             24.92.226.11
Run Code Online (Sandbox Code Playgroud)