我有一台运行 IIS6 的双网卡的 Windows 2003 服务器。我可以远程访问所有内容,但无论我尝试访问哪个 IP 地址,内部网络似乎都找不到该站点。这里确实发生了几件奇怪的事情,但我将把这个问题限制在我猜测的最简单的问题上(我希望该解决方案也能解决其他问题):
- 从服务器本身,我可以使用主 IP 地址(即
http://192.168.1.2/index.htm
)访问网页,但不能使用辅助 IP 地址(即http://10.10.10.2/index.htm
)访问网页。
对两个 IP 地址进行自我 ping 操作均可行,并且 IIS 中的“网站标识”将 IP 地址设置为“(全部未分配)”... 我相信这应该将两个 IP 地址绑定到该站点。
如果我没有提供足够的有关我的设置的详细信息,我深感抱歉,但此时我甚至不知道什么是相关的......
更新
我找到了问题的一部分(感谢@SimonCatlin 为我指明了方向)。服务器没有监听 10.10.10.x 子网上的 80 端口。在我更改了这一点之后,服务器会将网页本地传送到http://192.168.1.2/index.htm
和http://10.10.10.2/index.htm
。
我使用以下命令通过所有网卡监听端口 80
> httpcfg delete iplisten -i 192.168.1.2
> httpcfg set iplisten -i 0.0.0.0
> net stop http
> net start http
> iisreset
我通过运行检查并验证了这一点netstat -oan
,它现在返回以下相关数据:
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
以下是我目前未完成的事情的列表:
- 固定的从服务器本身浏览到
http://10.10.10.2/index.htm
- 固定的从 10.10.10.x 子网浏览到
http://10.10.10.2/index.htm
- 从 10.10.10.x 子网浏览到
http://[staticIP]/index.htm
- 从 10.10.10.x 子网浏览到
http://mydomain.com/index.htm
如果我运行它nslookup mydomain.com
会返回静态IP,所以我猜测最后两点是同一个问题。
答案1
您的信息不成立(这不是批评,只是观察!)。
你能澄清一下吗...
远程(大概是从另一个路由网络,而不是 192. 和 10. 子网),您可以通过任一 IP 访问该站点吗?
从内部来看(大概是从 192. 或 10. 子网上的计算机,而不是从服务器本身),您无法访问任一站点?
从服务器控制台本身,您可以访问该站点,但只能通过 192 地址?
您没有使用域名,因此主机名标头不起作用。
您能否使用 Netstat 或 SysInternal 的 TCPView 之类的工具确认您的服务器确实在两个 IP 上侦听端口 80?从上面的远程测试来看,断言它已绑定到两个 IP。
奇怪的是,如果您可以通过两个 IP 远程访问该网站,则表明 IIS6 正在通过两个 IP 上的端口 80 提供内容。因此,在服务器本地,无需路由即可访问本地 IP,您应该会获得相同的内容。
您能否具体说明一下当失败时您收到的错误是什么?
最后,尝试在服务器上运行 SysInternals 的进程监视器。设置您的过滤器以监视网站目录(index.htm 所在的位置)中的文件访问,以及端口 80 上的网络活动。执行测试并查看您得到的结果(提示 - 设置过滤器后,启用“删除过滤事件”选项以节省 RAM)。