簡體   English   中英

從本地網絡中的計算機遠程訪問安裝在VM上的Apache服務器

[英]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版本> = 1.5並且使用公共URL不會產生問題,那么解決方案應該是微不足道的:

vagrant share

更多信息在這里

這就是我在家庭網絡上工作所做的。

在實際運行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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM