在沒有 Wi-Fi 的情況下通過 SSH 連接到 VirtualBox VM
我在 MacOS 上通過 VirtualBox 執行 Ubuntu 20.04 VM。我已經設置了兩個網路介面。其中一個是橋接連接,另一個是“內部網路”。我更喜歡從終端通過 SSH 連接到 VM,而不是使用 VirtualBox 的界面。通常,這不是問題,因為我的 Mac 和我的 VM 都連接到同一個 Wi-Fi 網路。
但是,我想即使沒有更大的網路,也有一種 SSH 方法。當我
ip addr
在我的虛擬機上執行時,我看到2: enp0s3: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:c2:f9:eb brd ff:ff:ff:ff:ff:ff 3: enp0s8: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:fb:e3:1a brd ff:ff:ff:ff:ff:ff
我無法使用任何一個 IPv6 地址進行 SSH,甚至
ping6
針對它們執行都告訴我沒有主機路由。
您應該改用僅主機適配器並將其映射到您的訪客界面。
您應該在虛擬機設置中創建新適配器,然後將 nic 映射到來賓 vm 設置上的此適配器。
我記得在乘坐火車時需要這個,在沒有 Wi-Fi 的情況下我無法通過 SSH 連接到我的機器。我將解釋我用來在 Windows 10 主機上執行的 VirtualBox 上配置它的步驟。可能需要三樣東西:
- 在 VirtualBox 中添加僅主機網路。
- 在虛擬機中添加一個新適配器並將其連接到僅主機網路。
- 配置新的網路適配器以獲取 IP 地址。
添加僅主機網路
在 VirtualBox 6.1 中,我通過轉到File > Host Network Manager在 UI 中創建了一個主機網路。有關更多資訊,請參閱Oracle 文件。我勾選了自動配置適配器並啟用 DHCP 伺服器的選項。
將新適配器添加到 VM 並連接到僅主機網路
我的虛擬機只啟用了一個適配器。在 VM 網路設置中,我轉到適配器 2 選項卡並勾選*“啟用網路適配器”,然後選擇“附加到:僅主機適配器”和“名稱:VirtualBox 僅主機乙太網適配器”*。這在您的 UI 中可能會有所不同。現在,如果我執行
ip a
(快捷方式ip address
),我可以看到新適配器為enp0s8
. 第一個仍然存在,因為enp0s3
.在 VM 中配置網路適配器
我的適配器出現了,
DOWN
所以我做的第一件事就是把它拿出來:sudo ip link set enp0s8 up
儘管如此,
ip a
儘管介面已啟動,但仍沒有顯示 IP 地址。這意味著它不會自動使用 DHCP,我必須對其進行配置才能這樣做。請參閱下面我在我的 Ubuntu 系統上所做的事情。對於您的發行版或者如果您想要一個靜態 IP,它可能會有所不同。將以下兩行添加到
/etc/netplan/00-installer-config.yaml
:enp0s8: dhcp4: true
所以它現在看起來像這樣:
network: ethernets: enp0s3: dhcp4: true enp0s8: dhcp4: true version: 2
緊隨其後的是:
sudo netplan --debug generate sudo systemctl restart systemd-networkd
enp0s8
在此之後,我可以在介面上看到 IP 地址ip a
,我可以使用它從Windows Terminal SSH 到我的虛擬機,即使在飛行模式下也是如此!故障排除:我發現這個解決方案不是很穩定。有時我仍然可以使用橋接適配器 IP 從主機 ping 虛擬機,但不能使用僅限主機的網路 IP。重新啟動界面、VM 甚至 virtualbox 等並沒有解決任何問題,但重新啟動 Windows 的陳詞濫調恢復了功能。我的建議是,如果這停止工作,請先重新啟動 Windows。