宿主如何訪問本機虛擬機中的web伺服器

需求是介個樣子的:

host:archlinux

guest:debian

vm:virtualbox

Archlinux是平常所用桌面系統,因為需要學習Linux伺服器配置和管理,現在想通過Debian架一個web伺服器。但是怕在本機上把桌面系統折騰壞了重裝麻煩,苦逼的又只有一台電腦,於是乎想到了虛擬機技術。構想是介個樣子的,本機作為客戶端、web伺服器放到虛擬機里,折騰壞了也木有關係,但是遇到一個問題,宿主和客戶機應該是共用一個ip,客戶機通過宿主聯網,那麼我在架好虛擬機里的web伺服器後,如何通過宿主訪問呢,求各路大神和達人解答,不甚感激!

---------------------------------------------------------------------------------------------------------

問題總結

最近發現一個工具不僅完美解決了我的這個需求: [Vagrant](Vagrant), 還提供了很多額外的驚喜! 用法很簡單, 官方的文檔簡明扼要, 看完就會, 希望幫助到大家 :)

推薦一個比較全的中文教程:使用 Vagrant 打造跨平台開發環境


埠轉發,將本機的80埠轉發到虛擬機的80埠,就可以了。VBoxManage這個工具命令可以實現,詳細的要參考說明書了

PS 最近的版本可以直接在系統設置裡面添加埠映射了~


改一下虛擬機的網路設置,默認是 NAT,改成 Bridge,這樣虛擬機就相當於區域網裡面的另外一台獨立機器了。


vbox設置界面選擇nat的網卡,裡面有埠轉發, 還有一種方法,給虛擬機網卡一用Nat,網卡二用host-only,然後設置虛擬機網卡二的IP為宿主機host-only網卡同網段的地址,主機二不分配網關。


Bridge方式最簡單. 但是做不到你所說的虛擬機和宿主機一個ip. 虛擬機有自己的獨立IP, 可以直接通過虛擬機的IP訪問. 沒有什麼特殊的理由, 建議就用Bridge.

用NAT的話就麻煩了. 要做埠映射. 比如把發送到宿主機80埠的請求統統轉發到虛擬機的80埠. 這樣你訪問宿主機, 實際上是訪問的虛擬機. 如果你用vmware, 貌似通過圖形界面就能埠映射. 我沒實際操作過, 不敢亂指導. 我實際操作過virtualbox的埠映射. 首先你必須在虛擬機安裝VBOXGuestAddtion, 然後在宿主機命令行切換到virtualbox安裝目錄目錄, 執行VBoxManage modifyvm "myserver" --natpf1 "myserverhttp,tcp,,80,,80"

不敢保證你一遍就能成功. 遇到問題多google


vmware可以設置橋模式和nat模式,兩者都可以,如果你在的區域網無法為虛擬機分配獨立的IP,那就要和宿主共用一個ip,就要用nat模式了,宿主相當於個路由器,通過配置的私有地址,也是可以通過宿主的瀏覽器訪問的,比如http://192.168.1.2/


我也是想在宿主機上訪問虛擬機里的Web伺服器,我覺得 @王小龍給出的方法是最簡單快捷的,按照這個方法設置好後只是要注意一下防火牆的設置。


今天剛好想試一下,我就回答一下吧

虛擬機VMware? Workstation 14 Pro

虛擬機系統centOs 6.4

本機win10

虛擬機網路選擇NAT模式,linux系統使用ifconfig命令,查看ip地址,然後安裝Apache並啟動,虛擬主機內打開瀏覽器,訪問localhost,訪問正常,然後關閉防火牆 service iptables stop。此時本機輸入剛剛查看到的ip地址即可訪問。


宿主:Win7 , 虛擬機:Ubuntu

(1)在虛擬機中以NAT的連接模式,共享宿主機的IP地址信息

(2)在虛擬Linux系統中,ifconfig eth0 獲取虛擬主機的網卡分配的IP地址如:ip。

(3)通過在宿主系統中的網址輸入:ip,即可訪問虛擬設備的服務。


首先請補充一下使用的什麼虛擬系統?另外如果要共享一個IP則只有使用NAT做埠轉發。


推薦閱讀:

虛擬機的綜合性能取決於哪些因素?
看我如何跨虛擬機實現Row Hammer攻擊和許可權提升
VMware下安裝Ubuntu&設置共享文件夾教程
macbook pro裝雙系統好還是虛擬機好?平常會用arcgis之類軟體?

TAG:Linux | Web伺服器軟體 | Debian | 虛擬機 | ArchLinux | 伺服器操作系統 |