作者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/m.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