0%

SSR的1080端口被占用

遇到的问题

刚才Windows更新完,再次打开SSR报错:

如果怕麻烦,直接重启电脑。但下次可能还会出现问题。

分析问题

本文给出两种方案,仅供参考。

  • 方案一:就像其他博主给出的方案,在CMD里使用 netstat -aon|findstr "1080",找到占用端口进程的PID,在任务管理器里结束进程。
  • 方案二:很多时候,你会发现,并没有进程在占用1080端口:

这个问题并不是端口被占用,通过 netstat 里找不到占用这个端口的程序。实际上,这个错误对应的 last-error 是 10013 (WSAEACCESS),权限不足。

根据2018年2月13日发布的 KB4074588 里的 known issue,这个补丁会调整操作系统的 reserve port ranges,可以通过运行 以下指令查看。

1
netsh interface ipv4 show excludedportrange protocol=tcp

在我自己的环境里,1064 ~ 1163 都被系统强制保留了,所以其他应用程序无法监听在这个端口,比如1080。

除了系统补丁会保留端口外,开启win10的 hyper-v 也会保留端口

解决方法

以下两个方法选一个就可以了。
随便改成一个没被保留的端口。

  1. 通过SSR客户端
  2. 修改 gui-config.json

参考链接

  1. https://juejin.im/post/5de4fafee51d4530e9129b27
  2. https://github.com/shadowsocks/shadowsocks-windows/issues/1835