修复Clash for windows无法启动socket监听的问题
现象
启动代理工具,无法运行代理,浏览器访问不正确。打开logs有红色的create listener error.
另一个现象
bind port 绑定端口,显示为0。
检查目标端口发现确实有绑定,这就很奇怪了,属于被占用的情况。
netstat -ano | findstr 7890
TCP 127.0.0.1:6298 127.0.0.1:7890 SYN_SENT 40252
TCP 127.0.0.1:6300 127.0.0.1:7890 SYN_SENT 40252
TCP 127.0.0.1:6301 127.0.0.1:7890 SYN_SENT 40252
TCP 127.0.0.1:6305 127.0.0.1:7890 SYN_SENT 40252
TCP 127.0.0.1:6310 127.0.0.1:7890 SYN_SENT 14976
TCP 127.0.0.1:6311 127.0.0.1:7890 SYN_SENT 14976
TCP 127.0.0.1:6314 127.0.0.1:7890 SYN_SENT 14976
UDP 127.0.0.1:7890 *:* 14468
快速解决
快速解决方案,替换clash的bind端口,一直替换到可以正常使用
正常解决方案
输入命令:netsh int ipv4 show dynamicport tcp
协议 tcp 动态端口范围
———————————
启动端口 : 1024
端口数 : 13977
发现启动端口变成了1024,这是由于Hyper-V开启了导致IPv4动态端口范围改变。关闭Hyper-V或调整TCP动态端口范围可以解决问题。通过命令行关闭Hyper-V或在控制面板中禁用,然后使用’netsh int ipv4 set dynamicporttcp start=49152 num=16383’等命令修改端口范围,最后检查并确认设置生效,即可解决此问题。
输入如下命令做设置
netsh int ipv4 set dynamicport tcp start=49152 num=16383
netsh int ipv4 set dynamicport udp start=49152 num=16383
netsh int ipv4 set dynamic tcp start=49152 num=16384
最后再输入netsh int ipv4 show dynamicport tcp 测试检查结果。
0 条评论