【问题标题】:NETSH port forwarding from local port to local port not working从本地端口到本地端口的 NETSH 端口转发不起作用
【发布时间】:2014-08-30 00:50:49
【问题描述】:

我正在尝试使用 NETSH PORTPROXY 命令将通过端口 8001 发送到我的 XP PC (IP 192.168.0.10) 的数据包转发到端口 80(我有一个监听端口 80 的 XAMPP Apache 服务器)。

我发布了以下内容:

netsh interface portproxy add v4tov4 listenport=8001 listenaddress=192.168.0.10 connectport=80 connectaddress=192.168.0.10

全部显示确认一切配置正确:

netsh interface portproxy show all

Listen on IPv4:             Connect to IPv4:

Address         Port        Address         Port
--------------- ----------  --------------- ----------
192.168.0.10    8001        192.168.0.10    80

但是,我无法从 http://localhost:8001 访问 apache 网站。我可以通过http://localhost 的直接端口访问,如下所示。

此外,我还尝试了以下方法: 1. 使用以下链接从远程 PC 访问 Apache 网站:http://192.168.0.10:8001。防火墙关闭。 2.将listenaddress和connectaddress改为127.0.0.1

没有更多信息,我无法找到解决问题的方法。有没有办法调试 NETSH PORTPROXY?

注意:顺便说一句,如果你想知道我为什么要这样做,我实际上想将远程 MySQL 客户端连接从自定义端口映射到默认的 MySQL 服务器端口 3306。 p>

【问题讨论】:

    标签: portforwarding netsh windows-networking


    【解决方案1】:

    我设法通过发出:

    netsh interface ipv6 install
    

    另外,为了我的目的,不需要设置listenaddress,最好设置connectaddress=127.0.0.1,例如

    netsh interface portproxy add v4tov4 listenport=8001 connectport=80 connectaddress=127.0.0.1
    

    【讨论】:

    • 使用“netsh int ipv4 install”为我工作。谢谢
    • 127.0.0.1不能作为连接端口
    • 在 windows xp 上,它是netsh interface ipv6 install。解释是映射功能在 ipv6 支持 dll 中 :)
    • 他们最近是否更改了命令?我收到一个错误:“未找到以下命令:接口 ipv6 安装。”
    【解决方案2】:

    如果netsh 的端口代理没有按预期工作,那么您应该验证以下内容,最好按此顺序:

    1. 确保端口代理配置正确
    2. 启动或重启相关的 Windows 服务
    3. 确保已安装对 IPv6 的支持
    4. 确保端口未被防火墙阻止

    确保端口代理配置正确

    这似乎是微不足道的,但以防万一,在继续之前花点时间检查您的配置。

    在命令提示符或 PowerShell 提示符下,运行以下命令:

    netsh interface portproxy show all
    

    结果应该是这样的:

    Listen on ipv4:             Connect to ipv4:
    
    Address         Port        Address         Port
    --------------- ----------  --------------- ----------
    24.12.12.24     3306        192.168.0.100   3306
    24.12.12.24     8080        192.168.0.100   80
    

    仔细检查这些设置。确保您确实可以从本地计算机连接到该列表右侧的地址。例如,您可以在本地打开网络浏览器并访问192.168.0.100:80吗?如果协议不是 HTTP,则使用 telnet:telnet 192.168.0.100 3306(有关如何在 Windows 上安装 Telnet 客户端,请参阅here)。

    那么,左边的值正确吗? IP 地址对您的机器有效吗?这是您尝试从外部机器连接的端口号吗?

    启动或重启相关的Windows服务

    在最新版本的 Windows 上,netsh 的端口代理由名为“IP Helper”或“iphlpsvc”的 Windows 服务处理。如果该服务停止,代理显然将不起作用。我也遇到了通过重新启动该服务来解决的情况。

    在最新版本的 Windows 中执行此操作:

    1. 打开任务管理器,然后转到服务选项卡。
    2. 在“名称”列中,找到名为“iphlpsvc”或“IP Helper”的服务。
    3. 右键单击该服务,然后选择重新启动。如果 restart 不可用,则服务可能已停止,实际上必须启动,因此选择 Start

    在以前版本的 Windows 上,在控制面板内的管理工具中查找服务

    确保已安装对 IPv6 的支持(仅限旧版本的 Windows)

    在早期版本的 Windows 上(当然是 Windows XP,直到 Windows 10 的一些早期版本,尽管这还不清楚),netsh 的端口代理功能(包括 IPv4 到 IPv4 proxy)实际上是由一个 DLL (IPV6MON.DLL) 处理的,该 DLL 仅在启用 IPV6 协议支持时才加载。因此,在这些版本上,需要支持 IPv6 协议才能启用 netsh 的端口代理(请参阅 Microsoft 的支持文章 here)。

    在命令提示符或 PowerShell 提示符下,运行以下命令:

    netsh interface ipv6 install
    

    如果您收到错误消息,指出未找到命令 interface ipv6 install,则表示您使用的是最新版本的 Windows,其中 netsh 的 IPv6 支持是隐式的,无法禁用。

    确保端口没有被防火墙阻止

    本地防火墙可能会在端口到达 IP Helper 服务之前就阻止它们。为了验证这个假设,暂时禁用任何本地防火墙(包括 Windows 的本机防火墙),然后重新测试。如果可行,那么只需将端口排除添加到您的防火墙配置中即可。

    【讨论】:

    • 在 Windows 10 中,以管理员身份在 Powershell 中,netsh 接口命令导致错误:“未找到以下命令:接口 ipv6 安装。”
    • @DaveMunger(仅限旧版本)如果您收到指示未找到命令接口 ipv6 install 的错误,则表示您使用的是最新版本的 Windows,其中隐含了 netsh 的 IPv6 支持并且不能被禁用。
    【解决方案3】:

    我有你的问题。我刚才已经解决了。有一个名为“IP Helper”的Windows 服务,提供功能隧道连接。您应该确保它已经启动。

    【讨论】:

    • 虽然这可能是解决问题的宝贵提示,但一个好的答案也可以证明解决方案。请EDIT 提供示例代码来说明您的意思。或者,考虑将其写为评论
    • 我看不出这个答案需要任何改进。这是许多可能的原因之一,就我而言,这也是原因。
    • 我在 winXP 中尝试 portproxy,但找不到名为“IP Helper”的服务。您在哪个 Windows 版本中找到此服务?或者在winXP中这个服务是怎么调用的?
    【解决方案4】:
    1. 您必须首先以管理员身份运行 Command.exe,方法是右键单击命令提示符图标并选择 以管理员身份运行。系统会要求您确认。

    2. netsh 命令粘贴到command.exe 窗口中,然后按Enter。

    3. 如果没有显示错误信息,则该命令有效。

    4. 在您的网络浏览器中转到 http://your-up:8001 以查看它是否有效。

    Windows 事件日志可能包含有助于查找故障原因的信息。

    【讨论】:

      猜你喜欢
      • 2017-04-27
      • 1970-01-01
      • 1970-01-01
      • 2019-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-17
      • 2021-08-29
      相关资源
      最近更新 更多