Linux

無法從本地網路訪問 Apache 虛擬主機

  • February 12, 2021

我已經使用 Apache2 設置了一個虛擬主機,配置如下:

<VirtualHost *:8080>
   ServerName example.com
   DocumentRoot /var/www/example.com
</VirtualHost>

可以從外部訪問該網站。

example.com

但是如果我example.com從本地網路中的另一個系統進入,它會打開我的路由器配置頁面。

我將路由器埠 80 轉發到網路中的伺服器埠 8080。

但我也想從本地網路中的其他系統訪問該網站。這可能嗎?

如果您嘗試使用外部地址從內部訪問 Web 伺服器,您的路由器也必須轉換您的源地址。這稱為 NAT 反射。

如果沒有,則網路伺服器將返回流量直接發送到您的電腦,並且無法建立 TCP 連接,因為您的電腦與網路伺服器的外部地址通信並從內部地址獲取流量。

如果路由器轉換您的源地址,則網路伺服器會將返回流量發送到路由器,然後再將其中繼到您的電腦。

正如 Brandon Xavier 在評論中所建議的那樣,在內部和外部使用不同的 DNS 地址(拆分 DNS)將是另一種解決方案。這不需要 NAT 反射。

引用自:https://serverfault.com/questions/1053147