我的 Debian Stretch 计算机在连接互联网时遇到了严重的问题。最奇怪的是,每次我启动计算机时都可以连接到网站(google 或 github),但最终(比如 30 秒后)我在 Firefox 上收到服务器未找到错误。
我认为 DNS 出现故障的原因如下:
目前我可以得到ping 8.8.8.8
或的ping google.com
结果。作品。 Wget 相同的地址重定向到谷歌并且无法解析主机地址。Name or service not know
Temporary Failure in Name Resolution
ping 172.217.0.0
我相信这个问题是由 Docker 引起的,因为 iptables 被设置为删除转发链。不过我在这里可能是错的。我的互联网工作正常,直到我重新启动计算机,今天早上它无法连接。
不管我尝试过重置 iptables但是每次我重新启动时,它们都会再次被编辑。所以我删除了所有 Docker 镜像、容器以及 docker 和 containerd。但是,即使我卸载了它们,问题仍然存在。所以我认为它安装的某些 docker 脚本或某些东西还留在那里。
我尝试过的:
- 目前我的 iptables 设置为接受所有内容。
- 我添加了
8.8.8.8
和8.8.4.4
/etc/resolv.conf
/etc/nsswitch.conf
有hosts: files dns
- 我能够接收 IP 地址
- 问题不在于路由器,因为我的其他设备可以正常工作。
- 硬件很好,因为我的窗户隔断工作得很好。
我尝试过查看 systemctl 但该实用程序对我来说是新的,所以我在这里无法弄清楚。
/etc/network/interfaces
有source /etc/network/interfaces.d/*
,但是该目录是空的。
然后它说:
auto lo
iface lo inet loopback
我不知道还能尝试什么,非常感谢您的帮助
答案1
为您尝试此默认设置nsswitch.conf
:
hosts: files mdns4_minimal [NOTFOUND=return] dns
8.8.8.8
和是什么8.8.4.4
?它们都是您的 DNS 服务器吗?您只需将您的 DNS 服务器设置为resolv.conf
.通常,它是您的路由器,而不是提供商的 DNS 服务器。
有时此类问题可能是由于 IPv6 造成的。因此,您可以尝试在路由器上禁用 IPv6。
尝试ip address
检查接口上的 IPv4/IPv6。
ip route
将向您显示实际路线。
我的docker处于伸展状态,没有这样的问题。
UPD1
如果您只想使用 Google DNS 服务器,请注释掉/etc/resolv.conf
. DNS 请求将发送到第一个找到的名称服务器。
ip
- 是命令,address
是route
选项
ip address
- 列出已配置 IPv4(inet) 和 IPv6(inet6) 地址的网络接口。您可以检查是否有重复或错误的网络掩码。
ip route
- “默认”显示您的主要流量;
使用以下命令检查您是否有到 Google DNS 的连接:
telnet 8.8.8.8 53
- 必须连接到服务器(“连接到 8.8.8.8”)
跑步host -v google.com
查找“从 [主机] 接收到...字节”行以了解哪个主机处理您的 DNS 请求。
如果您启用了 Wi-Fi,请将其关闭。某些 Wi-Fi 适配器在stretch
使用 4.9 内核时存在问题。