作者dobedobedo (DoBe)
看板SYSOP
标题[问题] Linux 下用浏览器无法连上 term.ptt.cc
时间Wed Oct 30 21:23:39 2024
☆ 一般指令、发推文等操作问题,请到 PttNewhand 板
☆ 使用手机APP产生的bug,请到 AppsForBBS 板
☆ 本站系统回报,请到 PttBug 板
☆ 给本站的建议,请到 PttSuggest(系统)、PttLawSug(站规) 板
其余事项,请先确认您的问题非属市民广场各大部门之管辖,再行发文。
------------------------ 以上为发文小提醒 --------------------
今天试着在 Linux 下用 Edge 连线 term.ptt.cc
Devtool console log 如下:
connect: wsstelnet://ws.ptt.cc/bbs
pttchrome.581e13b2b29a997cac7c.js:19 load pref from storage
6pttchrome.581e13b2b29a997cac7c.js:19 setHighlightedRow: -1, this.buf.highlightCursor:true
pttchrome.581e13b2b29a997cac7c.js:19 WebSocket connection to 'wss://ws.ptt.cc/bbs' failed:
Ki @ pttchrome.581e13b2b29a997cac7c.js:19
pttchrome.581e13b2b29a997cac7c.js:19 pttchrome onClose
本以为是 IP 问题,不过我试着在 QEMU/KVM 的 Windows 11 虚拟机以 NAT 的网路模式
同样使用 Edge 却可连上 term.ptt.cc
想请问可能会是什麽问题?
浏览器版本为 Microsoft Edge 130.0.2849.56
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 144.137.77.70 (澳大利亚)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/SYSOP/M.1730294621.A.85B.html
※ 编辑: dobedobedo (144.137.77.70 澳大利亚), 10/30/2024 21:26:28
1F:→ wens: 後面的系统资讯没太多用处,你先开个devtool 140.112.30.76 10/31 02:08
2F:→ wens: 看看连线纪录跟状态吧... 140.112.30.76 10/31 02:09
Devtool Copilot 错误解释如下:
这个错误讯息表示 WebSocket 连接到 'wss://ws.ptt.cc/bbs' 失败了。这可能是由於以下几个原因:
1. 网络问题:不稳定或不可靠的网络连接可能导致 WebSocket 连接失败。请检查您的网络连接,确保设备有互联网访问权限,并检查防火墙或代理服务器是否对 WebSocket 连接有任何限制
2. SSL/TLS 配置问题:如果使用的是 wss:// 协议,SSL/TLS 配置问题可能会导致连接失败。请确保 SSL/TLS 证书和加密协议配置正确
3. 服务器配置问题:服务器端配置错误或管理不当也可能导致连接失败。请确认 WebSocket 服务器正在运行并监听正确的端口,并检查服务器日志文件中的错误消息
4. WebSocket 协议不匹配:客户端和服务器使用的 WebSocket 协议版本不兼容也可能导致连接失败。请确保客户端和服务器使用相同的 WebSocket 协议版本
5. 防火墙或安全策略阻止:防火墙或其他网络安全策略可能会阻止 WebSocket 连接,特别是在公司或高安全性环境下。请检查并更新防火墙设置,确保允许指定端口的 WebSocket 连接
6. 浏览器或客户端不支持 WebSocket:虽然大多数现代浏览器都支持 WebSocket,但仍有可能遇到不支持或受限的情况。请确保使用的是最新版本的浏览器
修正方法
* 检查网络连接:确保设备有稳定的互联网连接,并检查防火墙或代理服务器设置。
* 验证 SSL/TLS 配置:确保 SSL/TLS 证书有效且配置正确。
* 检查服务器配置:确认 WebSocket 服务器正在运行并监听正确的端口,并检查服务器日志文件中的错误消息。
* 更新浏览器:确保使用的是最新版本的浏览器,并检查客户端应用程序的 WebSocket 实现是否兼容。
* 检查防火墙设置:检查并更新防火墙设置,确保允许指定端口的 WebSocket 连接。
※ 编辑: dobedobedo (144.137.77.70 澳大利亚), 10/31/2024 20:26:34
3F:→ wens: 先开devtool, 切到"网路"那个tab, 然後连线. 140.112.30.76 11/03 16:13
4F:→ wens: 然後看哪个连线失败,失败错误讯息是什麽 140.112.30.76 11/03 16:14
5F:→ wens: copilot分析没有用啊 140.112.30.76 11/03 16:14
以下是失败的连线标头
[一般]
要求 URL:
https://term.ptt.cc/assets/pttchrome.581e13b2b29a997cac7c.css
要求方法:
GET
状态代码:
304 Not Modified
远端位址:
[2606:4700:3038::6815:eae2]:443
查阅者原则:
strict-origin-when-cross-origin
[回应标头]
access-control-allow-origin:
*
age:
299
alt-svc:
h3=":443"; ma=86400
cache-control:
public, max-age=0, must-revalidate
cf-cache-status:
HIT
cf-ray:
8dd37cd78eebaacf-SYD
date:
Mon, 04 Nov 2024 09:13:21 GMT
etag:
W/"936f76966c954a29192e081d22f00770"
nel:
{"success_fraction":0,"report_to":"cf-nel","max_age":604800}
referrer-policy:
strict-origin-when-cross-origin
report-to:
{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=AmAuv9hDSTp5JBJB3PZfin2uq%2BCjZ1M8MuPjb0fmRPX2AxE%2FDfOGofVfIPDJrBrbdwIT1GrjxFE%2FQy73Mupp479K1GsYNorndsngTKyogrIzMsUfkPFldsFeC6yaDtiGU1pn8cDv5UA%2B1A%3D%3D"}],"group":"cf-nel","max_age":604800}
server:
cloudflare
server-timing:
cfL4;desc="?proto=QUIC&rtt=26116&sent=26&recv=23&lost=0&retrans=0&sent_bytes=8675&recv_bytes=10955&delivery_rate=10967&cwnd=12000&unsent_bytes=0&cid=63cf675a6e9f9a48&ts=5062&x=1",
cfHdrFlush;dur=0
strict-transport-security:
max-age=0
vary:
Accept-Encoding
x-content-type-options:
nosniff
[要求标头]
if-none-match:
W/"936f76966c954a29192e081d22f00770"
referer:
https://term.ptt.cc/
sec-ch-ua:
"Chromium";v="130", "Microsoft Edge";v="130", "Not?A_Brand";v="99"
sec-ch-ua-mobile:
?0
sec-ch-ua-platform:
"Linux"
user-agent:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0
※ 编辑: dobedobedo (144.137.77.70 澳大利亚), 11/04/2024 17:23:00
6F:→ wens: 304 不是失败啊... 你整个页面Reload看看 140.112.30.76 11/05 00:20
以下是 Windows 虚拟机下的正常连线:
https://imgur.com/QlnFKSj
以下是 Linux 下的连线, bbs 没有传回任何内容:
https://imgur.com/IHUM4mp
※ 编辑: dobedobedo (144.137.77.70 澳大利亚), 11/05/2024 20:08:15
※ dobedobedo:转录至看板 Linux 11/05 20:09
7F:→ wens: 对外IP都是同一个吗? 140.112.30.76 11/06 11:04
虚拟机使用 NAT 网路,理论上应该跟 host 网路一模一样
另外, 我试了 brave 跟 chromium 都是一样的问题
似乎只发生在 Linux 上的 chromium-based 的浏览器
我感觉是 TLS handshake 的问题:
https://tinyurl.com/2yweb972
不过按照该网站的建议启用 enable-tls13-kyber 也无法解决问题
※ 编辑: dobedobedo (144.137.77.70 澳大利亚), 11/06/2024 13:50:28
8F:推 junorn: 先停用IPv6看看? 210.61.49.231 11/06 16:23
发现我看错了, 上面的网站建议停用 tls13-kyber
在位置栏输入 edge://flags/
#enable-tls13-kyber 後
将该选项设为 disabled,重启浏览器後就可正常连线了
奇怪的是,该选项在 Windows 底下的 Edge 在预设状态下即可正常连线
不知道为什麽
谢谢各位协助,希望此文章也能帮助遇到同样状况的人
※ 编辑: dobedobedo (144.137.77.70 澳大利亚), 11/06/2024 19:09:02