我的 Windows 10 计算机一直处于无法使用许多端口的状态,但当我尝试查找并终止正在使用该端口的程序时,却找不到任何东西。重新启动计算机可以解决问题并释放端口,但最终问题总会再次出现。现在它发生在端口 3000 上,当我尝试在其上运行任何内容(例如 Python 或 ExpressJS 中的 Web 服务器)时,我都会收到这些错误:
python -m http.server 3000
OSError: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions
node app.js
Error: listen EACCES: permission denied 0.0.0.0:3000
code: 'EACCES',
errno: -4092,
syscall: 'listen',
address: '0.0.0.0',
port: 3000
但这不仅仅是端口 3000。以下代码片段在从 3000 到 3166 的每个端口上都失败(然后在 3167 上成功运行)
for ((i=3000;i<=4000;i++)); do
python -m http.server 3000
done
java.util.concurrent.CompletionException: java.net.BindException: Address already in use: bind
我在许多不同的端口上遇到了同样的问题,只能通过重新启动计算机来解决它,另一个例子是 PyCharm在尝试绑定 6942 和 6991 之间的任何端口时无法启动并给出错误。
我如何才能找出导致我的端口停止工作的原因并解决这个问题?
以下是我迄今为止尝试过的方法:
netstat -ano | findStr "3000"
不返回任何内容netsh interface ipv4 show excludedportrange | findStr "3000"
不返回任何内容- PowerShell
Get-NetTCPConnection -LocalPort 3000
返回No MSFT_NetTCPConnection objects found with property 'LocalPort' equal to '3000'
resmon.exe
或Listening Ports
TCP Connections
TCPView
端口 3000 上没有显示任何内容- 检查端口是否打开此片段
- 禁用 Windows Defender 实时保护和防火墙(并且我没有其他防病毒软件)
- 浏览时,
Control Panel\System and Security\Windows Defender Firewall -> Advanced Settings
只有列Allow
下的项目Action
- 使用 Wireshark 监视端口 3000-3126 上的任何 TCP 活动,没有发现任何活动
- 使用 Malwarebytes、Kaspersky、ESET、HitmanPro 扫描了我的计算机
我很茫然,除了重新安装 Windows 10 之外想不出其他任何办法。任何建议都值得感激。
答案1
在这里找到了解决方案:https://stackoverflow.com/a/62359555/3620725
netsh int ipv4 set dynamic tcp start=49152 num=16384