今天安装docker,启用hyper-v后,开始发现发现代理报错,提示无法bind 1081端口
查询解决方法一 管理员运行cmd
netsh winsock reset
无效
使用netstat -ano | findstr "1081"
也没有任何输出
方法二
改本地监听端口为任一一个非保留端口,最好大一点,我改了23456,发现问题解决。下面命令这套可以发现确实端口被保留了。
简单分析原因,具体可以点参考链接进行了解
netsh interface ipv4 show excludedportrange protocol=tcp
协议 tcp 端口排除范围
开始端口 结束端口
1024 1123
1124 1223
1224 1323
1328 1427
1431 1530
1566 1665
2030 2129
2180 2279
2280 2379
2380 2479
2480 2579
2580 2679
2938 3037
3038 3137
23458 23458
50000 50059 *
-
- 管理的端口排除。
在一个ss项目的issue评论里翻到这个解释和普适的解决
这种情况其实是因为win10保留动态端口的端口号范围和你设定的端口出现了冲突(内核系统级冲突,普通工具是看不到的), 所以我们要修改动态端口的许可范围, 上调到比如从30000这种不常用端口开始.
使用管理员权限cmd执行如下指令 然后必须重启一次电脑即可 解决冲突问题
netsh int ipv4 set dynamicport tcp start=30000 num=20000
参考