今天使用SSR的时候,打开突然提示我1080端口被占用,启动SSR失败
WTF????
我原来还用得好好的,今天突然暴毙了
我就想去看看,是哪个程序占用了1080端口,结束掉就行了
于是我打开cmd
输入netstat -ano|findstr 1080
神奇的事情发生了,没有任何的输出
我以为我查询错了
我就用netstat -ano全部列出来一个个看
好像确实没有1080端口的占用情况
并没有1080端口
于是我想,那么我就去把SSR端口改为1081端口吧,然后结果还是一样的
我想到了端口会不会被系统保留了
于是打开cmd
输入
netsh interface ipv4 show excludedportrange protocol=tcp
得到的
终于找到了
嚯,1080,1081全被保留了
应该是哪个程序安装后申请保留了,原来还没有的,也可能是系统补丁更新调整了reserve port ranges来保留端口,另外开启hyper-v也会保留端口,反正这个端口不能被监听了
那就换这些端口范围之外且未被使用的端口就行了
打开SSR设置
我换的是23333
换个其他的端口,重新启动SSR
问题解决
2020-3-22更新
今天启动IDEA,也是遇到了一样的问题
IDEA打开错误
然后我在IDEA官方上看到了这个解决方案:点击进入
照着使用netsh winsock reset后重启,恢复正常,但是再次重启之后又出现了问题
然后下面有人说是Hyper-V的问题,我去看了一下,端口范围6942-6991确实已经被系统保留
端口被系统保留
再往下面翻,有个人说解决方案可以完成
然后进去之后就告诉说先关闭Hyper-V重启,再执行
netsh int ipv4 add excludedportrange protocol=tcp startport=<起始端口> numberofports=<端口保留数量>
然后再开启Hyper-V重启
意思就是执行这个让用户来保留,而让系统不保留这个端口范围
要注意的是,执行这个命令的时候,范围内不能有已经被保留的端口,所以才说要先关闭Hyper-V,否则会提示” 另一个程序正在使用此文件,进程无法访问。”
用户保留
后面打星号的就是用户自己保留,操作系统不会保留
当然在使用SSR的1080端口的话(虽然早就不用SSR了),可以使用
netsh int ipv4 add excludedportrange protocol=tcp startport=1080 numberofports=1
来单独保留1080端口给用户