诡异的端口号占用的问题

2022-02-23 03:35:20 +08:00
 techstay

最近发现一个问题,就是有时候一些端口号就被莫名其妙占用了。比方说我想本地查看一下 hugo 博客,就发现 8080 端口号被占用了,自动给我换了一个随机端口号。

hugo server -D --bind 0.0.0.0 --port 8080

然而当我用 tcpview 想查看到底是什么程序占用了 8080 端口号的时候,却发现完全查不到。正是因为之前也发生过莫名其妙的占用 1313 端口号的请到,所以我才把端口号改成了 8080 ,没想到还是出现了这样的问题。

请问大家出现过类似的情况吗?话说貌似这个问题频繁出现还是在我换了 Win11 系统以后,莫非真的是阿三程序员的问题?

2341 次点击
所在节点    程序员
8 条回复
huoshen
2022-02-23 03:55:33 +08:00
想起来以前这个问题,会不会是同一个原因导致的 https://github.com/Fndroid/clash_for_windows_pkg/issues/671
g531956119
2022-02-23 04:37:28 +08:00
遇到这个问题大多都是因为开启了 hyper-v 导致系统动态分配端口段变低了,不知道 M$是怎么想的
xwcs
2022-02-23 09:33:05 +08:00
是不是开启了 wsl ,是的话那就是 hyper-v 这个动态端口的问题,每次重启都会占用部分端口,你把这个动态端口的范围拉高就行了,具体操作方法可以看 1 楼的链接
STtree
2022-02-23 09:39:38 +08:00
我遇到过类似的问题。参考执行下面的操作就好了。
1.net stop winnat
2.启动服务
3.net start winnat

貌似是 2 楼说的 hyper-v 动态分配端口的问题。
这个方法参考自 https://stackoverflow.com/questions/61344554/tomcat-debug-error-unable-to-open-debugger-port-127-0-0-163199-java-net-bin
heart4lor
2022-02-23 10:25:27 +08:00
是楼上说的 Windows 有次更新把动态端口范围改宽了的问题,导致 hyper-v 占用了 1024 以上的某些段作为保留端口;写过一篇博客: https://www.sunyongfei.cn/archives/241/
Latin
2022-02-23 11:07:07 +08:00
@STtree PS:Powershell 或 cmd 管理员
james2013
2022-02-23 14:45:12 +08:00
以下在 win10 电脑上使用过,win11 没有试:
查找端口号 netstat -aon|findstr "8848"
TCP 192.168.1.11:8848 xxx:443 ESTABLISHED 4772
最后 1 个值是进程值,查看进程所在的软件:tasklist|findstr “4772”
chrome.exe 4772 Console 1 38,036 K

使用 PowerShell 命令一键强制杀掉此端口所在进程:Stop-Process -Id (Get-NetTCPConnection -LocalPort 8848).OwningProcess -Force
techstay
2022-02-23 17:03:47 +08:00
感谢大家,确实是我开了 wsl 的问题。话说这 m$也太坑了吧,这动态端口号是随便改的?普通用户也就算了,这 hyperv 好像主要也是企业用户用的吧,那些大客户没投诉过吗?

另外点进 1 楼的连接,看到一个兄弟的评论就乐了,因为他和我的解决办法一样,只不过他把端口号设成 16000 ,而我直接设置成了 60000😂

最后动态端口号的范围有没有什么说法,我改成四万到五万,应该不会有什么影响吧。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/835798

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX