一个 IIS 服务器上的多个站点需要不同的传出 IP 地址

一个 IIS 服务器上的多个站点需要不同的传出 IP 地址

我有一个 IIS 服务器,上面设置了多个网站,每个网站都有自己的 IP 地址。它可以很好地将传入流量路由到正确的站点。但是,传出的流量似乎都来自物理机器的 IP 地址,而不是各个站点。它们需要向外界显示为单独的 IP 地址,因为它们与之通信的服务仅通过 IP 地址来区分。

也许有人已经设置了 NAT 服务器来执行此操作?有什么想法吗?谢谢!

答案1

我认为仅使用 IIS 无法实现该功能。您可以放入某种前端 NAT 盒(例如,带有 iptables 的 Linux 计算机),在 IIS 盒上的不同 TCP 端口上运行各个站点,然后将它们 NAT 到 Linux 计算机上的不同 IP,这是一种快速而简单的解决方案。但是,IIS 和 Windows 不会执行您想要的操作。

iptables 规则执行您要查找的操作非常简单。Cisco 路由器的 NAT 以及大量其他嵌入式 NAT 实现也可以做到这一点。

答案2

当您通信时,您处于哪个层级?如果您处于 TCP 层级,则可以设置要使用的接口。

答案3

这取决于您发出的请求是什么。如果您用来发出请求的设备支持此功能,那么您可以要求它绑定到特定地址,而不是默认地址。

我很确定你不能使用常见的 IIS 方法(比如使用 WinHTTP 库)来做到这一点。

在其他工具/库中,查找“绑定地址”选项,例如从 wget 手册页中获取的选项:

--bind-address=ADDRESS
    When making client TCP/IP connections, bind to ADDRESS on the local
    machine. ADDRESS may be specified as a hostname or IP address. This
    option can be useful if your machine is bound to multiple IPs.

答案4

在 IIS 中,这可能听起来很挑剔,但网站不会进行出站通信;托管在网站容器中的应用程序会进行出站通信。

对您的应用进行编程以使用特定 IP,这将会发生。IIS 不直接提供出站通信 API,因此它不会帮助您。

相关内容