我已将 apache2 配置为使用几个虚拟主机,并正在运行 ddclient 将动态 IP 推送到主机名提供商。我已在防火墙/路由器上打开端口,所有这一切都运行正常只要我在外部网络上。
当我在本地网络上操作时,我可以使用本地 IP 或在 中设置的名称从服务器访问站点/etc/hosts
。问题是,当我尝试通过外部 IP 访问时,网络上的任何其他机器都会被拒绝连接。我搜索了路由器和服务器日志,试图找出拒绝的原因,但除了路由器日志中的简单“无效状态”之外,我找不到任何其他内容,所以我不确定它是否相关(如果这是转移注意力的借口,请见谅)。
我已禁用服务器上的本地防火墙进行测试,但仍然无法访问。
不管怎样,我使用 AT&T 并且确实发现这次讨论看起来相关。
但是,当尝试通过 Uverse 严格访问该网站时,它没有响应。我与主机提供商合作并确定这是 AT&T 的 DNS 缓存的问题,因为我们已经清除了我们这边的所有内容。
还有另一个回应另一个与他们的工作网络有关,但症状是一样的。
好的,问题是您无法从本地网络看到您的网站,但您可以在其他地方看到。这可能意味着您的本地 DNS 服务器认为它对该区域具有权威性,并且它在其区域文件中有旧地址。如果您对您的网站使用完全相同的域名,那绝对是问题所在。
如果有任何关于下一步该去哪里的建议或指导,我将非常感激。
答案1
如果您已在路由器的 DNS 中为站点手动创建了指向 WAN IP 的 A 记录,那么当您尝试访问这些站点时,它会将您路由到路由器的 WAN IP。如果您位于路由器后面,则无法访问解析为路由器的 WAN IP 的任何主机/站点。如果您已为 Apache 服务器设置端口转发,则无需为每个站点静态分配 A 记录。在 WAN 接口上为 http(s) 流量分配端口转发以指向 LAN 上的 Apache 服务器。这将允许您在网络内时在内部解析 IP,在外部时在外部解析 IP。如果同一个站点有多个 Apache 服务器,则需要设置 NAT 而不是端口转发,因为大多数非商业路由器不允许您将同一个端口转发到多个目的地。