让IIS6不监听一个IP

让IIS6不监听一个IP

我有另一项服务需要使用服务器的一个 IP 上的多个端口。当 IIS 启动时,它会使用所有未使用的 IP,因此另一项服务无法绑定其 IP。如果我先启动另一项服务,它可以使用该 IP,但我不能依赖服务的启动顺序,也不能确保它们在某个时候不需要重新启动。有什么方法可以让 IIS 完全不使用 IP?

答案1

显然,在 IIS6 中,UI 设置已损坏,需要进行此操作使用 httpcfg其要点如下:

键入以下内容,其中 xxx.xxx.xx 是您要添加的 IP 地址:

httpcfg set iplisten -i xxx.xxx.x.x

成功后,Httpcfg 将返回以下内容:HttpSetServiceConfiguration 已完成,返回 0

要查看其他状态代码,请参阅 Httpcfg 帮助。添加 IP 地址后,使用以下命令列出它:

httpcfg query iplisten

Httpcfg 返回以下内容:IP:xxx.xxx.xx 重新启动服务

答案2

我终于找到了答案:

http://devlicio.us/blogs/billy_mccafferty/archive/2008/09/02/prevent-iis-from-binding-to-all-assigned-ip-addresses.aspx

有一个名为的实用程序httpcfg.exe可用于指定 IIS 将监听哪些 IP。

答案3

我下载了支持工具(http://msdn.microsoft.com/en-us/library/windows/desktop/aa364478%28v=vs.85%29.aspx) 并使用 httpcfg.exe,如几篇帖子中所述(即停止 http 服务,添加所需的 ip 号码,但不包括我需要在其他地方绑定的 ip 号码)。我到了

httpcfg query iplisten

不再列出我的排除号码。但是,运行

netstat -anb -p tcp >netstat.txt

查看 netstat.txt 发现 PID 4 仍在通过 0.0.0.0 监听所有 IP 号上的端口 80(和 443)。因此,我需要分离出来的 IP 号还不能使用。

最后一步是明确删除 0.0.0.0 — — 即使它不在 iplisten 列表中。

net stop http /y
httpcfg.exe delete iplisten -i 0.0.0.0:80
iisreset.exe

效果立竿见影。顺便说一句,无需重启服务器。

答案4

当然。启动 Internet 信息服务管理器。展开直到在“网站”下看到您的网站。

对于每个站点,右键单击并选择属性。在“网站”选项卡上,单击 IP 地址旁边的“高级”,然后仅填写要使用的地址(而不是默认的“所有未分配的地址”)

相关内容