Linux
訪問遠端伺服器上的虛擬盒子
我有一個帶有 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 網路配置,您應該能夠弄清楚這一點。