Windows IP 帮助服务 (iphlpsvc) - 是否可以更改端口?

Windows IP 帮助服务 (iphlpsvc) - 是否可以更改端口?

在我的系统 (Windows 10) 上,Windows IP Helper Service (iphlpsvc) 使用端口 9200,默认情况下 Elasticsearch 也使用该端口。显然,我可以将 Elasticsearch 设置为使用其他端口,但这有点烦人,因为 ES 在其他地方都使用 9200。

我想知道是否有任何方法可以配置 iphlpsvc 以使用其他端口?当我在 9200 上启动 ES 后停止 iphlpsvc 并重新启动它时,它似乎没有阻塞任何其他端口(基于Get-NetTCPConnection -OwningProcess 2882428824 是新的 PID),这让我认为它运行不正常。

我还想知道我是否是唯一一个在 Windows 上遇到 Elasticsearch 和 iphlpsvc 之间冲突的人——我能找到的关于此问题的唯一其他提及是在这里:https://forums.docker.com/t/solved-startup-of-containers-fails-on-local-port-binding/18654

答案1

我刚刚花了相当多的时间来解决类似的问题,希望这能够帮助其他正在努力解决同样问题的人。

Windows IP Helper 服务(位于 svchost 后面)只是一个助手。它不会在开箱时自行绑定或保留任何端口 - 它只会在其他应用程序要求时才开始这样做。在我的情况下,它是 netsh,我已将端口转发设置为 WSL2(就像上面的 @amra 一样),然后就忘记了。这也许也能解决你的问题。

确定 netsh 是否使 IP Helper(iphlpsvc)保留端口(并将其转发到例如 WSL)的方法如下:

在 Powershell 提示符中(以管理员身份运行): netsh interface portproxy show all

如果您需要的端口(iphlpsvc 阻止的端口)在该列表中,则 netsh 是罪魁祸首(而不是 iphlpsvc)。使用:

netsh interface portproxy delete help

弄清楚如何删除该行。(它需要端口号和监听地址作为参数)。就我而言,以下方法有效:

netsh interface portproxy delete v4tov4 listenport=27117 listenaddress=0.0.0.0

运行此程序后,端口声明消失,我可以保持服务运行+正常启动之前被阻止的应用程序。

如果 iphlpsvc 正在使用“您的端口”,您必须找出哪个其他应用程序告诉 iphlpsvc 这样做。如果有人知道其他可能造成问题的应用程序,请在此处添加它们 :)

答案2

我不知道如何重新配置​​ Windows IP Helper 服务。更改其监听端口可能是不可能的。

但是,这项服务并非绝对必要。它有效地允许跨各种 Windows 10 网络协议(例如 IPv6 和端口代理等)进行连接。它主要用于运行远程数据库或通过 IPv6 进行连接。

如果您可以忍受没有 IPv6 和其他各种服务,最简单的解决方案就是禁用此服务并停止其运行。

  • 跑步开始 > 服务

  • 向下滚动列表以找到“IP Helper”

  • 双击它并选择属性

  • 要暂时禁用该服务,请选择停止 > 应用 > 确定

  • 要永久禁用该服务,请设置启动类型 从下拉菜单中将其设置为“已禁用”,然后选择应用 > 确定

  • 重新启动 Windows。

相关内容