DNS 解析在 DHCP 中不起作用

DNS 解析在 DHCP 中不起作用

我注意到了这种奇怪的现象,我有一个只能使用静态 IP 地址的 Wi-Fi 网络。如果我设置 DHCP,DNS 解析会失败,例如,我可以 ping 8.8.8.8,但无法上网或 ping www.google.com。这种情况只发生在我的电脑上,而且只发生在 Ubuntu 分区上(使用 Win10 没有问题)。我使用其他 Wi-Fi 网络时没有遇到任何问题。我的电脑运行的是 16.04,所有东西都已更新。有什么提示吗?

更新

这些是 Ubuntu 命令的输出(不起作用)

$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp7s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether fc:3f:db:a2:6d:46 brd ff:ff:ff:ff:ff:ff
3: wlp19s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether c8:ff:28:93:26:32 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.100/24 brd 192.168.0.255 scope global dynamic wlp19s0
       valid_lft 7193sec preferred_lft 7193sec
    inet6 fe80::e9a0:6a46:1112:815/64 scope link 
       valid_lft forever preferred_lft forever

$ ip route
default via 192.168.0.1 dev wlp19s0  proto static  metric 600 
169.254.0.0/16 dev wlp19s0  scope link  metric 1000 
192.168.0.0/24 dev wlp19s0  proto kernel  scope link  src 192.168.0.100  metric 600 


$ cat /etc/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
nameserver 127.0.1.1

这是ipconfig /all在 Win10 中(工作)

Scheda LAN wireless Wi-Fi:

   Suffisso DNS specifico per connessione:
   Descrizione . . . . . . . . . . . . . : Realtek RTL8188EE 802.11 bgn Wi-Fi Adapter
   Indirizzo fisico. . . . . . . . . . . : C8-FF-28-93-26-32
   DHCP abilitato. . . . . . . . . . . . : Sì
   Configurazione automatica abilitata   : Sì
   Indirizzo IPv6 locale rispetto al collegamento . : fe80::7d95:51a8:c887:792e%17(Preferenziale)
   Indirizzo IPv4. . . . . . . . . . . . : 192.168.0.100(Preferenziale)
   Subnet mask . . . . . . . . . . . . . : 255.255.255.0
   Lease ottenuto. . . . . . . . . . . . : sabato 1 aprile 2017 10:12:04
   Scadenza lease . . . . . . . . . . .  : sabato 1 aprile 2017 12:12:18
   Gateway predefinito . . . . . . . . . : 192.168.0.1
   Server DHCP . . . . . . . . . . . . . : 192.168.0.1
   IAID DHCPv6 . . . . . . . . . . . : 281607976
   DUID Client DHCPv6. . . . . . . . : 00-01-00-01-1D-FD-6A-93-FC-3F-DB-A2-6D-46
   Server DNS . . . . . . . . . . . . .  : 192.168.0.1
   NetBIOS su TCP/IP . . . . . . . . . . : Attivato

我也尝试过将路由器恢复出厂设置,但没有任何效果。但我可能发现了一些有趣的东西,重置后,我尝试通过 LAN 电缆连接到路由器以更改设置,但无法使用 tplinkmodem.net 连接,只能使用 192.168.1.1。我认为我的本地 DNS 解析有问题,但我不是专家。所以我在等待建议!

答案1

这个解决方案对我有用:https://askubuntu.com/a/432374/373541

但是我不明白为什么。DHCP 在我的 Ubuntu 上一直有效。如果有人能解释我按照解决方案做了什么,那就太好了。谢谢

答案2

这在很大程度上取决于您的路由器。在运行 Win10(可以正常工作)时,使用 检查您的计算机通过 DHCP 接收的网络参数ipconfig /all。在运行设置为 DHCP 的 Ubuntu(不起作用)时,对ip addrip route和执行相同操作cat /etc/resolv.conf。将两者与您的路由器配置进行比较,看看差异可能来自何处。

正如您的 /etc/resolv.conf 所示nameserver 127.0.1.1,它表明您正在 Ubuntu 上运行 dnsmasq(默认),因此您还必须检查 dnsmasq 配置。这并不容易,因为它是由网络管理器通过 dbus 动态管理的,因此没有您可以读取的配置文件,遗憾的是似乎没有办法查询 dnsmasq 的当前配置。首先使用以下命令请求 dnsmasq 统计报告

sudo killall -URS1 dnsmasq

并使用以下命令扫描系统日志以查找来自 dnsmasq 的消息

grep dnsmasq /var/log/syslog

编辑:抱歉,我忘记了 dnsmasq。由于我无权发表评论,所以我更新了我的答案。

相关内容