[英]Access Apache server installed on a VM remotely from computer in local network
我想從我網絡中的計算機訪問Apache,問題是Apache在虛擬機上運行:
框圖
( [A: VM Running Apache] -- [B: Actual machine] ) ------ [C: Actual machine]
IP的:
A: 192.168.55.55
B: 192.168.1.25
我可以從B訪問A很好,但不能從C訪問。(我得到一條消息,寫了一段時間后'與服務器的連接超時'。
B:網絡信息
PD:Apache在VM中的原因是因為我正在使用Vagrant,不確定是否與任何事情有關,但我認為無論如何我都會提到它。
這就是我在家庭網絡上工作所做的。
在實際運行Vagrant的機器上,編輯Vagrant文件並將主機8088 (或您選擇的任何端口#)轉發到主機(您調用它的“實際機器”)到客戶機上的端口80 ('VM Running Apache',如您所說它)。
做一個正常的流浪漢 ,你應該看到啟動時發生端口轉發。 我個人大約有8個虛擬主機在我的Vagrant盒子里運行,每個主機都有自己的主機名。 我在主機(上面的機器'B')上編輯了我的主機文件,以便將這些主機名指向Vagrant框的ip。 它工作得很好,我可以在地址欄中輸入類似mysite.dev的東西,然后該站點在我的本地機器上運行。
現在,要使其在與主機相同的子網內的另一台計算機上運行,您需要在該第二台計算機上編輯hosts文件。 將主機名(我的示例是mysite.dev)指向主機的實際IP地址。 這會將mysite.dev的任何實例轉發到您在問題中標記為“B”的計算機。 唯一的問題是,這只是像任何普通網頁一樣指向標准端口80 。 您希望此流量實際上可以在您的問題中找到機器'A'。 因此,不要只將mysite.dev放入瀏覽器的地址欄,而是將mysite.dev:8088 (或者您選擇轉發的任何端口號轉發到之前的機器'A')。
現在來自'C'的流量將被發送到機器'B',因為hosts文件告訴它去那里,你添加到地址的附加端口強制機器'B'將該流量轉發到機器'A'上的端口80 。 機器'A'接收請求並將數據返回到機器'B',然后機器'B'將其轉發回機器'C'。
最終結果是機器'C'看到從機器'A'返回的頁面。
希望大家總結一下。
祝好運!
c0p
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.