修复 resolv.conf 并将 comcast 从我的名称服务器列表中删除?

修复 resolv.conf 并将 comcast 从我的名称服务器列表中删除?

我不知道该如何修复这个问题,甚至不知道它是怎么发生的。90% 的时间我都是通过家用路由器连接到互联网,而康卡斯特根本没有列在它的配置中。它有自己的 DNS,一切正常,直到更新到 Ubuntu 18,现在当我执行 nslookup 时,我的本地机器都无法解析(全部未找到)。

nslookup data1
Server:     127.0.0.53
Address:    127.0.0.53#53

** server can't find data1: SERVFAIL

nslookup data1 192.168.1.1
Server:     192.168.1.1
Address:    192.168.1.1#53

Name:   data1
Address: 192.168.1.113

以下是 ifconfig 的结果,显示我的最后一个接口是我的 wifi,并且已连接到正确的网络:

enp2s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 28:f1:0e:4a:a4:b2  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 220635  bytes 104082409 (104.0 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 220635  bytes 104082409 (104.0 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.101  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::686f:cec4:768c:d810  prefixlen 64  scopeid 0x20<link>
        ether b0:c0:90:50:8e:20  txqueuelen 1000  (Ethernet)
        RX packets 9169680  bytes 6584220987 (6.5 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 10685113  bytes 13298441288 (13.2 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

这是我的 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
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53
search wp.comcast.net

这是 systemd-resolve --status 的输出,显示了 GLOBAL 部分中的大量垃圾,并显示了路由器上的 DNS 为 192.168.1.1,但根据上面显示的查找,它似乎被忽略了。

Global
          DNS Domain: wp.comcast.net
          DNSSEC NTA: 10.in-addr.arpa
                      16.172.in-addr.arpa
                      168.192.in-addr.arpa
                      17.172.in-addr.arpa
                      18.172.in-addr.arpa
                      19.172.in-addr.arpa
                      20.172.in-addr.arpa
                      21.172.in-addr.arpa
                      22.172.in-addr.arpa
                      23.172.in-addr.arpa
                      24.172.in-addr.arpa
                      25.172.in-addr.arpa
                      26.172.in-addr.arpa
                      27.172.in-addr.arpa
                      28.172.in-addr.arpa
                      29.172.in-addr.arpa
                      30.172.in-addr.arpa
                      31.172.in-addr.arpa
                      corp
                      d.f.ip6.arpa
                      home
                      internal
                      intranet
                      lan
                      local
                      private
                      test

Link 3 (wlp3s0)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 192.168.1.1

Link 2 (enp2s0)
      Current Scopes: none
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no

有谁知道如何让我的 nslookups 开始使用此处指定的 DNS?康卡斯特的东西到底是怎么进来的?我该如何把它弄出来?

答案1

我对此有一些经验,但我绝不是专家......

您可能遇到了一些问题...

  1. 您的路由器可能未设置为使用您想要的 DNS 服务器
  2. 你的 18.04 计算机上的 dnsmasq 和 systemd-resolved 可能存在问题
  3. 您可能需要编辑 /etc/hosts 文件
  4. 您手动编辑了 /etc/resolv.conf (不要这样做)

1.调整路由器的设置...

登录路由器的管理页面,检查 DNS 服务器设置。将其设置为所需的 DNS 服务器,然后保存设置。

2. 调整您的 dnsmasq 和 systemd-resolvd 设置...

dnsmasq 和 systemd-resolved 往往会互相干扰。虽然您可以同时运行两者,但这可能会引起问题。dnsmasq 是上一个系统遗留下来的,在 18.04 升级后仍会保留。

在终端...

ps auxc | grep -i dnsmasq # to see if dnsmasq is running

ps auxc | grep -i resolv # this should be running in 18.04

修复路由器设置后,卸载 dnsmasq,重新启动,然后查看问题是否已解决。如果您发现需要 dnsmasq,请重新安装它,并且您可能需要调整 systemd-resolved 设置。

cd /etc/systemd

sudo pico resolved.conf

改变:

#DNSStubListener=yes

到:

DNSStubListener=no

重新启动并查看问题是否已解决。

3. 编辑 /etc/hosts 以包含您的 .local 名称

这是我的 /etc/hosts 文件的一部分。显然,您需要更改配置中的系统和节点名称。这只是一个示例。

127.0.0.1   Satellite-E55.local Satellite-E55   localhost
127.0.1.1   Satellite-E55
#
# static IP's (systemic network hardware)
#
192.168.0.1 caspurr.local       caspurr         # Netgear router
192.168.0.2 wdacbridge#1.local  wdacbridge#1    # WD AC bridge #1
192.168.0.3 ex6100.local        ex6100          # Netgear EX6100
192.168.0.4 repeater.local      repeater        # Netgear WN2500RP
192.168.0.5 av-bridge.local     av-bridge       # Cisco E2000
#
#192.168.0.6    meow-nas.local      meow-nas    # NAS
#192.168.0.7    zonet-nas.local     zonet-nas   # NAS
#192.168.0.8    woof-nas.local      woof-nas    # NAS
#
# static DHCP's
#
192.168.0.100   ubuntu-eth0.local   ubuntu-eth0 # Toshiba laptop
192.168.0.101   obitalk2.local      obitalk2    # Obitalk VOIP
192.168.0.102   vonage.local        vonage      # Vonage VOIP
192.168.0.103   laserjet.local      laserjet    # HP P1102W printer
#
192.168.0.201   hdhomerun.local     hdhomerun   # Silicon Dust DUAL
192.168.0.202   hdhomerun2.local    hdhomerun2  # Silicon Dust PRIME
192.168.0.203   hdhomerun3.local    hdhomerun3  # Silicon Dust CONNECT
#
# DHCP
#
192.168.0.253   slingbox.local      slingbox    # Slingbox
#
# cable modem
#
192.168.100.1   cablemodem.local    cablemodem  # Mediacom cable modem
#
# DNS
#
208.67.222.222  resolver1.opendns.com   dns1
208.67.220.220  resolver2.opendns.com   dns2

答案2

如果您的 WiFi 连接的 IP 地址是由路由器通过 DHCP 协议分配的,则很可能路由器已配置为宣布从您的 ISP 了解到的 DNS 服务器(如果连接使用 PPPoE,则很常见)。

resolvconfIIRC 如果安装了该包,这将自动完成。

作为为什么您没有看到列出的实际 DNS 服务器127.0.0.53,但这是因为 Ubuntu 默认使用 DNS 代理解析器。

作为一个快速解决方法,你可以尝试卸载 resolvconf/etc/resolv.conf并使用您喜欢的 DNS 服务器创建一个新 文件。

例如

$> cat /etc/resolv.conf 

nameserver 8.8.8.8
nameserver 8.8.4.4

$> 

免责声明

我总是resolvconf在我的机器上卸载它并且一切正常,但我不知道如果卸载它,你的系统上的什么(或哪些包)会被破坏。

相关内容