1. 程式人生 > >關於虛擬機中linux系統網絡設置的總結

關於虛擬機中linux系統網絡設置的總結

ip地址 即使 linux 自動生成ip 無法連接 找到 linux中 script pts

由於項目中用到了redis和ZooKeeper,所以今天在個人筆記本上安裝了個虛擬機,搭建了個linux開發環境。整個過程中,關於虛擬機安裝、軟件安裝等等這些都沒什麽好說的,就是在設置虛擬機中linux系統訪問外網時,不是訪問不了外網就是ip丟失,所以有必要把關於虛擬機中linux系統網絡設置做個詳細說明,以備後用,也方便其他遇到同樣問題的人們借鑒: 虛擬機安裝完成以後,可以查看到虛擬出三種網絡:VMnet0、VMnet1和VMnet8。查看如圖:![](http://i2.51cto.com/images/blog/201806/28/b7d3dd45873cf74088194424dd72df1f.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

這三種網絡分別為本地連接、自連接和NAT連接,表示將來虛擬機中操作系統與外部網絡采用的策略。此外,我們從主機(我的個人筆記本電腦)的網絡連接中也可以看到生成了兩個虛擬機網卡:技術分享圖片
那有人會說這裏怎麽沒有VMnet0呢?這是因為VMnet0這種連接,虛擬機不從屬於主機,地位和主機同等,下邊會詳細描述。

下邊就詳細描述一下這三種網絡設置:
第一:VMnet0是本地連接,也叫橋連接。這種連接,實質上就是虛擬出來一臺機器,虛擬機和主機處在同等地位,共用同一個局域網,它也會占用局域網段中的一個ip;這個時候,主機怎麽連外網,虛擬機就怎麽連,那可能是有線的也可能是無線的,這由主機具體情況決定。
設置虛擬機要使用橋連接:在虛擬機上右鍵--->設置:![](http://i2.51cto.com/images/blog/201806/28/4c20843ff3b5e967075c357e9bdd3244.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
主機cmd下執行ipconfig命令,查看(我采用的是)無線局域網ip:![](http://i2.51cto.com/images/blog/201806/28/f14a747a734bb8499e2b24a619d06b8e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
在linux中執行ifconfig查看的ip也是31網段的一個ip:![](http://i2.51cto.com/images/blog/201806/28/8506ae27cbb0ae2aef81cd2d47c9ddda.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
這個時候如果主機連有外網,則虛擬機也可以連外網。
第二:VMnet1是自連接,虛擬機只能和主機進行通信,處於同一網段,它的ip是VMnet1網段中的一個;即使主機有外網,虛擬機也連不上外網。
設置虛擬機要使用自連接。
主機cmd下執行ipconfig命令,查看VMnet1的ip:![](http://i2.51cto.com/images/blog/201806/28/2f2536565bcf3c6712b1c2c5b3d11ee6.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
在linux中執行ifconfig查看的ip也是17網段的一個ip:![](http://i2.51cto.com/images/blog/201806/28/102923281ed78b987d5898fdbc938672.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
這個時候即使主機連有外網,虛擬機也無法連接外網.
第三:VMnet8是NAT連接,虛擬機把主機ip作為外網ip,在這個基礎之上虛擬出一個網絡,虛擬出來一個網段;如果主機有外網,則虛擬機也可以連外網,連接原理就是從虛擬機找到主機網關,然後再找到主機外邊的外網網關。
設置虛擬機要使用NAT連接。
cmd下執行ipconfig命令,查看VMnet8的ip:![](http://i2.51cto.com/images/blog/201806/28/3610bf29af10468950d10c6371e5ed11.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
在linux中執行ifconfig查看的ip也是248網段的一個ip:![](http://i2.51cto.com/images/blog/201806/28/6d9b79bafb37137a41c2ca2313fc1176.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
這個時候如果主機連有外網,則虛擬機也可以連外網。

至於我們實際開發過程中采用哪一種,由自己的使用情形決定,在有外網的情況下,使用VMnet0和VMnet8多一些,如果不需要使用外網又不想受外網幹擾則采用VMnet1。

而對於VMnet1和VMnet8,我們還可以具體設置ip等信息:技術分享圖片

還有一種意外情況,虛擬機中安裝好linux系統之後,如果執行ifconfig沒有ip地址,則可以執行命令dhclient ens33;但是這樣雖然這次能生成ip,但是下次啟動linux,又沒了ip,要想每次都自動生成ip,則:

進入/etc/sysconfig/network-scripts/
用vi 修改ifcfg-ens33中的ONBOOT=no為ONBOOT=yes
保存並退出
重啟網絡服務service network restart

這是我遇到一些個情況,詳列於此,希望對朋友們有所幫助。當然,有不周全之處,還請包涵。

關於虛擬機中linux系統網絡設置的總結