我想利用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。
我设法得到它发出的工作:
netsh interface ipv6 install
此外,对于我的目的,并不需要设置的ListenAddress和更好的设置connectaddress = 127.0.0.1,例如
netsh interface portproxy add v4tov4 listenport=8001 connectport=80 connectaddress=127.0.0.1
这个问题我已经和你在一起。我刚才解决它。有一个名为“IP助手”供应的funcions隧道连接的Windows服务。您应该确保它已经启动。
netsh
命令,然后按Enter。http://your-up:8001
看看它的工作原理。Windows事件日志可能有信息,以帮助找到故障的原因。
如果没有按预期工作netsh
的港口代理,那么你应该核实以下,最好的顺序:
这可能似乎是微不足道的,但为了以防万一,花时间审查你的配置,你再往前走了。
从任一命令提示符或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地址有效为您的机器?是不是你尝试的端口号来连接,从外部机?
在Windows的最新版本,netsh
的端口代理被命名为“IP助手”或“iphlpsvc” Windows服务来处理。如果该服务被停止代理会显然是不行的。我也面临着横空出世,重新启动该服务可以解决的情况。
要做到这一点在Windows的最新版本:
在以前的Windows版本,查找服务中的管理工具,在控制面板里面。
对IPv6协议的支持才能启用netsh
的港口代理,其中包括对IPv4到IPv4 proxys(请参阅Microsoft的支持文章here)。
从任一命令提示符或PowerShell提示符,运行下面的命令:
netsh interface ipv6 install
本地防火墙可能会潜在地阻止端口到达IP帮助服务之前也。为了验证这一假设,暂时禁用任何本地防火墙(包括Windows'本地防火墙),然后重新测试。如果这样的作品,则只需添加一个端口排斥到您的防火墙配置。