【问题标题】:Tcp port Bind exceptionTcp 端口绑定异常
【发布时间】:2020-06-23 00:21:32
【问题描述】:

我正在 Windows 10、java 11 和 java 8 上重现此内容,但正在发生以下情况:

  1. 尝试使用 intellij 启动 tomcat 应用服务器
  2. tomcat 无法启动,因为绑定端口失败
  3. 端口 1099 无法用于任何其他应用程序

端口实际上从未打开,通过查看具有管理员权限的 netstat -qno 或 netstat -ano,该条目实际上从未出现过,因此实际上没有进程在使用它。

如果我尝试用不同的端口重新启动 tomcat,同样的问题会重复,但现在我们有一个不同的不可用端口。如果我重新启动计算机,端口又是空闲的,但是一旦我尝试启动 tomcat,问题就会重复。

在我看来,intellij/tomcat 正在搞乱 Windows 上的 server/port/bind 并产生一个不可用的端口。

【问题讨论】:

  • 看起来是第三方防病毒/防火墙引起的问题。
  • 端口 1099 是 RMI 注册表端口。你在你的应用程序中使用 RMI 吗?或者你的Tomcat配置?还是单独运行 RMI 注册表?
  • 好吧,不知何故,我通过将 intellij 设置为使用端口 5099 让一切正常工作。经过进一步探索,我发现 ncat 工具可以侦听 2091 及以上的地址,但不能侦听 2090 下的地址。 Ncat: bind to ::1:2090: 试图以访问权限禁止的方式访问套接字。
  • netsh interface ipv4 show excludedportrange protocol=tcp 会显示被阻止/排除的端口,众所周知,Hyper-V 会错误地排除巨大的端口范围。
  • 我猜你刚刚解决了它。 1099 确实在所示范围内。有什么办法解封吗?附带说明一下,这个问题是在安装 wsl2 之后开始发生的,所以它确实有意义。

标签: java windows tomcat intellij-idea


【解决方案1】:

netsh interface ipv4 show excludedportrange protocol=tcp

会显示被阻止/排除的端口,众所周知,Hyper-V 会错误地排除巨大的端口范围,它与 WSL2 一起使用。

您可以尝试使用以下命令更改动态端口的范围:

netsh int ipv4 set dynamicport tcp start=49152 num=16383
netsh int ipv4 set dynamicport udp start=49152 num=16383

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-19
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 2017-09-19
    • 2012-08-17
    • 1970-01-01
    相关资源
    最近更新 更多