需求:在win10系統上安裝了VMware,在VMware上安裝了centos7操作系統,現在需要在win10宿主機上訪問虛機centos7中的50070端口。由於宿主機不能直接訪問虛機中的端口,需要通過vmware把虛機中的端口映射到宿主機未被佔用的端口上,然後宿主機就可以訪問虛機端口了。
步驟
1、虛機訪問端口
在虛機中啓動hadoop服務,可以通過50070端口訪問HDFS的文件系統,訪問界面如下:
2、vmware端口映射
把虛機中的50070端口映射到主機的50070端口上。操作步驟如下:
設置vmware,編輯 -> 虛擬網絡編輯器,彈出虛擬網絡編輯器界面
首先點擊“更改配置”獲取管理員權限,然後選中VMnet8模式,然後點擊"NAT設置",彈出映射端口界面
把虛機192.168.85.137映射到主機的50070端口上,設置完畢,點擊確認。
3、在宿主機上訪問虛機中hadoop服務
在宿主機上打開瀏覽器,發送127.0.0.1:50070請求,訪問頁面如下:
通過以上步驟成功在宿主機上訪問虛機50070端口。
問題
最開始按如上設置後,並沒有成功,最後發現是防火牆的問題。當你也碰到相同問題時,有可能是網絡或防火牆問題。解決方法如下:
1、宿主機ping虛機
ping 192.168.85.137
發現可以ping的通,網絡沒有問題
2、抓包
在虛機中抓包,抓取宿主機發送127.0.0.1:50070的包,查看是否抓取到。在虛機中啓動抓包命令:tcpdump -i eth0 -nn 'host xxx.xxx.x.xxx'
,其中xxx.xxx.x.xxx爲樓主宿主機ip地址,發現抓取包失敗,說明虛機並沒有收到宿主機的請求。
3、檢查虛機防火牆
檢查虛機的防火牆狀態,執行
systemctl status firewalld.service
如果紅色框起的active狀態爲running狀態,表示防火牆在啓動中。
下面關閉防火牆,執行
systemctl stop firewalld.service
從圖中可以看出active的狀態變成了inactive(dead)狀態,說明虛機防火牆已關閉。
經過以上三步的驗證和設置,然後從新在宿主機中訪問50070端口,成功。