Windows IP Helper Service (iphlpsvc) - 是否可以更改端口?

Jon*_*řík 13 networking windows windows-10 elasticsearch

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

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

我还想知道我是否是唯一一个在 Windows 上遇到 Elasticsearch 和 iphlpsvc 之间冲突的人 - 我能找到的关于此问题的唯一提及是在这里:https ://forums.docker.com/t/solved-startup-of -本地端口绑定容器失败/18654

小智 30

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

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 这样做。如果有人知道其他可能是罪魁祸首的应用程序,请在此处添加它们:)