版本:4.0.9
操作环境:Win 10 x64 Version 1803(OS Build 17134.5)
操作步骤:直接运行
期望的结果:正常运行
实际结果:提示端口被占用,异常
信息显示没有访问端口的权限(port:1080)
配置文件和日志文件:
[2018-05-03 08:45:29] System.Exception: Port already in use ---> System.Net.Sockets.SocketException: An attempt was made to access a socket in a way forbidden by its access permissions
at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.Sockets.Socket.Bind(EndPoint localEP)
at Shadowsocks.Controller.Listener.Start(Configuration config)
at Shadowsocks.Controller.ShadowsocksController.Reload()
--- End of inner exception stack trace ---

这意味着你计算机上的 1080 端口已经被占用。如果看不到SS的主界面,请用Windows自带的记事本打开 Shadowsocks.exe 所在目录下的gui-config.json 文件,找到 "localPort": 1080, ,将其修改为 "localPort": 2080, ,然后保存退出后再试。
猜测是OS问题,今天升级到最新的Win 10 x64 Version 1803(OS Build 17661.1001) prerelease版本后,问题已经不再复现
@chenshaoju @hong6234 这个问题并不是端口被占用,通过 netstat 里找不到占用这个端口的程序。
实际上,这个错误对应的 last-error 是 10013 (WSAEACCESS),权限不足。
根据2018年2月13日发布的 KB4074588 里的 known issue,这个补丁会调整操作系统的 reserve port ranges,可以通过运行 netsh interface ipv4 show excludedportrange protocol=tcp 查看。
在我自己的环境里,1025 ~ 1124 都被系统强制保留了,所以其他应用程序无法监听在这个端口。
workaround 要选取的端口也只能避开这些保留端口。
最后建议:ss 可以做一下 10013(WSAEACCES) 和 10048(WSAEADDRINUSE)的分类处理。毕竟看起来之后这个地方会出现坑不会少。
注1:我的系统是最新的1809,一直没有这个问题,直到上周安装了 SONY 的 Digital Paper App 附带的驱动之后触发了这个问题。另一台 surface pro 4 也装了 Digital Paper App,但是没有出现这个问题,不确定是不是因为 sp4 使用的是 Windows 10 Home 的关系。
注2:尝试使用 netsh interface ipv4 delete excludedportrange ... 会提示 access is denied,目前找不到可以认为调整的方法。
这是非常有用的信息,感谢分享。
Reopen for tracking
根据 https://github.com/2dust/v2rayN/issues/229 hyper-v可能会保留端口
这个问题解决了吗?????
无论修改代理端口1080为1999或者10801
还是修改gui-config.json中的proxyPort 1080为2080什么的都不行啊?
显示要么“由于目标计算机积极拒绝,无法连接。”,要么“不知道这样的主机。”
这意味着:
1.你所访问的服务器被墙了,或者SS服务器没有启动SS服务。
2.你输入的域名有误,或者遭到了DNS污染。
这意味着:
1.你所访问的服务器被墙了,或者SS服务器没有启动SS服务。
2.你输入的域名有误,或者遭到了DNS污染。
谢谢提示,ss软件出现了问题,已经清空配置文件解决了。
如果是Hyper-V保留端口导致的问题,https://github.com/docker/for-win/issues/3171#issuecomment-459205576 提到一种workaround:
删除Hyper-V功能后,netsh int ipv4 add excludedportrange protocol=tcp startport=1080 numberofports=1 ,再重新启用Hyper-V,Hyper-V会避开已经保留的1080端口。
注意:删除Hyper-V功能会删除所有虚拟交换机。
@chenshaoju @hong6234 这个问题并不是端口被占用,通过
netstat里找不到占用这个端口的程序。
实际上,这个错误对应的 last-error 是 10013 (WSAEACCESS),权限不足。根据2018年2月13日发布的 KB4074588 里的 known issue,这个补丁会调整操作系统的 reserve port ranges,可以通过运行
netsh interface ipv4 show excludedportrange protocol=tcp查看。在我自己的环境里,1025 ~ 1124 都被系统强制保留了,所以其他应用程序无法监听在这个端口。
workaround 要选取的端口也只能避开这些保留端口。
最后建议:ss 可以做一下 10013(WSAEACCES) 和 10048(WSAEADDRINUSE)的分类处理。毕竟看起来之后这个地方会出现坑不会少。
注1:我的系统是最新的1809,一直没有这个问题,直到上周安装了 SONY 的 Digital Paper App 附带的驱动之后触发了这个问题。另一台 surface pro 4 也装了 Digital Paper App,但是没有出现这个问题,不确定是不是因为 sp4 使用的是 Windows 10 Home 的关系。
注2:尝试使用netsh interface ipv4 delete excludedportrange ...会提示 access is denied,目前找不到可以认为调整的方法。
分享一下曾经找到的解决办法
由于hyper-v保留了这些端口,所以需要先关闭hyper-v,保留想要保留的端口,再开启hyper-v功能
Disable hyper-v (which will required a couple of restarts)
dism.exe /Online /Disable-Feature:Microsoft-Hyper-V
When you finish all the required restarts, reserve the port you want so hyper-v doesn't reserve it back
netsh int ipv4 add excludedportrange protocol=tcp startport=1080 numberofports=2
netsh int ipv4 add excludedportrange protocol=tcp startport=1099 numberofports=1
netsh int ipv4 add excludedportrange protocol=tcp startport=3306 numberofports=1
3.Re-Enable hyper-V (which will require a couple of restart)
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
来源:https://github.com/docker/for-win/issues/3171#issuecomment-459205576
https://github.com/docker/for-win/issues/3171#issuecomment-554587817 提到的似乎可解
Most helpful comment
@chenshaoju @hong6234 这个问题并不是端口被占用,通过
netstat里找不到占用这个端口的程序。实际上,这个错误对应的 last-error 是 10013 (WSAEACCESS),权限不足。
根据2018年2月13日发布的 KB4074588 里的 known issue,这个补丁会调整操作系统的 reserve port ranges,可以通过运行
netsh interface ipv4 show excludedportrange protocol=tcp查看。在我自己的环境里,1025 ~ 1124 都被系统强制保留了,所以其他应用程序无法监听在这个端口。
workaround 要选取的端口也只能避开这些保留端口。
最后建议:ss 可以做一下 10013(WSAEACCES) 和 10048(WSAEADDRINUSE)的分类处理。毕竟看起来之后这个地方会出现坑不会少。
注1:我的系统是最新的1809,一直没有这个问题,直到上周安装了 SONY 的 Digital Paper App 附带的驱动之后触发了这个问题。另一台 surface pro 4 也装了 Digital Paper App,但是没有出现这个问题,不确定是不是因为 sp4 使用的是 Windows 10 Home 的关系。
注2:尝试使用
netsh interface ipv4 delete excludedportrange ...会提示 access is denied,目前找不到可以认为调整的方法。