題 無法在我的CentOS Virtualbox中訪問Apache


我正在使用CentOS設置VirtualBox,因此我可以在Linux機器上測試我的所有代碼等,而不是我用於開發的Windows。

我剛剛使用SSH工作(我通過SSH連接到localhost:2222,它將端口轉發到虛擬機端口22)。

我正在嘗試用Apache做同樣的事情,以啟動並運行Web服務器。

我已經將localhost上的8888端口轉發到我的CentOS Virtualbox中的80端口,但我似乎無法在瀏覽器中訪問localhost:8888的任何內容?

Apache也一定在運行:

ps -e | grep httpd
2108? 00:00:00 httpd
2110? 00:00:00 httpd
2111? 00:00:00 httpd
2112? 00:00:00 httpd
2113? 00:00:00 httpd
2114? 00:00:00 httpd
2115? 00:00:00 httpd
2116? 00:00:00 httpd
2117? 00:00:00 httpd

iptables的:

[root@CentOS /]# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Fri Jan 27 18:26:36 2012
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [32:2278]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Fri Jan 27 18:26:36 2012

Nmap輸出:

[root @ CentOS conf] #nmap localhost

在2012-01-28 00:58 WST啟動Nmap 5.21(http://nmap.org)
localhost的Nmap掃描報告(127.0.0.1)
主機已啟動(延遲0.0000090秒)。
主機名localhost解析為3個IP。僅掃描127.0.0.1
未顯示:993個已關閉的端口
港口國服務
22 / tcp打開ssh
23 / tcp打開telnet
25 / tcp打開smtp
80 / tcp打開http
111 / tcp打開rpcbind
443 / tcp打開https
631 / tcp open ipp


4
2018-01-27 13:35


起源




答案:


我相信默認的CentOS防火牆只允許端口22用於SSH。由於我假設您在受保護的網絡上運行VirtualBox VM,因此以root身份運行以下命令以禁用防火牆是安全的:

/etc/init.d/iptables stop

這假設您正在Windows主機上進行端口重定向。如果你正在使用iptables進行重定向,那麼這也將終止你的重定向。您可以發布/ etc / sysconfig / iptables,這樣我們就可以查看您的防火牆配置,看看您的計算機是否阻塞了端口80。


10
2018-01-27 14:49



停止了iptables,並在OP中發布了該文件 - user1045696
防火牆規則很好看。您可以從VM連接到VM上的端口80嗎? Telnet很適合測試它。 telnet [vm ip] 80和telnet 127.0.0.1 80。試試兩者。如果它只連接到127.0.0.1那麼apache只綁定到loopback接口(lo) - chuck
您對httpd.conf文件中的“Listen”行有什麼用處?您是否正在嘗試綁定到某個IP地址的虛擬主機? - chuck
無論是127.0.0.1還是[vm ip]都不適用於telnet到端口80.它可以實現 連接到[ip],然後說 外部主機關閉連接。對於聽線,它說 listen 80 - user1045696
我搞砸了。我應該告訴你運行netstat -tlpn這會給你一個機器上所有監聽TCP端口的列表以及正在進行監聽的程序。 - chuck


在全新安裝的CentOS7上, 安裝Apache和啟動服務後執行以下操作:

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

現在可以從主機訪問Apache。


3
2018-01-24 13:18





您不應該使用localhost,而是使用其IP地址。


2
2018-01-27 14:29



出於某種原因,這是行不通的。我試過SSHing到10.0.2.15:22並且它不起作用,只是在putty中出現了一個空白屏幕。但是然後localhost:2222工作正常,我不太清楚為什麼。 - user1045696
你做了一個前進到2222的端口,所以你為什麼要嘗試ssh到22端口? - Metalmini
SSH工作正常,但我將localhost端口2222轉發到10.0.2.12:22(這是我的虛擬機) - user1045696
10.0.2.12是VM的專用網絡。這很可能是與主機IP地址不同的子網。你甚至無法ping你的VM。 - Chloe


這個問題比我搜索的更詳細,但對於所有未來的訪問者:

在標準的新安裝的CentOS(在我的casae 6.4中) iptables service(防火牆)阻止從localhost外部訪問apache。

打字 service iptables stop 停止服務,應該允許訪問。


1
2017-11-24 21:23





您可能在端口8888上有其他東西或在Windows上有一些防火牆(包括一個包括在內)

它們有時甚至會在10個連接之後阻止本地MS-SQL服務器。無需想像 - 只需挖掘防火牆阻塞日誌。

+++

您是否看過防火牆的拒絕日誌或者只是繼續念誦? 大多數防病毒軟件會試圖通過行為來阻止大量郵件蠕蟲和其他惡意軟件。就像邁克菲在30分鐘內收到5封郵件後阻止雷鳥....


0
2018-01-27 14:18



我會嘗試改變端口。但是,我看不到防火牆影響任何東西,因為SSH工作正常? - user1045696