修复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 测试检查结果。

分类: HelloWorld

0 条评论

发表回复

Avatar placeholder

您的邮箱地址不会被公开。 必填项已用 * 标注