我正在尝试使用服务器 IP 访问我的 IIS 测试站点。在内部我没有问题,但在外部它尝试了一段时间然后超时。
我已经运行了 Shields Up,它显示没有打开的端口。这是一台运行 Windows Server 2003 的 1&1 VPS 服务器,所以我认为中间不会有防火墙阻塞。我在某处读到我可能必须在管理工具> 本地管理设置中进行更改以允许访问端口 80,但我不知道从哪里开始查看这里。
编辑:
我正在使用其外部 IP 地址访问服务器,这与我用于登录 RDP 的地址相同。1&1 还为所有 VPS 提供了一个解析到服务器的子域,这对于 RDP 来说也很好,但在端口 80 上使用 IIS 会失败。在服务器本身上同时使用 IP 和子域会成功返回站点。
您是否检查过 Windows 防火墙是否已打开?如果是,您应该禁用它或(更好地)允许传入流量到端口 80。
另外,你在一些 NAT 后面吗?你可以很容易地检查它:在服务器上运行 IPCONFIG 并查看它的 IP 地址;如果它与外部不同,那么中间有一些 NAT,您需要您的提供商正确配置它。
最后一次机会,即使您的服务器上没有防火墙并且它实际上位于其公共 IP 地址上,实际上中间可能有一些防火墙,因此您也应该与您的提供商核实。
第一个基本测试是使用 telnet.exe 连接端口:
如果您收到“连接被拒绝”错误,则端口未打开。
WS 2003 也有防火墙:输入firewall.cpl,您应该会看到本地控制面板。
我也有 1&1 VPS,我所做的是运行安全配置向导
http://www.microsoft.com/windowsserver2003/technologies/security/configwiz/default.mspx
在经历了所有这些,并按照我想要的方式设置了所有内容之后,我能够完全控制服务器上的所有内容。
我确信有一种更复杂的方法可以做到这一点,但我对这个工具的易用性印象深刻。
您通过子域访问您的网站,如 aaa.stackoverflow.com/Default.aspx 或直接通过 ip 地址(如 xxxx/Default.aspx)?
如果您通过子域访问,则您的绑定是正确的。您在 IIS 中的 URL 是否设置为正确的 IP 地址或设置为所有 IP 地址?
您的外部 IP 地址是 NAT 到内部 IP 地址吗?
你可以从外部在端口 80 上进行 telnet 吗?
尝试打开 IIS 管理控制台,右键单击网站,属性,单击“目录安全”选项卡,然后选择“IP 地址和域名限制”的编辑按钮。
netstat -a -p tcp -n
顺便说一句,您可以在相关服务器的命令提示符下检查 IIS 是否正在侦听外部地址。除了其他答案之外,请检查您的网络接口绑定以确保 IIS 绑定到您的外部接口。