SSR的1080端口被佔用

出現的問題:

環境:win10   64位   版本1809

某日,啓動ssr時彈出了

如果怕麻煩,直接重啓電腦。但下次可能還會出現問題。

本文給出兩種方案,僅供參考。

方案一:

就像其他博主給出的方案,在CMD裏使用netstat -aon|findstr "1080",找到佔用端口進程的PID,在任務管理器裏結束進程。

方案二:

    可能的原因:

可很多時候,沒有進程在佔用1080端口,你會發現:

是的,沒有進程佔用1080端口,但就是會報錯。

這個問題並不是端口被佔用,通過 netstat 裏找不到佔用這個端口的程序。實際上,這個錯誤對應的 last-error 是 10013 (WSAEACCESS),權限不足。

根據2018年2月13日發佈的 KB4074588 裏的 known issue,這個補丁會調整操作系統的 reserve port ranges,可以通過運行 以下指令查看。

netsh interface ipv4 show excludedportrange protocol=tcp

在我自己的環境裏,1027 ~ 1126 都被系統強制保留了所以其他應用程序無法監聽在這個端口,比如1080。

workaround 要選取的端口也只能避開這些保留端口。

最後建議:ss 可以做一下 10013(WSAEACCES) 和 10048(WSAEADDRINUSE)的分類處理。畢竟看起來之後這個地方會出現坑不會少。

注:嘗試使用 netsh interface ipv4 delete excludedportrange ... 會提示 access is denied,目前找不到可以認爲調整的方法。

以上參考https://github.com/shadowsocks/shadowsocks-windows/issues/1835

除了系統補丁會保留端口外,開啓win10的hyper-v也會保留端口,比如我自己

   解決方案:

更改SSR的本地端口

在SSR4.0.exe所在目錄下,找到gui-config.json,並用記事本打開。

 找到"localPort": 1080,,將其修改爲"localPort": 12345,這裏我隨便選了一個沒保留的端口。

 保存並退出。重啓SSR。

注意:如果你使用了像SwitchyOmega這樣的插件,請修改情景模式。 

 打開谷歌

 END

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章