Jos*_*hua 22 portforwarding netsh windows-networking
我正在尝试使用NETSH PORTPROXY命令将发送到192.168.0.10
端口8001上的XP PC(IP )的数据包转发到端口80(我是一个侦听端口80的XAMPP Apache服务器).
我发布了以下内容:
netsh interface portproxy add v4tov4 listenport=8001 listenaddress=192.168.0.10 connectport=80 connectaddress=192.168.0.10
Run Code Online (Sandbox Code Playgroud)
显示全部确认所有内容都已正确配置:
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
Run Code Online (Sandbox Code Playgroud)
但是,我无法访问apache网站http://localhost:8001
.我可以通过直接端口访问http://localhost
,如下所示.
此外,我还尝试了以下方法:1 http://192.168.0.10:8001
.使用以下链接从远程PC访问Apache网站:.防火墙已关闭.2.将listenaddress和connectaddress更改为127.0.0.1
.
没有进一步的信息,我找不到解决问题的方法.有没有办法调试NETSH PORTPROXY?
注意:顺便说一下,如果你想知道为什么我这样做,我实际上想要将远程MySQL客户端连接从自定义端口映射到默认的MySQL服务器端口3306.
Jos*_*hua 35
我设法通过发布:
netsh interface ipv6 install
Run Code Online (Sandbox Code Playgroud)
另外,出于我的目的,不需要设置listenaddress并且更好地设置connectaddress = 127.0.0.1,例如
netsh interface portproxy add v4tov4 listenport=8001 connectport=80 connectaddress=127.0.0.1
Run Code Online (Sandbox Code Playgroud)
jwa*_*ins 11
如果netsh
的端口代理没有按预期工作,那么您应该验证以下内容,最好按该顺序:
这可能看起来微不足道,但为了以防万一,在继续之前花点时间检查您的配置。
从命令提示符或 PowerShell 提示符运行以下命令:
netsh interface portproxy show all
Run Code Online (Sandbox Code Playgroud)
结果应该是这样的:
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
Run Code Online (Sandbox Code Playgroud)
仔细检查这些设置。确保您确实可以从本地计算机连接到该列表右侧的地址。例如,您能否在本地打开 Web 浏览器并访问192.168.0.100:80
? 如果协议不是 HTTP,则使用 telnet:(telnet 192.168.0.100 3306
请参阅此处了解如何在 Windows 上安装 Telnet 客户端)。
那么,左侧的值是否正确?IP 地址对您的机器有效吗?这是您尝试从外部机器连接到的端口号吗?
在最新版本的 Windows 上,netsh
的端口代理由名为“IP Helper”或“iphlpsvc”的 Windows 服务处理。如果该服务停止,代理显然将不起作用。我也遇到过通过重新启动该服务可以解决的情况。
要在最新版本的 Windows 中执行此操作:
在以前版本的Windows,寻找的服务在管理工具,在控制面板里面。
在早期版本的 Windows 上(当然是 Windows XP,直到 Windows 10 的一些早期版本,显然,虽然这不清楚),netsh
端口代理功能(包括 IPv4 到 IPv4 代理)实际上是由IPV6MON.DLL
仅在启用 IPV6 协议支持时才加载的 DLL ( )。因此,在这些版本中,为支持IPv6协议要求,以使netsh
的端口进行代理(请参阅Microsoft支持文章在这里)。
从命令提示符或 PowerShell 提示符运行以下命令:
netsh interface ipv6 install
Run Code Online (Sandbox Code Playgroud)
如果您收到指示interface ipv6 install
未找到该命令的错误,则意味着您使用的是最新版本的 Windows,其中netsh
的 IPv6 支持是隐式的,无法禁用。
本地防火墙甚至可能在端口到达 IP 帮助程序服务之前就已阻止它们。为了验证这个假设,暂时禁用任何本地防火墙(包括 Windows 的本机防火墙),然后重新测试。如果可行,那么只需在防火墙配置中添加端口排除即可。
小智 6
我有你的问题.我刚才解决了.有一个名为" IP Helper " 的Windows服务提供功能隧道连接.你应该确保它已经开始了.
归档时间: |
|
查看次数: |
75181 次 |
最近记录: |