編程學習網 > 服務器 > 使用SSH連接本地虛擬機的實現方法
2015
01-27

使用SSH連接本地虛擬機的實現方法

maxresdefault

說明:?
本地虛擬機為Oracle VM VirtualBox?
虛擬系統為ubuntu?

一、VirtualBox虛擬機網絡設置

VirtualBox的提供了四種網絡接入模式,它們分別是:?
1、NAT??? 網絡地址轉換模式(Network Address Translation)?
2、Bridged Adapter??? 橋接模式?
3、Internal??? 內部網絡模式?
4、Host-only Adapter? 主機模式?

二、原理?

2.1、NAT模式?

NAT模式是最簡單的實現虛擬機上網的方式,你可以這樣理解:Vhost訪問網絡的所有數據都是由主機提供的,vhost并不真實存在于網絡中,主機與網絡中的任何機器都不能查看和訪問到Vhost的存在。?

虛擬機與主機關系:只能單向訪問,虛擬機可以通過網絡訪問到主機,主機無法通過網絡訪問到虛擬機。虛擬機與網絡中其他主機的關系:只能單向訪問,虛擬機可以訪問到網絡中其他主機,其他主機不能通過網絡訪問到虛擬機。?
虛擬機與虛擬機之間的關系:相互不能訪問,虛擬機與虛擬機各自完全獨立,相互間無法通過網絡訪問彼此。?
IP:10.0.2.15?
網關:10.0.2.2?
DNS:10.0.2.3?
一臺虛擬機的多個網卡可以被設定使用 NAT, 第一個網卡連接了到專用網 10.0.2.0,第二個網卡連接到專用網絡 10.0.3.0,等等。默認得到的客戶端ip(IP Address)是10.0.2.15,網關(Gateway)是10.0.2.2,域名服務器(DNS)是10.0.2.3,可以手動參考這個進行修改。?

NAT方案優缺點:?
筆記本已插網線時:虛擬機可以訪問主機,虛擬機可以訪問互聯網,在做了端口映射后(最后有說明),主機可以訪問虛擬機上的服務(如數據庫)。?
筆記本沒插網線時:主機的“本地連接”有紅叉的,虛擬機可以訪問主機,虛擬機不可以訪問互聯網,在做了端口映射后,主機可以訪問虛擬機上的服務(如數據庫)。?

2.2、Bridged Adapter模式?

通過主機網卡,架設了一條橋,直接連入到網絡中了。它使得虛擬機能被分配到一個網絡中獨立的IP,所有網絡功能完全和在網絡中的真實機器一樣。?
虛擬機與主機關系:--可以相互訪問,因為虛擬機在真實網絡段中有獨立IP,主機與虛擬機處于同一網絡段中,彼此可以通過各自IP相互訪問。?
虛擬機于網絡中其他主機關系:--可以相互訪問,同樣因為虛擬機在真實網絡段中有獨立IP,虛擬機與所有網絡其他主機處于同一網絡段中,彼此可以通過各自IP相互訪問。?
虛擬機于虛擬機關系:--可以相互訪問,原因同上。?

IP:一般是DHCP分配的,與主機的“本地連接”的IP 是同一網段的。虛擬機就能與主機互相通信。?

筆記本已插網線時:(若網絡中有DHCP服務器)主機與虛擬機會通過DHCP分別得到一個IP,這兩個IP在同一網段。主機與虛擬機可以ping通,虛擬機可以上互聯網。?
筆記本沒插網線時:主機與虛擬機不能通信。主機的“本地連接”有紅叉,就不能手工指定IP。虛擬機也不能通過DHCP得到IP地址,手工指定IP后,也無法與主機通信,因為主機無IP。?
這時主機的VirtualBox Host-Only Network 網卡是有ip的,192.168.56.1。虛擬機就算手工指定了IP 192.168.56.*,也ping不能主機。?

可以ssh到虛擬機,此時通信的2端是虛擬機的網卡、主機的網卡 ,跟VirtualBox Host-Only Network無關?

2.3、 Internal模式?

內網模式,顧名思義就是內部網絡模式,虛擬機與外網完全斷開,只實現虛擬機于虛擬機之間的內部網絡模式。?
虛擬機與主機關系:不能相互訪問,彼此不屬于同一個網絡,無法相互訪問。?
虛擬機與網絡中其他主機關系:不能相互訪問,理由同上。?
虛擬機與虛擬機關系:可以相互訪問,前提是在設置網絡時,兩臺虛擬機設置同一網絡名稱。?
IP: VirtualBox的DHCP服務器會為它分配IP ,一般得到的是192.168.56.101,因為是從101起分的,也可手工指定192.168.56.*。?
筆記本已插網線時:虛擬機可以與主機的VirtualBox Host-Only Network 網卡通信?
這種方案不受主機本地連接(網卡)是否有紅叉的影響。?

該模式在只有一臺虛擬機的情況下不實用?

2.4、Host-only Adapter模式?

主機模式,這是一種比較復雜的模式,需要有比較扎實的網絡基礎知識才能玩轉。?

我們可以理解為Vbox在主機中模擬出一張專供虛擬機使用的網卡,所有虛擬機都是連接到該網卡上的,我們可以通過設置這張網卡來實現上網及其他很多功能,比如(網卡共享、網卡橋接等)。?

虛擬機與主機關系--默認不能相互訪問,雙方不屬于同一IP段,host-only網卡默認IP段為192.168.56.X 子網掩碼為255.255.255.0,后面的虛擬機被分配到的也都是這個網段。通過網卡共享、網卡橋接等,可以實現虛擬機于主機相互訪問。?

虛擬機與網絡主機關系--默認不能相互訪問,原因同上,通過設置,可以實現相互訪問。?
虛擬機與虛擬機關系--默認可以相互訪問,都是同處于一個網段。?
虛擬機訪問主機 用的是主機的VirtualBox Host-Only Network網卡的IP:192.168.56.1 ,不管主機“本地連接”有無紅叉,永遠通。?
主機訪問虛擬機,用是的虛擬機的網卡3的IP: 192.168.56.101? ,不管主機“本地連接”有無紅叉,永遠通。?
虛擬機訪問互聯網,用的是自己的網卡2,這時主機要能通過“本地連接”有線上網,(無線網卡不行)?

此時用的網卡是VirtualBox Host-Only Network對應的網卡,VirtualBox Host-Only Network跟Ubuntu之間互相都可以ping通。?

三、具體實現?

3.1、Host only Adapter?

設置VirtualBox Host-Only Network自動獲取ip,獲取后的ip形式為192.168.56.*?
然后設置虛擬機鏈接網絡方式為 Host only Adapter方式,得到的ip地址也是192.168.56.*?
2個顯然組成了一個局域網,可以ssh到Ubuntu了,但是這個的缺點就是Ubuntu不能上網?
此時用的網卡是VirtualBox Host-Only Network對應的網卡,VirtualBox Host-Only Network跟Ubuntu之間互相都可以ping通。?

3.2、Internal模式,Ubuntu提示有線斷開?

3.3 Bridged Adapter??

其實這種模式下,設置windows虛擬機ip跟Ubuntu的ip在一個內網,并且ip不同就可以實現上web 以及ssh到Ubuntu上?

3.4、NAT 該模式無法ssh到Ubuntu?

總結:?
建議使用Bridged Adapter 的方式,在linux虛擬機中設置跟本機的IP、掩碼屬于同一網段既可以上Web 也可以ssh?

掃碼二維碼 獲取免費視頻學習資料

Python編程學習

查 看2022高級編程視頻教程免費獲取