Windows RRAS 用于端口转发

Windows RRAS 用于端口转发

我在内部网络上有一些 Windows 机器。

其中一个(位于 192.168.164.14/24)有一个 HTTP/HTTPS 服务器,分别监听常用端口 80 和 443。

由于一个奇怪的限制,我需要让其他一些机器通过另一台服务器(位于 192.168.160.25/24)连接到此服务器。我希望这是完全透明的;这台机器应该只是将请求转发到 Web 服务器,并将 Web 服务器的回复转发回客户端。

Windows Server 2003 R2 似乎有一种内置的方法来执行此操作 - 路由和远程访问服务。

我使用向导配置了 RRAS:自定义配置 > NAT 和基本防火墙、LAN 路由。

在我设置的RRAS工具中的“NAT/基本防火墙”下(在192.168.160.25/24的网卡上):

  • 连接到互联网的公共接口
    • 在此接口上启用 NAT
  • 服务和端口
    • 安全 Web 服务器 (HTTPS)
      • 公众号:在此界面
      • 协议:TCP
      • 传入端口:443
      • 私有地址:192.168.164.14
      • 传出端口:443
    • Web 服务器 (HTTP)
      • 公众号:在此界面
      • 协议:TCP
      • 传入端口:80
      • 私有地址:192.168.164.14
      • 传出端口:80

但是,此配置不起作用 - 192.168.160.25 机器不会接受端口 80 或 443 上的连接。

另一种策略是使用 netsh portproxy,但它也不起作用:

C:\>netsh interface portproxy show v4tov4

Listen on IPv4:             Connect to IPv4:

Address         Port        Address         Port
--------------- ----------  --------------- ----------
192.168.160.25   80          192.168.164.14   80
192.168.160.25   443         192.168.164.14   443

C:\>netstat /na | find "80"

C:\>netstat /na | find "443"

我错过了什么?我不应该使用 IPV6安装;谷歌搜索显示这是导致失败的常见原因。任何帮助都值得感激。

答案1

我能够解决这个问题。它最终与 IPv6 有关。

微软的文档,在 IPv4 和 IPv4 地址之间进行端口重定向时,NETSH INTERFACE PORTPROXY 不起作用,描述了如果 IPV6MON.DLL 没有出现在netsh interface portproxy show helper命令的输出中,端口代理可能会失败。

然而,微软的文章并没有提到,如果所使用的网络适配器上没有安装 IPv6 协议,事情仍然可能失败。

我现在已经在多个 Win2K3 服务器上验证了以下步骤可以解决问题:

  • 开始 > 运行 > control ncpa.cpl
  • 右键单击适配器并选择属性
  • 按“安装”按钮,选择“协议”,然后找到 Microsoft 的 TCP/IPv6 项目
  • 关闭适配器属性窗口

TCP/IPv6 项可以取消选中或选中;它只是必须存在。

相关内容