Shadowsocks提示連接埠由系統保留導致存取被拒絕

平時有在使用Shadowsocks,預設的port號為1080,今天啟動起來提示下面的錯誤


一般遇見port號被使用,第一反應是查看是被哪個程式給佔用了。
netstat -aon|findstr “1080”
然後使用taskkill /T /F /PID ***來結束進程
但這次去查看1080根本沒有程式佔用,搜尋發現這個真的是被系統給保留了,使用
netsh interface ipv4 show excludedportrange protocol=tcp  來查看可以看到1080剛好在1077和1176期間,是什麼原因導致的就不清楚,先前是可以使用的。最簡單的方式就是
將Winnat服務重啟,看port是否會被釋放出來。
net stop winnat
net start winnat

另外也有人分享原因是 因為電腦啟用了Hyper-v或者是WSL導致,也可以嘗試重啟或者是移除。
當然如果不想更改系統也是可以嘗試將Shadowsocks中的port更換一個比較大的號碼,這樣也可以解決問題。
如果一定要修改系統的port號,則可以參考
https://docs.microsoft.com/zh-tw/troubleshoot/windows-server/networking/default-dynamic-port-range-tcpip-chang
指令指令例如:
netsh int ipv4 set dynamic tcp start=49152 num=16384
netsh int ipv4 add excludedportrange protocol=tcp startport=50323 numberofports=1