DNS 服务器和公共热点 - 其中 25% 出现故障且难以找到解决方案

DNS 服务器和公共热点 - 其中 25% 出现故障且难以找到解决方案

在大约 25% 的随机 wifi 热点上,我可以轻松连接手机,但我的 Linux 无法连接。我尝试了所有方法这个帖子

nslookup google.com 不起作用

➜  ~ nslookup google.com
;; connection timed out; no servers could be reached

我相信,就诊断而言,我们需要做的就这么多,这是一个试金石,但请让我知道。

我尝试了很多方法。这不是启动页面登录问题。我的第一个直觉通常是导航到 10.0.0.1 或相应的默认网关 IP,更改 /etc/resolv.conf 中的内容,添加名称服务器,并确保我已关闭 VPN。此热点没有启动页面,而且由于 nslookup 不起作用,我认为这不相关。如果我错了,请纠正我。

问题就在这里。如果我将手机绑定并用作热点,当我的手机通过热点连接时,它仍然会失败。nslookup google.com仍然以同样的方式失败,但如果我使用数据,它就可以工作。显然热点中有什么东西阻碍了我,或者配置错误。唯一的问题是这是我的问题还是他们的问题。如果是我的问题,我可以修复,如果不是,我无能为力。

无论如何,我都想知道人们对此的看法。他们不会公开对 Linux 抱有偏见,就像他们将我们视为威胁一样?我的意思是,我敢肯定,我们在标头中透露了我们正在使用的操作系统,他们可以公开地根据这一点对我们设置防火墙,但我不认为他们会这样做,但这似乎是可能的。那会是什么呢?我绞尽脑汁想弄清楚到底发生了什么。这真的很烦人。

我尝试摆弄我的 resolv.conf,刷新缓存,将配置添加到网络管理器等,并在每次更改时启动并重新启动网络管理器服务。

我 ping 8.8.8.8 从未失败过并且没有得到响应。

无论是谁解决了这个问题,或者甚至给我提供了有用的信息,他都会成为我的英雄。我会向同事们询问这个问题。这个网站上还有很多其他人对此有未解答的问题。我们只需要知道两件事 - 网络配置在我们的本地机器上是如何工作的,以及它在各种公共热点提供商上是如何工作的。

我想如果我能获得有关该公共热点的信息,这会有帮助吗?

答案1

已解决(但未完全理解)。试图加深理解以备将来使用。请参阅下面的“什么有效”部分,快速找到我的案例的答案。

