Linux

訪問遠端伺服器上的虛擬盒子

  • July 12, 2013

我有一個帶有 1 個公共 IP 的遠端伺服器(ubuntu)。

我已經安裝了無頭 VirtualBox 並部署了機器。現在我可以通過在伺服器上執行的 VirtualBox 的 VRDE 伺服器來訪問它,但我需要的是能夠直接訪問虛擬機……那麼我該如何配置網路呢?AFAIK Virtual Box 不允許從外部訪問它的 NAT,所以它給我留下了橋接選項,但我只有一個外部 IP 可用。我有哪些選擇?

使用僅主機網路。您將一個介面添加到您的 virtualbox 的網路配置中,該介面就像一個交換機。預設情況下,它應該添加vboxnet0.

在您的機器上,您需要在核心中啟用 ip4 轉發:

sysctl -w net.ipv4.ip_forward=1

這應該足以允許 VM 訪問 Internet。如果您為每個虛擬機添加一個介面,您甚至可以按介面過濾並限制虛擬機之間的流量,您可以使用 iptables 和 FORWARD 鏈過濾流量。這是最靈活的方法。你可以避免橋接。

使用 iptables 您可以將埠轉發到本地虛擬機:

iptables -t nat -A PREROUTING -i eth+ -p tcp --dport 2222 -j DNAT --to 10.10.10.100:22

可以通過埠從外部10.10.10.100訪問的介面上 VM 的 IP 地址在哪裡。您可以手動配置 IP,也可以在主機上用作 DHCP 伺服器。vboxnet0``2222``dnsmasq

/etc/dnsmasq.d/virtualbox為您的虛擬機放入一個文件:

dhcp-range=interface:vboxnet0,10.10.10.100,10.10.10.100,255.255.255.0,24h

這負責將 IP 地址和網關 + DNS 資訊分配給 VM。在這種情況下,您也可以手動配置 DNS 和網關地址10.10.100.1。如果您熟悉 linux 網路配置,您應該能夠弄清楚這一點。

引用自:https://serverfault.com/questions/522783