从本地端口本地端口不能正常工作NETSH端口转发

问题描述 投票:21回答:4

我想利用Netsh命令PORTPROXY转发端口8001到端口80发送到我的XP电脑(IP 192.168.0.10)包(我有一个XAMPP Apache服务器侦听端口80)。

我发表了如下:

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.访问Apache的网站从远程PC:http://192.168.0.10:8001此外,我也试过以下。关闭防火墙。 2.改变的ListenAddress和connectaddress到127.0.0.1

如果没有进一步的信息,我无法找到一个方法来解决这个问题。有没有一种方法来调试NETSH PORTPROXY?

注:顺便说一下,如果你想知道我为什么这样做,其实我是想远程MySQL客户端连接从一个自定义端口到默认的MySQL服务器端口映射3306。

portforwarding netsh windows-networking
4个回答
35
投票

我设法得到它发出的工作:

netsh interface ipv6 install

此外,对于我的目的,并不需要设置的ListenAddress和更好的设置connectaddress = 127.0.0.1,例如

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

6
投票

这个问题我已经和你在一起。我刚才解决它。有一个名为“IP助手”供应的funcions隧道连接的Windows服务。您应该确保它已经启动。


2
投票
  1. 您必须先运行COMMAND.EXE作为管理员,通过右键单击命令提示符图标并选择以管理员身份运行。你会要求确认。
  2. 在COMMAND.EXE窗口粘贴您的netsh命令,然后按Enter。
  3. 如果没有显示错误信息,命令工作。
  4. 在Web浏览器中去http://your-up:8001看看它的工作原理。

Windows事件日志可能有信息,以帮助找到故障的原因。


0
投票

如果没有按预期工作netsh的港口代理,那么你应该核实以下,最好的顺序:

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

Make sure the port proxy is properly configured

这可能似乎是微不足道的,但为了以防万一,花时间审查你的配置,你再往前走了。

从任一命令提示符或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

仔细查看这些设置。请确保您确实可以连接到该地址上该列表的右侧,从本地计算机。例如,你可以在本地打开Web浏览器,达到192.168.0.100:80?如果协议是HTTP不是,然后使用telnet:telnet 192.168.0.100 3306(见here如何在Windows上安装Telnet客户端)。

然后,在左侧的值是否正确?是IP地址有效为您的机器?是不是你尝试的端口号来连接,从外部机?

Start or restart the related Windows service

在Windows的最新版本,netsh的端口代理被命名为“IP助手”或“iphlpsvc” Windows服务来处理。如果该服务被停止代理会显然是不行的。我也面临着横空出世,重新启动该服务可以解决的情况。

要做到这一点在Windows的最新版本:

  1. 打开任务管理器,然后去到服务选项卡。
  2. 在“名称”一栏,找到命名为“iphlpsvc”或“IP助手”的服务。
  3. 右键单击该服务,然后选择重新启动。如果无法重新启动可用,则该服务可能停止,实际上已经被启动,因此选择开始。

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

Ensure support for IPv6 is installed

对IPv6协议的支持才能启用netsh的港口代理,其中包括对IPv4到IPv4 proxys(请参阅Microsoft的支持文章here)。

从任一命令提示符或PowerShell提示符,运行下面的命令:

netsh interface ipv6 install

Make sure the port is not blocked by a firewall

本地防火墙可能会潜在地阻止端口到达IP帮助服务之前也。为了验证这一假设,暂时禁用任何本地防火墙(包括Windows'本地防火墙),然后重新测试。如果这样的作品,则只需添加一个端口排斥到您的防火墙配置。

© www.soinside.com 2019 - 2024. All rights reserved.