由于我更换了 ISP,当前的路由器 (ADB P-RG A4202N) 不允许我使用远程 IP 或无 IP 主机从本地网络访问我的 Web 服务器 - 它会将我重定向到路由器配置页面。不仅是我的服务器 PC,而且连接到同一 LAN 的所有其他设备都无法使用远程 IP 访问我的网站(内部 IP 工作正常)。
但是,如果我从远程主机访问我的网页 - 一切都正常。
我该如何解决这个问题?我想在访问我的网站时使用我的远程 IP/主机,即使是在我的 LAN 内。目前,我127.0.0.1 myremoteip
在主 PC 上的 hosts 文件中添加了一条规则,但我不想保留这个解决方法。
我的 Web 服务器在 Win7 上运行,出于测试目的,防火墙已完全禁用。端口转发正在运行。
答案1
我假设这是在 NAT 连接之后。在这种情况下,您需要启用NAT 反射允许内部流量到您网站解析到的外部 IP 地址。大多数路由器默认不启用此功能,许多消费者防火墙甚至在其开箱即用的固件中都不支持此功能。如果没有此功能,从 LAN 到您的 WAN 地址的数据包将不受 NAT 规则的约束,但会被设备过滤。
我简单看了看路由器手册,但没有看到任何关于此功能的提及。这可能意味着它不受支持,需要替代设备。
在这些情况下,配置分割 DNS在您的内部网络上解析站点的不同 IP 地址,使您能够直接与计算机通信,而无需流量通过防火墙。这也消除了对连接是否打开以访问站点的任何依赖,如果必须使用公共名称服务器来解析 DNS 中的名称,则 NAT 反射方法不提供此功能。如果您有可以配置的本地解析名称服务器,则拆分 DNS 方法很有用,但文件方法HOSTS
对于单台计算机同样有效。
答案2
看起来是这样的:
路由器的自动配置只为外部接口创建了重定向规则。您尝试连接到路由器的 ext ip。数据包出现在其本地接口上,目的地是 ext ip。路由器看到目标 ip 属于它,它看到它打开了 80 端口(使用路由器配置站点),因此它将数据包传递到它自己的 Web 服务器。
分割 DNS 可能是更好的方法,但如果不可能,请尝试一下。
禁用路由器 Web 界面或将其置于其他端口可以解决此问题,但这种可能性很小。
或者将路由器配置为 dnat 连接(从本地接口到 ext ip)到本地 web 服务器。然后,为了让 web 服务器不直接响应本地客户端,将传出连接(从本地网络到本地网络端口 80)拦截到任何虚假地址(比如说 1.2.3.4)。这样 web 服务器将接收来自 1.2.3.4 的连接并通过路由器响应,路由器将恢复 ip 为原始 ip。不知道您的路由器是否支持所有必要的功能。
答案3
我有同样的问题,我通过以下方法编辑 hosts 文件解决了这个问题
192.168.1.100 www.yourdomain.com yourdomain.alias1 your domain.alias2
使用本地服务器 LAN IP 更改 IP 注意:这将允许您从同一台服务器访问您的网站,如果您有多个网站,您可能无法从同一网络中的其他机器访问它,请在相同的行中添加您的域名