在大约 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 似乎至少在我的一个案例中是阻止程序,我只需要知道如何使用它。