好的,我让它工作了 - 至少在不同的热点。(我不得不离开咖啡馆,因为他们关门了,所以我去了全食超市,那里似乎有同样的问题 -nslookup google.com失败了,而且我现在记得我过去也遇到过这个问题。

我尝试了很多这里没有提到的事情。我想我可以发布我的 bash 历史记录的最后几行。它们在这里 - 它可以让您了解我尝试过的事情:

 5281  sudo vim /etc/resolv.conf
 5282  cat /etc/resolv.conf
 5283  route -n
 5284  sudo protonvpn d
 5285  sudo open /etc/NetworkManager/NetworkManager.conf
 5286  sudo nano /etc/NetworkManager/NetworkManager.conf
 5287  sudo gedit /etc/NetworkManager/NetworkManager.conf
 5288  service network-manager restart
 5289  sudo gedit /etc/NetworkManager/NetworkManager.conf
 5290  service network-manager restart
 5291  sudo vim /etc/resolv.conf
 5292  sudo networkmanager --print-config
 5293  service network-manager restart
 5294  sudo systemctl restart NetworkManager.service
 5295  sudo dpkg-reconfigure resolveconf
 5296  sudo dpkg-reconfigure resolv\conf
 5297  sudo dpkg-reconfigure resolvconf
 5298  ping 8.8.8.8
 5299  route -n 
 5300  sudo vim /etc/resolv.conf
 5301  service network-manager restart
 5302  sudo vim /etc/resolv.conf
 5303  service network-manager restart
 5304  ping 8.8.8.8
 5305  ping google.com
 5306  route -n 
 5307  nmcli 
 5308  ip route
 5309  ip route | grep default
 5310  sudo vim /etc/resolv.conf
 5311* ip route | grep default
 5312  sudo vim /etc/resolv.conf
 5313  service network-manager restart
 5314  sudo vim /etc/resolv.conf
 5315  sudo systemctl restart systemd-resolved
 5316  sudo systemd-resolve --flush-caches
 5317  ufw
 5318  ufw status
 5319  sudo ufw status
 5320  ping 8.8.8.8
 5321  ip a
 5322  sudo ufw disable
 5323  nslookup example.com
 5324  nslookup google.com
 5325  sudo vim /etc/resolv.conf
 5326  nslookup google.com
 5327  sudo vim /etc/resolv.conf
 5328  nslookup google.com
 5329  service network-manager restart
 5330  nslookup google.com
 5331  nslookup example.com 8.8.8.8
 5332  nslookup google.com 8.8.8.8
 5333  nslookup google.com
 5334  ping 8.8.8.8
 5335  nslookup google.com
 5336  sudo vim /etc/resolv.conf
 5337  nslookup google.com
 5338  hostname
 5339  uname
 5340  nslookup google.com
 5341  pingn 8.8.8.8
 5342  ping 8.8.8.8
 5343  service network-manager restart
 5344  nslookup google.com
 5345  sudo vim /etc/resolv.conf
 5346  nslookup google.com
 5347  service network-manager restart
 5348  nslookup google.com
 5349  nslookup google.com 8.8.8.8
 5350  sudo vim /etc/resolv.conf
 5351  nslookup google.com
 5352  service network-manager restart
 5353  resolvectl status
 5354  nslookup google.com
 5355  sudo systemctl enable systemd-resolved.service
 5356  nslookup google.com
 5357  sudo systemctl start systemd-resolved.service
 5358  nslookup google.com
 5359  sudo vim /etc/dhcp/dhclient.conf
 5360  nslookup google.com
 5361  resolvectl status
 5362  service network-manager restart
 5363  nslookup google.com
 5364  sudo vim /etc/resolv.conf
 5365  lsb_release -a
 5366  sudo vim /etc/netplan/01-network-manager-all.yaml
 5367  sudo systemd-resolve --set-dns=8.8.8.8
 5368  sudo systemd-resolve --set-dns=8.8.8.8 --interface=wlo1
 5369  nslookup google.com
 5370  service network-manager restart
 5371  nslookup google.com
 5372  sudo vim /etc/resolv.conf
 5373  resolvectl status
 5374  pwd
 5375  resolvectl status > resolvectl_status_result
 5376  ls
 5377  sudo systemctl status systemd-resolved.service
 5378  sudo systemctl status systemd-resolved.service > systemctl.status.systemd-resolved.service.result
 5379  sudo systemctl status systemd-resolved.service
 5380  sudo systemctl -w net.ipv6.conf.all.disable_ipv6=1
 5381  sudo systemctl  net.ipv6.conf.all.disable_ipv6=1
 5382  cat /etc/systemd/resolved.conf
 5383  sudo vim /etc/systemd/resolved.conf
 5384  nslookup google.com
 5385  service network-manager restart
 5386  nslookup google.com
 5387  sudo systemctl restart systemd-resolved.service
 5388  nslookup google.com
 5389  sudo vim /etc/sysctl.conf
 5390  service network-manager restart
 5391  nslookup google.com
 5392  route -n 
 5393  history | grep status
 5394  resolvectl status
 5395  systemctl status systemd-resolved.status
 5396  systemctl status systemd-resolved.service
 5397  nmcli general status
 5398  nmcli connection show wl01 
 5399  route -n 
 5400  resolvectl status
 5401  nmcli connection show wl01 
 5402  sudo systemd-resolve --flush-caches
 5403  sudo systemd-resolve --set-dns=8-8-8-8
 5404  sudo systemd-resolve --set-dns=8.8.8.8
 5405  sudo systemd-resolve --set-dns=8.8.8.8 --interface=wl01
 5406  ip a
 5407  sudo systemd-resolve --set-dns=8.8.8.8 --interface=wlo1
 5408  ip a
 5409  nslookup google.com
 5410  history | grep wl01
 5411  nmcli connection show wlo1
 5412  nmcli connection show wl01
 5413  nmcli connection show wlo1
 5414  nmcli connection show
 5415  sudo systemctl status NetworkManager
 5416  nmcli dev show wlo1
 5417  sudo vim /etc/resolv.conf
 5418  nmcli dev show wlo1
 5419  service network-manager restart
 5420  nmcli dev show wlo1
 5421  sudo systemctl status NetworkManager
 5422  sudo systemctl restart NetworkManager
 5423  sudo systemctl status NetworkManager
 5424  sudo dhclient -v -r wlo1
 5425  cat /etc/NetworkManager/system-connections/WholeFoodsMarket-fb046023-ad76-4b55-8ee7-be56cc3d9f37.nmconnection
 5426  sudo cat /etc/NetworkManager/system-connections/WholeFoodsMarket-fb046023-ad76-4b55-8ee7-be56cc3d9f37.nmconnection
 5427  sudo vim /etc/NetworkManager/system-connections/WholeFoodsMarket-fb046023-ad76-4b55-8ee7-be56cc3d9f37.nmconnection
 5428  nmcli dev show wlo1
 5429  service network-manager restart
 5430  nmcli dev show wlo1
 5431  sudo vim /etc/resolv.conf
 5432  nslookup google.com
 5433  nmcli dev show wlo1
 5434  lsb_release -a

感谢手机上的 Chatgpt 提供了许多这样的想法,但最终的解决方案并非来自他们。

什么方法有效:最终修复了这个问题并立即修复了这个问题的是运行nmcli dev show wlo1(注意是 o1 而不是 01)。这给了我默认的全食超市 DNS(或者我直觉认为是这样的),这208.67.222.222与我设置和通常使用的一样好 - 即8.8.8.8。我通过转到将全食超市 DNS 添加到 resolv.conf,sudo vim /etc/resolv.conf最后它喜欢这样。一分钟nslookup google.com就起作用了,我确信它会在浏览器上运行,而且它确实运行了。

那么热点是否控制和监管所使用的 DNS 服务器,并丢弃任何不符合要求的数据包?似乎是这样的,或者类似这样。我在不同的地方已经努力解决这个问题很长时间了。明天早上我要去第三个出现这个问题的地方,我可以测试一下。

网络有很多复杂的交互部分,包括网关设置等。我不得不抓取他们的 DNS。我想知道为什么这在 Windows 上会自动起作用。我也在用 Ubuntu 20.04.4,其他人在通过 DNS 连接时遇到了麻烦。

因此——在过去一年寻求解决这个问题的过程中,我知道我弄乱了一些设置,并且可能有多个服务或程序管理我的接口,包括 NetworkManager。我不确定这一切是如何运作的,是否存在冲突,但一切似乎都很好。

过去,当我遇到问题时,通常我只需要修改 resolv.conf,但这种情况在某个时候发生了变化。有一件事我知道 - 这似乎仍然是解决方案,但您必须手动添加看起来像网关的首选 DNS,这至少在我的配置下似乎也无法自动解析,因为我尝试过将所有名称服务器都注释掉。似乎必须在那里明确说明 Whole Food 的名称服务器。我不确定它是如何到达这一点的,但看起来就是这样。

虽然理论上我应该能够根据系统配置自动使用它,但我认为它必须专门使用这一事实超出了我的控制范围,并且是一种网关设置。我不知道这是为什么。

接下来的几周,当我在新的咖啡馆时,我会寻求更多的信息来确认和完善我的理解,因为了解发生了什么是很好的,而且仍然存在很多模糊和不明确的地方,但也许如果一个有类似挣扎的人在某个时候能找到这个并在没有其他方法的情况下让它发挥作用,那就太好了。

编辑:我发现他们正在使用 OpenDNS。如果您在 ubuntu 上连接公共 wifi 时遇到问题,则 openDNS 可能是罪魁祸首。

这些是 openDNS 的常用地址 208.67.222.222 and 208.67.220.220,与我的 3 个公共热点 2 使用的地址相同。我必须检查另外两个我在连接时遇到问题的热点,然后我才能了解更多信息或更确定地知道。

另外,了解或确认问题所在还有一种快速方法 nslookup google.com,如果有效,nslookup google.com 8.8.8.8则如果失败,则很可能是罪魁祸首,这似乎是一种快速有效的方法。OpenDNS 似乎至少在我的一个案例中是阻止程序,我只需要知道如何使用它。

相关内容