我在IIS上主页上有一个ASP.NET网站.在我的家庭网络之外,我可以看到网站,但在网络内部,它给我一个404错误.我可以将该网站浏览为localhost.这似乎是一个DNS问题,只是不知道如何解决它.
这几乎肯定是一个NAT问题.我假设您的Web服务器位于NAT路由器后面,并且您已将一些端口(可能是80)从路由器的外部接口转发到服务器计算机上的端口80.我还假设您尝试使用解析为外部IP的名称(可能是动态DNS名称)访问您的网站,或者您尝试使用该外部IP直接访问它.这可能不会开箱即用,因为大多数NAT路由器只会使端口映射可用于路由器外部接口上的数据包.
如果上述情况属实,则有四种可能的解决方案:
查看路由器的配置并尝试查找类似于"NAT loopback","Ext-int loopback"等的内容.这将指示路由器处理来自内部接口并发往外部IP的数据包,就像处理来自外部接口的数据包一样,有效地正确地回送流量.这将触发端口转发,您的网站将工作.并非所有路由器都有此选项,但如果您使用此选项,则它将是最强大的解决方案.如果你没有,你也可以尝试将其固件更改为支持路由器的免费固件之一(Tomato,OpenWRT,DD-WRT等)我已经成功地使用了Tomato这样的场景.
当你在路由器后面时使用内部IP,在外面时使用外部IP.
将您正在使用的DNS名称添加到您自己的主机文件中,使其与内部IP相对应.当从您自己的主机访问名称时,这将自动实现(3).您必须为路由器后面的每个主机重复此操作.
在路由器后面运行您自己的DNS服务器,使其声明对DNS记录的权限并将其解析为内部IP,同时将其他DNS查询转发到您的实际名称服务器.