大概从半年前开始,我发现我的代理软件配置的端口有时会不能用,软件提示「没有权限访问端口」。这个问题会在什么时候出现完全随机,没有任何规律。对于这个问题,有时候重启可以解决,有时候重启好几次才能解决,并且如果运气不好,可能重启几次后这些端口还是不能用……
这让我非常困惑,我给代理软件开了管理员权限,但没有效果。我使用 netstat -ano
想看看这些端口被什么程序占用,却一无所获。当时,我误以为是代理软件出了一些神秘问题,在 google 无果后,因为大多数时候重启都能解决,我就没有再管。
直到前两天,我在做 Web 开发时,发现在 Windows 10
中使用 localhost:8088
死活访问不了 WSL 2 的 8088
端口。一开始我以为是 WSL 2
默认的端口转发出错了,便用 netsh interface portproxy
重新指定了端口转发,但还是访问不了。我又猜想可能是 WSL 2
中 Ubuntu
的防火墙规则有问题,但排查后发现不是。我又怀疑是 Windows 10
的防火墙设置有问题,但仔细核对后发现确实没有问题。正当我百思不得其解时,我随手把端口号换成了 3000
,发现居然能用了。并且在我再一次重启电脑之后,发现之前不能用的 8088
也又能用了。
这个灵异问题让我顿时联想到了半年前出现的那个代理软件端口不能用的问题,我试着又重启了几次,发现刚刚能用的 8088
端口又不能用了。面对这种奇葩情况,我只能推断可能是 Windows 10
因为某些原因,会随机保留这些端口号,不让用户使用。
但老重启也不是个事儿,这次我找对了搜索关键字,一番 google 后终于搞明白了问题的成因,并解决了这个困扰我半年之久的问题。