Apache Web 伺服器無法公開存取

Apache Web 伺服器無法公開存取

我有一個在 Debian 桌面上運行的 Apache (2.4.10) Web 伺服器(Jessie,8)。

桌面有靜態本機 IP 位址 (192.168.xx),我的 ISP 也固定了我的 WAN(公用)IP 位址 (82.xxx)。已新增連接埠 80 到此桌面的連接埠轉送。

我可以毫無問題地從 LAN 訪問該網頁,但無法使用 WAN 地址從家中或家外訪問該網頁:我收到來自 Chrome 的“網頁不可用 - ERR_CONNECTION_REFUSED”。請注意,我可以使用 WAN 位址(在另一個連接埠上)開啟路由器。

網頁本身只不過是帶有 Hello World 的「index.html」。

我嘗試關閉 iptables 防火牆,但沒有成功。我嘗試了與 80 不同的端口,但沒有成功。我已經打電話給ISP了,80埠沒有被封鎖。我已經用谷歌搜尋自己瘋了。有人對如何使網站可訪問有任何建議嗎?

答案1

我解決了!

感謝 Moonpoint,我意識到問題出在連接埠轉送上。所以我又看了一眼,發現對於連接埠 80 規則,「WAN 介面」設定為「ADSL」(預設)。我不知道這意味著什麼,所以我一直沒有改變它。我嘗試了不同的選項並將其設定為“ETHWAN”解決了該問題。我現在可以公開訪問該網頁,並且我添加了一個 no-ip DDNS,它也可以工作。

編輯:現在我了解到 ETHWAN WAN 介面只是由我的 ISP 添加到路由器的接口,並且是玻璃纖維連接的接口。

答案2

當您聲明您嘗試關閉 iptables 防火牆但不成功時,您的意思是您停用了 iptables 防火牆,但仍然無法從外部 IP 位址連接到 Web 伺服器,還是您的意思是您無法停用主機基於iptables的防火牆?檢查您網站的 Apache 訪問和錯誤經驗,看看這些文件中是否記錄了從外部 IP 位址存取系統的任何嘗試。檢查您的 Apache/etc/httpd/conf/httpd.conf文件。文件中的任何位置是否有類似以下內容的部分:

<Directory /home/www/example>
      Order Deny,Allow
      Deny from all
      Allow from 192.168 127.0.0.1
 </Directory>

在上面的範例中,除了本機位址 127.0.0.1 和同一 LAN 上的系統(即 192.168.xxx.xxx)是不被允許的。如果您想讓伺服器可供全世界訪問,「拒絕所有人」將是不合適的。

您可以將問題隔離到執行 Apache Web 伺服器的 Debian 系統或設定連接埠轉送的路由器(前提是沒有網路設備介入),方法是使用tcp轉儲Debian Linux 系統上的指令。以 root身份發出命令tcpdump -i any port 80。這將導致 tcpdump 僅查找任何介面上連接埠 80 的連接,而忽略其他流量。然後嘗試從外部位址連接到 Web 伺服器。如果 tcpdump 顯示連接埠 80 的流量到達 Linux 系統,則連接埠轉送運作正常。如果沒有,您可能有連接埠轉送問題,因此請仔細檢查您是否將連接埠 80 轉送至 Web 伺服器的正確 IP 位址。

相關內容