我注意到了这种奇怪的现象,我有一个只能使用静态 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 addr
、ip 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。由于我无权发表评论,所以我更新了我的答案。