1. 程式人生 > >從外網訪問VMware虛擬機器的Web服務

從外網訪問VMware虛擬機器的Web服務

主機上安裝了VMware,VMware上安裝了Linux或windows虛擬機器。我想讓虛擬機器向外提供Web服務,於是在它上面打開了IIS(Windows)。本文講解如何讓我的主機和外網使用者可以訪問IIS的網站。

    我的情景是這樣的:主機(windows 7)位於區域網內,要在主機上VMware安裝windows 7虛擬機器;虛擬機器上安裝Team Foundation Server2010,並向區域網其他使用者提供TFS網站的訪問。這裡分解成幾個步驟。

  • 網路拓撲
  • 原理說明
  • VMware的NAT設定
  • 埠轉發(Port Forwarding)
  • 路由器和防火牆設定
  • 網路測試

網路拓撲

   該前提下的網路拓撲有3種主要型別:家庭ADSL、公司區域網和託管機房公網。我的情景是第二種。

3種常見網路模式

原理說明

    有了拓撲之後,需要了解 VMware的三種網路連線模式 ,區分橋接(bridged)、NAT和Host-only。橋接模式,可以看成主機與虛擬機器用Hub相連線。NAT是區域網的重要技術,詳細解釋可以看百科。NAT模式,可看成主機是關口,虛擬機器在網路內部,所有與虛擬機器的通訊均要經過關口。Host-only模式,看成主機與虛擬機器是用雙絞線相連的,它們可分別處於獨立的網段。

    公司區域網採用域管理,即虛擬機器沒有(申請)在域內,而主機在域內。所以我只能採用NAT模式,否則虛擬機器沒有訪問網路(或被訪問)的許可權。

VMware的NAT設定

  • 右鍵點選虛擬機器,選擇“setting”;
  • 在左邊欄的Hardware選項卡內選擇Network Adapter;
  • 在右邊欄選擇NAT,如下圖:

   

埠轉發(Port Forwarding)

    在完成NAT設定之後,虛擬機器便可以訪問外部網路(區域網其他使用者和Internet)了。但是,從外部網路不能訪問虛擬機器。這是因為NAT對外是遮蔽內部網路細節的。為了實現從外部訪問虛擬機器,則需要設定埠轉發。

  • 檢視虛擬機器的IP地址

  • 在VMware的選單項Edit下選擇Vitual Network Editor;在上方選定NAT網路,在下方選擇NAT(shared host's IP address with VMs),點選NAT Settings;

  • 點選Add新增埠轉發;

    Host Port是主機的埠,即從外網訪問主機該埠的請求,均轉發至虛擬機器;

    Type指定傳輸協議,這裡添加了TCP和UDP(Http一般只使用TCP);

    Vitual Machine IP Address填寫虛擬機器的IP地址和埠;由於這裡需提供Web服務,所以應該填寫Web埠(在windows IIS的網站中設定);

路由器和防火牆設定

  • 在外部網路與主機間若有路由器,則需設定埠對映;我的情景下沒有;
  • 關閉主機上的防火牆,或者設定防火牆的埠允許規則;

網路測試

  • TFS的IIS網站已經搭建好;
  • 在區域網其他使用者的計算機上開啟瀏覽器,訪問http://<host's IP address>:host port;

     假設主機的IP為10.1.1.1,則在瀏覽器訪問http://10.1.1.1:8080。正常情況下,訪問請求會轉發至虛擬機器,即該請求實際訪問的是http://192.168.75.134:8080。

  • 若正常開啟Web網站,則測試通過。

最重要: 若在主機上無法ping通 虛擬機器的IP地址,則注意虛擬機的防火牆是否開啟

linux關閉防火牆:

1) 重啟後生效 
    開啟: chkconfig iptables on 
    關閉: chkconfig iptables off 

   2) 即時生效,重啟後失效 
    開啟: service iptables start 
    關閉: service iptables stop