无法从本地网络访问 Apache 虚拟主机
Apache Virtual Host not accessible from local network
我已经使用 Apache2 设置了一个虚拟主机,配置如下:
<VirtualHost *:8080>
ServerName example.com
DocumentRoot /var/www/example.com
</VirtualHost>
可以从外部访问该网站。
example.com
但是如果我从本地网络中的另一个系统输入 example.com
,它会打开我的路由器配置页面。
我将我的路由器端口 80 转发到我网络中的服务器端口 8080。
但我也想从本地网络中的其他系统访问该网站。这可能吗?
您的路由器可能不支持“NAT 环回”,您可以通过路由器的 WAN IP 访问本地网络上的服务。大多数消费级路由器不支持 NAT 环回。
你只有2个选项:
将您的路由器更改为支持“NAT 环回”的路由器。
例如。 Which NETGEAR routers support NAT loopback
改为通过内部 IP 地址访问您的服务。您可以使用本地 HOSTS 文件覆盖 public DNS。
我通常“解决”这个问题并让 LAN 上的所有 machines/devices 都可以访问站点的方法是定义一个 local
子域 (A
记录)在指向本地 IP 地址的 public DNS 中。因此,当在 LAN 上时,我改为通过子域 local.example.com
访问站点。
Security SE 的相关问题,其中更详细地介绍了网络流量的实际情况:
我已经使用 Apache2 设置了一个虚拟主机,配置如下:
<VirtualHost *:8080>
ServerName example.com
DocumentRoot /var/www/example.com
</VirtualHost>
可以从外部访问该网站。
example.com
但是如果我从本地网络中的另一个系统输入 example.com
,它会打开我的路由器配置页面。
我将我的路由器端口 80 转发到我网络中的服务器端口 8080。
但我也想从本地网络中的其他系统访问该网站。这可能吗?
您的路由器可能不支持“NAT 环回”,您可以通过路由器的 WAN IP 访问本地网络上的服务。大多数消费级路由器不支持 NAT 环回。
你只有2个选项:
将您的路由器更改为支持“NAT 环回”的路由器。
例如。 Which NETGEAR routers support NAT loopback改为通过内部 IP 地址访问您的服务。您可以使用本地 HOSTS 文件覆盖 public DNS。
我通常“解决”这个问题并让 LAN 上的所有 machines/devices 都可以访问站点的方法是定义一个 local
子域 (A
记录)在指向本地 IP 地址的 public DNS 中。因此,当在 LAN 上时,我改为通过子域 local.example.com
访问站点。
Security SE 的相关问题,其中更详细地介绍了网络流量的实际情况: