无法访问星巴克的互联网 - 以前使用 Ubuntu 16.04

无法访问星巴克的互联网 - 以前使用 Ubuntu 16.04

我已经有近六个月无法使用星巴克的 WiFi 上网了。

Ubuntu 可以识别 Wifi 并建立连接。但是当我单击访问/接受时...它会进行一些重定向,然后什么也不做。它看起来就像挂了一样。

我怀疑这是一个 dnsmasq 问题,但我不确定。

我以前用的是 Ubuntu 16.04,现在是 17.10。当我使用旧版本时,互联网运行正常。现在不行了。

我试过了tcpdump。我从中得到了超过 70 万行日志。而且我看不懂其中的大部分内容。下面是示例:

18:04:26.564268 IP 10.0.9.137.49266 > 192.190.0.106.http: Flags [.], ack 20161, win 544, options [nop,nop,TS val 1641878439 ecr 315460744], length 0
18:04:26.564273 IP 192.190.0.106.http > 10.0.9.137.49266: Flags [.], seq 20161:21601, ack 1282, win 62, options [nop,nop,TS val 315460744 ecr 1641878430], length 1440: HTTP
18:04:26.564277 IP 10.0.9.137.49266 > 192.190.0.106.http: Flags [.], ack 21601, win 567, options [nop,nop,TS val 1641878439 ecr 315460744], length 0
18:04:26.564438 IP localhost.37212 > localhost.domain: 29983+ [1au] AAAA? starbucks-east.datavalet.io. (56)
18:04:26.564473 IP localhost.35985 > localhost.domain: 10794+ [1au] AAAA? starbucks-east.datavalet.io. (56)
18:04:26.564496 IP localhost.domain > localhost.46709: 30654 0/0/1 (56)
18:04:26.564514 IP localhost.domain > localhost.44492: 24516 0/0/1 (56)
18:04:26.564519 IP localhost > localhost: ICMP localhost udp port 44492 unreachable, length 92
18:04:26.564664 IP localhost.35882 > localhost.domain: 64112+ [1au] AAAA? starbucks-east.datavalet.io. (56)
18:04:26.564690 IP localhost.32892 > localhost.domain: 14648+ [1au] AAAA? starbucks-east.datavalet.io. (56)
18:04:26.564718 IP localhost.domain > localhost.48486: 47788 0/0/1 (56)
18:04:26.564737 IP localhost.domain > localhost.40167: 14148 0/0/1 (56)
18:04:26.564741 IP localhost > localhost: ICMP localhost udp port 40167 unreachable, length 92
18:04:26.564861 IP 192.190.0.106.http > 10.0.9.137.49266: Flags [.], seq 21601:27361, ack 1282, win 62, options [nop,nop,TS val 315460744 ecr 1641878430], length 5760: HTTP
18:04:26.564868 IP 10.0.9.137.49266 > 192.190.0.106.http: Flags [.], ack 27361, win 657, options [nop,nop,TS val 1641878440 ecr 315460744], length 0
18:04:26.564940 IP localhost.56634 > localhost.domain: 33651+ [1au] AAAA? starbucks-east.datavalet.io. (56)
18:04:26.564971 IP localhost.26306 > localhost.domain: 12045+ [1au] AAAA? starbucks-east.datavalet.io. (56)

ICMP 似乎被调用了很多次。某些程序正在不同端口上执行多次 ping。

有关我的系统的详细信息:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 17.10
Release:    17.10
Codename:   artful

这可能相关:Linux 上连接公共 WiFi 的问题 - Medium

另一个细节:有时我可以上网。但这是随机的。

答案1

这种情况之所以会发生,是因为像星巴克这样的地方会使用强制门户,除非你通过网络验证,否则不允许连接(除了一些罕见的例外情况)。对于星巴克来说,这意味着同意服务条款。

在您的网络浏览器中,您通常可以导航到任何非 HTTPS 域(例如,http://captive.apple.com/http://www.msftncsi.com/ncsi.txt,它们分别是 Apple 和 Windows 使用的“强制门户”检测系统)。

在某些情况下,强制门户将阻止发出 DNS 请求。在这种情况下,您可以直接连接到公网上不受 HTTPS 保护的任何 IP 地址。我倾向于使用91.189.91.23,这是 Canonical 的 APT 镜像的 IP 地址。

虽然您可以更改您的 DNS,但在某些情况下这是不可取的并且会引发隐私问题 - 例如,星巴克会通过 DNS 跟踪您访问的网站。

答案2

我的朋友能够解决这个问题。

在星巴克 WIFI 设置中,转到 IPv4 配置选项卡。

关闭 DNS 自动设置。

然后在输入中添加这些名称服务器:10.0.9.1, 8.8.8.8, 8.8.4.4

10.0.9.1其他星巴克可能有所不同。此 IP 是路由器的 IP。

更新

您可能需要修改:/etc/resolv.conf

和:

nameserver 8.8.8.8
nameserver 10.0.9.1

再次,这10.0.9.1是 Wifi 路由器的 IP。

答案3

我按照 jnbdz 的建议做了,但它不适用于 Ubuntu 20.04。不过,我可以通过以下方式找到强制门户的 URL:

打开终端并输入:

sudo apt install net-tools

出现错误消息 E:无法获取 https:/ /sbux-portal.globalreachtech.com/?login_url=https://n438.network-auth.com/splash/login? 等。

我复制了这个 URL 并将其粘贴到浏览器中

之后,强制门户出现了,我能够在星巴克访问互联网了。

答案4

我刚刚发现了另一种适合我的方法:

在设置中启用连接检查。 在此处输入图片描述

这将打开星巴克的强制门户。(在 SO 上读到过这篇文章,但现在找不到该页面了)

相关内容