
我有一個運行 Ubuntu 14.04 的 Virtualbox 客戶機和一個 node.js Web 伺服器。 Virtualbox 主機是 Windows 8.1 用戶端。設定節點伺服器後,我在提供外部存取時遇到一些困難。
節點伺服器在連接埠 5005 上運行,因此通常情況下,我只需從防火牆建立一個連接埠轉送規則,將所有 5005 請求路由到同一連接埠上的來賓 IP (192.168.2.13)。這樣做時,我看到從外部位置發出的請求到達防火牆並被允許,但外部用戶端從未收到回應。如果我從網路內部存取私有 IP,它會按預期正確回應(因此伺服器肯定已啟動)。
如果我嘗試相同的過程,但在主機(而不是來賓虛擬機器)上運行伺服器,它就可以工作!這表示防火牆配置不是問題。我可以從防火牆 ping 訪客 IP,因此連線似乎正常。
因此,虛擬機器的網路設定中似乎出現了問題,導致了問題,但是什麼呢? VB guest 配置靜態 IP,使用 VirtualBox 的橋接網路模型。
IpTables 或 UFW 均未配置為封鎖來賓上的任何內容(據我所知)
我錯過了什麼?
答案1
事實證明,訪客沒有正確設定預設網關。我可以透過跑步來判斷這一點
route -N
在訪客上,它顯示沒有設定預設路由。為了解決這個問題,我跑了
route del default
route add default gw 192.168.2.100 eth1
現在,訪客可以與來自互聯網的 NAT 流量正確通訊。