服務器端發生 1006 1000 錯誤而關閉的問題,僅在客戶端不開 mux 的情況下發生
2021/10/22 14:26:04 xxx.xxx.xxx.xxx:0 rejected proxy/vless/encoding: failed to read request version > websocket: close 1006 (abnormal closure): unexpected EOF 2021/10/22 14:26:04 xxx.xxx.xxx.xxx:0 rejected proxy/vless/encoding: failed to read request version > websocket: close 1000 (normal)
發現在服務器端出現這樣的 log,僅在客戶端關閉 mux 的情況下發生。
以前跟 rprx 反映過這個情況,很可能是不走 mux 的那個路徑上出的 bug。非常盼望有大佬能夠站出來修一修。
因為 mux 本身不完善有自己的問題,所以不開 mux 下表現正常,就變得更加有意義了。
Edit: 客戶端的 typical warning: 2021/10/31 14:51:12 [Warning] [273208261] app/proxyman/outbound: failed to process outbound traffic > proxy/vless/outbound: failed to find an available destination > common/retry: [transport/internet/websocket: failed to dial WebSocket > transport/internet/websocket: failed to dial to (wss://xxx/path): > dial tcp: operation was canceled] > common/retry: all retry attempts failed
抱歉,剛才關於半開連接數限制的猜想不正確。
但我發現,在不開 mux 的情況下,如果啟用 early data 連接 websocket,那麼在客戶端也不會有類似的 warning 產生。
所以這個問題應該出在不開啟 early data 的情況下,建立 websocket 連接的第二步驟的管理上出現了問題,建立了 websocket tunnel 之後,沒有發出跟進的握手數據。