Virtual Box 橋接網路和連接埠轉發

Virtual Box 橋接網路和連接埠轉發

我有個問題。這是我的網路圖。 在此輸入影像描述

  1. 我有連接到互聯網的 WIFI 路由器,我從 ISP 訂購了靜態 IP,這樣我就可以透過網路存取我的本機 PC。
  2. 我的路由器建立網路 192.168.0.0/24
  3. 我有一些連接埠轉送到我的本地 PC 伺服器 (192.168.0.101) 在此輸入影像描述
  4. 我在本地 PC 上安裝了虛擬盒子
  5. 透過 vagrant 創建和維護兩個節點,但我們對第一個節點感興趣。
  6. 每個虛擬機器都有兩個網路卡,第一個是用於 Vagrant 通訊的 NAT,第二個是透過本地 PC 介面 enp3s0 的橋接適配器。
  7. 所有節點都具有在路由器 DHCP 設定中綁定的特定 MAC 位址,以便為它們提供靜態 IP(192.168.0.110 和 192.168.0.111)
  8. 一切都在本地網路內運行,節點收到正確的IP位址,我可以透過本地網路存取任何節點端口
  9. 我的 IP 為 192.168.0.110 的節點運行 Apache 伺服器,並且在本機網路內運作正常。
  10. 我想從外部存取我的這個節點 apache 伺服器,因此我將外部連接埠 8888 轉發到 IP 192.168.0.110 的本機連接埠 80 機器,如上面的螢幕截圖所示。

但問題是我無法從外部存取節點apache。連接逾時或重置。我嘗試使用 Wireshark 捕獲流量,但可以看到以下錯誤。

在此輸入影像描述 在此輸入影像描述 有可能讓這個工作嗎?或者只有一種解決方案是將連接埠轉送到 192.168.0.101 PC,而不是使用 NAT 和連接埠轉送將封包轉送到節點?

請幫忙解決這個問題。謝謝。

答案1

我知道這不是您正在尋找的答案,但我絞盡腦汁一天多才得出這個結論。它應該會起作用,但不起作用。我是一名 Linux 專業人士,並且精通它的網路。其他論壇說你做得對,我同意,並且應該有效。我自己在兩個完全不同的網路上嘗試了完全相同的設置,但它不起作用。

您必須使用 NAT 轉接器和橋接轉接器來完成此操作。在 NAT 上設定連接埠轉送並將主機 IP 設定為 0.0.0.0。

在您的路由器中,將連接埠轉送到主機 IP 位址,而不是用戶端虛擬機器橋接 IP。因此,根據您的範例,將連接埠 8888 轉送到同一連接埠 8888 上的主機 IP 位址。

然後在 Vagrant 中,NAT 連接埠轉送將如下所示:

config.vm.network "forwarded_port", guest: 80, host_ip: "0.0.0.0", host: 8888

相關內容