:::

VirtualBox用網路橋接器設定虛擬機器的固定IP

3月 29, 2008 , 20 Comments Edit Post

VirtualBox(以下簡稱vbox)是跨平台、多語言、免費虛擬機器,安裝容易設定也很簡單。當要找一台電腦安裝特定的作業系統、卻又沒有空出來的電腦供安裝時,vbox就可以派上用場了。

跟大多數虛擬機器一樣,vbox安裝在Windows或Linux作業系統上,成為一個應用軟體。接著vbox可以用該電腦的資源,模擬出一台新的電腦。此時我們稱主要電腦為Host(主端),模擬出來的電腦則是Guest(客端)。

如果要把Guest電腦作為伺服器,那麼有兩個基本條件是需要的:

  1. 外界可以連線到Guest電腦,最好是擁有獨立IP
  2. Host電腦開機時自動啟動Guest電腦

先解決條件一,預設Guest電腦的網路是以Host電腦的網路做NAT(網路位置轉換),但是這種方式無法讓外界連線到Guest電腦。因此本篇就是教你建立Vbox的虛擬網路卡、再與Host的網路卡作網路橋接(bridge),給予Guest電腦一個固定的IP。

以下操作皆以Windows XP (2003也一樣) Host、Linux Guest方式,用VirtualBox 1.5.6版本來設定網路。這篇的重點著重於網路的設定,vbox的安裝、新增虛擬機器的過程以及Linux設定網路卡的方法將不詳述。


安裝好vbox、設定成正體中文語系、再新增了虛擬機器之後的主要程式畫面大概是上圖這樣,請選擇要連線的虛擬機器,再開啟「設定値」。

進入左方選單的「網路」,在到「主端介面」右邊,點選新增網路卡的圖示。

新增一個「VirtualBox主端介面1」。

此時Windows會偵測到要新增的VirtualBox TAP Adapter,選擇「繼續安裝」吧。

如藍色框所標示,「VirtualBox 主端介面1」已經安裝完成。此時設定紅色框裡面的「附掛到」選項,從NAT(網路位置轉換)改成「主端介面」,在修改「介面名稱」為待會要做網路橋接的主端介面,預設是第一個主端介面「VirtualHost主端介面1」。

打開Windows控制台的「網路連線」,可以看到VirtualBox主端介面1已經成功新增。接下來我們要架設網路橋接器,請選擇VirtualBox主端介面1,再按著Ctrl選取另一個可以連線的區域網路,預設通常是「區域連線」。

按右鍵,「橋接器連線」。注意,這個步驟會重置區域連線的設定,導致網路斷線、IP設定消失!所以請不要用遠端連線的方式設定!

網路橋接器架設完成。

原本「區域網路」的Internet Protocol(TCP/IP)設定,要在「網路橋接器」裡面重新設定。

做完以上步驟之後,請再確認Windows Host可以連上網路、外界也可以連到Windows Host。沒問題的話,設定Linux Guest的網路卡、給予固定IP,這樣子就大功告成了!

