我在我的笔记本电脑(IIS7,vista)上做了一个网络服务器,它在端口 81 上运行,我使用 everydns.com 的 DNS 服务将 mydomain.com 指向我的网络服务器,一切都很顺利,我的朋友可以通过 URL 访问我的网站http://mydomain.com:81,但我不能(我在运行网络服务器的同一台机器上访问网站),网络浏览器总是说无法连接。发生了什么?
答案1
您的路由器可能拒绝环回连接。由于其他人可以通过端口 81 连接到指定主机,因此当您尝试连接时,连接可能会在路由器上转换到外部,然后路由器拒绝将其转换回内部网络(用于您的家庭服务器)。
如果是这种情况,添加到 hosts 文件的建议可以解决此问题,但它们并未解决核心问题。
您可以检查路由器配置上的高级网络设置(或防火墙设置),并确保环回连接没有被阻止。
答案2
快速而肮脏的解决方案是添加一个条目你的 hosts 文件。
答案3
这几乎肯定是因为您的路由器妨碍了您的工作 - 您对网络服务器的请求将发送到您的外部 IP 地址,就路由器而言,这很奇怪,因此需要将其阻止(不确定为什么,可能是出于安全考虑,也可能是其他原因)但关键点是,从您的机器和网络内部来看,IP 地址是您的内部网络的 IP 地址,而不是公共网络上的 IP 地址。
要解决这个问题,您需要告诉您的机器,http//mydomain.com 的 IP 地址是本地的,有两种方法可以做到这一点:1)向您的 hosts 文件中添加一个条目 2)如果您有一个本地 DNS 服务器(如果您在笔记本电脑上运行该服务器,则可能不太可能)并将其配置为将 mydomain.com 指向您的笔记本电脑的 IP 地址,而不是从互联网上检索该值。
如果这还不够的话,我们将需要了解更多有关您的网络布局的信息。
我要补充一点,这是一个开发人员的问题,因为我首先必须解决这个问题的原因是为了支持一些需要暴露给外部访问的内部开发支持内容……
答案4
当您在本地测试时,您确定 URL 指定正确吗?如果您没有正确指定 URL,Internet Explorer 将给出一个不太有用的错误。具体来说,
http://mydomain:81
将会起作用,而
mydomain:81
不会。很多用户已经习惯在输入域名时不加 http://,因为正常情况下浏览器会加上这个,但如果指定了端口号,IE 不会自动加上 http://。