V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
techstay
V2EX  ›  程序员

诡异的端口号占用的问题

  •  
  •   techstay ·
    techstay · 2022-02-23 03:35:20 +08:00 · 2560 次点击
    这是一个创建于 1039 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    8 条回复    2022-02-23 17:03:47 +08:00
    huoshen
        1
    huoshen  
       2022-02-23 03:55:33 +08:00 via iPhone
    想起来以前这个问题,会不会是同一个原因导致的 https://github.com/Fndroid/clash_for_windows_pkg/issues/671
    g531956119
        2
    g531956119  
       2022-02-23 04:37:28 +08:00 via Android   ❤️ 1
    遇到这个问题大多都是因为开启了 hyper-v 导致系统动态分配端口段变低了,不知道 M$是怎么想的
    xwcs
        3
    xwcs  
       2022-02-23 09:33:05 +08:00
    是不是开启了 wsl ,是的话那就是 hyper-v 这个动态端口的问题,每次重启都会占用部分端口,你把这个动态端口的范围拉高就行了,具体操作方法可以看 1 楼的链接
    STtree
        4
    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
        5
    heart4lor  
       2022-02-23 10:25:27 +08:00
    是楼上说的 Windows 有次更新把动态端口范围改宽了的问题,导致 hyper-v 占用了 1024 以上的某些段作为保留端口;写过一篇博客: https://www.sunyongfei.cn/archives/241/
    Latin
        6
    Latin  
       2022-02-23 11:07:07 +08:00
    @STtree PS:Powershell 或 cmd 管理员
    james2013
        7
    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
        8
    techstay  
    OP
       2022-02-23 17:03:47 +08:00
    感谢大家,确实是我开了 wsl 的问题。话说这 m$也太坑了吧,这动态端口号是随便改的?普通用户也就算了,这 hyperv 好像主要也是企业用户用的吧,那些大客户没投诉过吗?

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

    最后动态端口号的范围有没有什么说法,我改成四万到五万,应该不会有什么影响吧。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2453 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 01:19 · PVG 09:19 · LAX 17:19 · JFK 20:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.