Ssh

在沒有 Wi-Fi 的情況下通過 SSH 連接到 VirtualBox VM

  • January 17, 2022

我在 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 上配置它的步驟。可能需要三樣東西:

  1. 在 VirtualBox 中添加僅主機網路。
  2. 在虛擬機中添加一個新適配器並將其連接到僅主機網路。
  3. 配置新的網路適配器以獲取 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

引用自:https://unix.stackexchange.com/questions/624444