總共20 則留言, (我要發問)

  1. 我就是不乖用遠端設定設網路橋接器的摸摸.
    理論上我的TCP/IP都是用預設的,應該一下子遠端就可以連說, 可是還是不行不知道為什麼>< 詳細還要回去看狀況才知道

    回覆刪除
  2. 妳說的是HOST OS的網路嗎?
    輔大的電腦都要設IP吧,設好橋接器之後IP設定就會重製
    沒設IP的話你是怎麼遠端連線的?

    回覆刪除
  3. 個人意見,要看HOST端的IP是動態取得的還是原本就固定設好的IP.如果用了橋接器連線,就如布丁說的會reset,但是如果原本HOST的IP就是DHCP方式配給,就會變成再次取得IP,但不一定跟前一次配給的一樣,就容易會搞不清楚現在的IP到底是什麼,不過我是在Ubuntu 7.04,前端有一個IP分享器,配置方式又有點不同了....(好吧.我是來閒話家常的.呵呵)

    回覆刪除
  4. 學長說的沒錯,摸摸你還是把狀況再說清楚一點吧XD

    回覆刪除
  5. 補充一下,今天我也用了VistualBox 1.5.6.在NB上安裝,一如預料,在512MB的Windows上,會有如牛步般慢速,還是用個Linux發行版會好一點...(好吧..我的工作平台還是只有Ubuntu.....Windows對我來說還是只能處理一下文書..)

    回覆刪除
  6. 另外一個觀點是Firewall的問題(當然我不知道在Windows上會不會發生),
    我的網路架構有兩種,一個是在辦公室(學校偉大英明的DHCP+NAT政策)與一個在家裡的ADSL,
    在Virtual Box的架構裡,據我自己的經驗和印象,Virtual Box的NAT只是有讓Guest透過HOST連出去
    但是Guest彼此之間卻不能互連,因為V.B NAT給Guest的IP是10.1.x.x,
    如果要連GUEST如Host般可以對內對外都可連線,就要採用Bridge連線..k

    (anyway..這只是整理一下思緒,總是要有舖陳一下.呵呵,但就這部份當初我也設定了一個月)..

    我的環境是Ubuntu 7.04 + Virtual Box 1.5.x + 外部環境有DHCP or IP分享器(省了我架server麻煩)
    假設辦公室的IP是10.220.1.1,如果NAT的話Guest取得的是10.1.1.1
    那麼是無法互動,用Bridge的方式也是希望Guest的IP變成10.220.1.2(以此類推)
    後來改完設定之後,Guest卻無法取得IP,我的經驗是發生Firewall上會擋住Guest取得IP
    所以如果設定完還是取不到IP.試著關掉firewall試試,如ok,再修改Firewall設定
    在學校的環境單純許多,因為設定好Guest就等於是一台與Host完全獨立的機器.
    (Host與Guest的IP分別為10.220.1.1與10.220.1.2,如果有安裝多個Guest就是10.220.1.3..以此類推)

    但在家裡比較麻煩,因為對外的IP就只有一個220.134.x.x,但透過IP分享器,內部的機器都是192.168.1.2
    設定完之後,可以讓Host與Guest都取得192.168.x.x的網段,但是缺點是因為對外IP只有一個,
    所以如果有多個Guest,就變成採取port mapping的方式,對外仍舊是一個220.134.x.x,
    假設你有一個WWW放在192.168.1.2的guest裡,就要在IP分享器設定讓外部要連到220.134.x.x:80,幫你轉到192.168.1.2:80

    兩種有些不同的網路架構,所以要看摸自己的網路環境是如何的,
    如果說自己電腦的網路環境,比方像在圖書館全部DHCP,學生插上網路線不要自己設IP就可以上網..就比較接近前者的用法,
    如果說每台電腦都配給一個固定IP,而且都要自己設,也不能要到多餘的固定IP情況下,就麻煩一點,像後者的用法,
    不過仍舊要在自己坐在主機去設定,不要透過像遠端桌面去設,不然..還沒設定完網路重新啟動,可能自己就被自己設定的Firewall遠端擋住了

    以上兩種做法做做參考,目前為止,無論在家裡或辦公室,我一樣1G的ram,跑3個Guest Linux 環境是都還ok..(不過只有文字環境沒GUI介面)

    p.s提到Bridge,VMWARE還是做的比VirtualBox好..設定上比較沒那麼麻煩,只是吃資源吃的重,就變得不愛用了

    回覆刪除
  7. 喔喔,我後來也是用Ubuntu 7.10來架設VirtualBox,搭配Port Forwarding依據連接埠轉到指定的虛擬機器上,我覺得這種方法可以節省IP的消耗量,還不錯的!

    回覆刪除
  8. 請問可否提供新版的介紹
    小弟目前安裝的2.2.4版
    介面已經不太相同了
    找不到布丁大所說的主端介面
    實在不知怎麼把vbox的虛擬ip架起來
    謝謝

    回覆刪除
  9. 你好,請問區域網路B主機想連到A主機VM上的linux該要麼設定呢?
    區域網路B主機(192.168.1.2)
    區域網路A主機(192.168.1.3)
    區域網路A主機VM(192.168.1.101)

    回覆刪除
  10. To Leisure of world:

    如果你設定了網路橋接器(bridge),A主機的VM跟其他主機都會被視為同一個區域網路。
    所以在B主機ping 192.68.1.101是可以直接找到的。

    如果你沒設定網路橋接器的話,A主機的IP跟A主機VM的IP不能是相同網段喔

    現在VirtualBox設定網路橋接器的方式更簡單了,這篇文章所講的作法已經不適用
    直接在VM的網路設定裡面設成網路橋接器就可以了。

    回覆刪除
  11. "如果你沒設定網路橋接器的話,A主機的IP跟A主機VM的IP不能是相同網段"這句話還蠻奇怪的,不是同網段才ping的到?
    新版的VirtualBox會自帶"VirtualBox Host-Only Network"這張網卡,
    內建的ip是192.168.56.101,而我是改成192.168.1.101,
    另外也改了VirtualBox的網路喜好設定,
    DHCP伺服器192.168.1.100,
    下限192.168.1.101,
    上限192.168.1.254,
    VM的LINUX設固定IP:192.168.1.101/24,
    VM的網路卡介面為一橋接,一僅限主機
    A主機及B主機都是接在中華的小烏龜上,不過還是PING不到...

    回覆刪除
  12. To Leisure of world:

    1. "如果你沒設定網路橋接器的話,A主機的IP跟A主機VM的IP不能是相同網段"這句話還蠻奇怪的,不是同網段才ping的到?

    是同網段才ping的到,所以你沒設定橋接器的話,A主機(對外網卡)跟VM就是不同網段。當然,你可以用A主機(對VirtualBox的虛擬網卡)ping得到VM,這是在NAT模式底下。但這對外面的B主機來說沒有意義。

    2. VirtualBox的DHCP設定,是給VM用NAT連接時使用的。網路橋接器跟他無關,也不能設定為跟A主機相同網段,因為他是在NAT模式底下給對內的VM用的。

    3. 為了怕VM搞混,我建議你把僅限主機Host-Only網卡拿掉。

    4. 嗯……你知道NAT網路模式什麼嗎?

    回覆刪除
  13. 1.VirtualBox的DHCP設定是這樣啊…我以為跟我們實體區網是一樣的…

    2.所以我只需要一張橋接卡就可以了?NAT要加入嗎?

    2.NAT只知道虛擬機可借由本機的網卡對外上網,但本機是PING不到虛擬機,更別說B主機能PING到,這樣對吧?!

    回覆刪除
  14. To Leisure of world:

    1. VirtualBox有提供NAT,就表示他自己內建一台DHCP虛擬伺服器喔
    簡單來說就是不同的網路

    2. VM不要加入NAT的網卡,會跟網路橋接器混亂
    VM有兩張網卡的話,連網際網路的時候,會很難判斷它到底是透過網路橋接器直接連出去、還是透過NAT轉換之後才連出去。

    3(?). 雖然這樣說法很奇怪,但是表面上的確會這樣運作。

    NAT的意思是你的電腦裡面有個區域網路,這是專門給VM使用的區域網路,跟你實體電腦不會直接相連。
    因此跟你實體電腦是不同網段的,無法直接Ping得到。

    回覆刪除
  15. 不好意思,這麼久才來回應,
    謝謝您的解說,後來我的解決方法是開兩張網卡,
    1橋接
    2nat
    並在linux網卡eth0直接給予區網ip:192.168.1.101/24 getway:192.168.1.1,已可以從B電腦PING到A主機VM,也可以用PPPOE撥接上。

    回覆刪除
  16. To Leisure of world:

    這樣聽起來是橋接卡的功用

    NAT應該是派不上用場吧?

    回覆刪除
  17. 是的,是橋接卡起的功用。
    NAT其實是用不上,只有在LINUX VM沒撥接,HOST有撥接時有效,但就無法對外連線,等於是純單機…就像沙盤一樣。

    回覆刪除
  18. To Leisure of world:

    HOST模式只能連到HOST跟GUEST之間,不是給GUEST連到internet用的。

    回覆刪除

留言工具: