宿主機無法訪問虛擬機中的web服務
在Windows7宿主機中的VMware虛擬機中安裝了CentOS6.5操作系統,並且基於Nginx搭建了Web服務器,網頁剛剛搭建好的時候,通過宿主機的瀏覽器可以訪問虛擬機中的網頁。但是過了一會兒,就無法訪問了,這個問題困擾了自己好幾天,每次只好通過虛擬機快照返回到剛剛建立好web服務的那一步,這樣就能訪問了,但過了一會兒又不能訪問了。
后來通過網上查找資料,終於明白了,是一位CentOS6.5的防火牆沒有開通web服務的80端口,屏蔽了外部的訪問。有兩種方法可以使宿主機能夠訪問虛擬機的網頁:(1)關閉虛擬機中的防火牆;(2)打開web服務的80端口。
1.關閉防火牆
使用
service iptables stop
命令可以臨時關閉防火牆,這樣就可以通過宿主機訪問虛擬機中的網頁了。
iptables 防火牆一般是開機啟動的,使用上面的命令臨時關閉了防火牆后,下次開機還是會啟動防火牆軟件,可以使用如下命令禁止開機啟動防火牆:
chkconfig iptables off
但是,防火牆的目的就是為了防止外部的惡意訪問的,所以最好還是保持防火牆的運行。
2.開啟相應的端口
2.1命令行方式開啟80端口
使用如下命令可以臨時開啟80端口:
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
重啟防火牆即可生效:
service iptables restart
如果要保持80端口在下次開機時仍然是開啟狀態,那么使用如下命令保存當前的設置:
service iptables save
2.2修改iptables的配置文件來開啟端口
使用
vim /etc/sysconfig/iptables
命令修改 iptables 防火牆配置文件,添加一行內容如下:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
如圖所示:
然后重啟防火牆:
service iptables restart
這樣就可以通過宿主機訪問虛擬機的網絡服務了。