問題描述:
在VirutalBox中安裝了CentOS操作系統,物理主機沒有使用交換機或者是路由器等設備。
需求:
在物理機Windows里可以使用ssh連接虛擬機,並且可以訪問虛擬機提供的web服務。
前言:
一般情況下,在Windows里使用VirutalBox虛擬出來的Linux虛擬機的網絡設置應該使用橋接的方式,這樣虛擬機和物理機器,可以並行的存在。
處於同一局域網可以相互Ping通,但前提是物理機器使用了交換機或者是路由器,如果沒有使用這些設備的話,這兩個系統就沒辦法簡單的互Ping了。
解決辦法:
VirtualBox設置在NAT模式下的端口轉發規則
1,打開VirtualBox,右擊Linux虛擬機,選擇設置選項。在設備面板中,選擇網絡,網卡1連接方式為網絡地址轉換NAT,點擊高級,顯示高級設置,如下圖:
2,點擊端口轉發按鈕打開端口轉發規則列表,可以添加或刪除規則。
規則中一些術語的解釋:
主機:物理主機系統
子系統:VirtualBox虛擬出來的系統
主機端口:物理主機系統的端口,將此端口轉發到子系統端口
子系統端口:虛擬機子系統的端口
下面以添加SSH連接規則為例:
點擊右邊的綠色加號按鈕,規則列表中就會添加一條規則。更改其名稱為ssh(這個名稱可以隨便寫的)。協議選擇TCP。主機IP和子系統IP留空不用填寫。 主機端口填寫2222,也可以更改為其它端口,只要不與其它端口沖突即可,物理主機SSH連接虛擬機時將使用此端口。子系統端口填寫22,因為SSH連接 默認是使用22端口的,所以這個是不能隨意填寫的,例如最常用的像http協議的話默認是80端口,而ftp協議默認是21端口。填寫完畢,點擊確定按鈕保存設置。
打開Linux虛擬機,安裝SSH服務並開啟,關閉防火牆。在物理主機Windows系統里就可以使用Putty或者SecureCRT等軟件連接 Linux虛擬機了,SSH地址寫localhost或127.0.0.1,端口填寫剛才在Virtualbox設置端口轉發規則中的主機端口,上例中是使用了2222。如果沒有連接成功,請檢查Linux虛擬機是否已經安裝並開啟SSH服務,並要關閉防火牆。