轉發 (NAT) 到 VBox Bridge 來賓無法正常運作

轉發 (NAT) 到 VBox Bridge 來賓無法正常運作

我想要實現的設定如下。我們需要能夠從我們的公共 IP 存取 VBox 虛擬機器。我們目前有一個非常糟糕的 linksys 路由器,但我將其設定為將外部連接埠 8181 轉送到內部連接埠 192.168.1.230:8080 (Linux)。 192.168.1.230 是我的來賓虛擬機,目前在主機 192.168.1.6 (Linux) 上運行。

當我將瀏覽器或來自內部網路 192.168.1.230:8080 的 wget 指向來賓虛擬機器時,它運作得很好。我看到網頁或 wget 請求返回。

當我指向 public_ip:8181 時,它不起作用。它永遠加載,並且 wget 掛起,沒有錯誤回應。訪客上的 tcpdump 顯示沒有資料包傳入。然而,如果我將連接埠範圍轉送位址從來賓更改為主機,它就可以工作(我在主機上做了一個快速的 netcat 伺服器)。

主機和來賓 iptables 都設定為接受所有鏈上的所有內容。所以我想知道資料包來自路由器的事實是否以某種方式被拒絕。任何建議或幫助將不勝感激。下面的 Vagrant 配置。

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.define "odlVM" do |odlVM|
     odlVM.vm.box = "ubuntu/trusty64"
     config.vm.provider "virtualbox" do |v|
       v.customize ["modifyvm", :id, "--cpuexecutioncap", "50"]
       v.customize ["modifyvm", :id, "--memory", "2048"]
     end
     odlVM.vm.hostname = "odl-vm"
     odlVM.vm.network "public_network", bridge: "enp5s0f1"
     odlVM.vm.provision :shell, inline: $bootstrap_ubuntu
     odlVM.vm.provision :shell, inline: $install_java
     odlVM.vm.provision :shell, inline: $download_odl
    end
end

答案1

所以我想通了。我覺得沒有考慮到這一點有點愚蠢,但虛擬機將預設網關設定為指向橋接適配器而不是路由器。更改後,我就可以從外部網路存取虛擬機器。

相關內容