我有一台 Mac 主机和一台 VirtualBox Linux 客户机,目前使用桥接模式。
我需要能够轻松地从主机通过 SSH 进入客户机。使用主机名会很好,但使用不变的 IP 地址也可以(目前,IP 会随着我加入的每个新网络而变化,主机名从未起作用)。
我还需要客人的互联网访问。
网络上的其他机器不需要访客访问。
配置我的 VirtualBox 网络的最佳方法是什么?
答案1
首先,您必须创建vboxnet0
界面。
VirtualBox > 文件 > 首选项 > 网络 > 仅主机网络 > 添加(您将获得 vboxnet0)
然后,在主机上运行此程序。您将看到vboxnet0
出现一个新界面。
ifconfig
关闭虚拟机并执行以下操作:
VM's Settings > System > check "Enable I/O APIC."
VM's Settings > Network > Adapter 2 > host-only vboxnet0
在客户机上运行启动虚拟机
ifconfig
并检查 IP
检查这些链接:
- https://forums.virtualbox.org/viewtopic.php?f=8&t=40076
- http://www.wiredrevolution.com/virtualbox/setup-ssh-access-between-virtualbox-host-and-guest-vms
也有针对 NAT 的解决方案,但我还没有检查过。
在主机上使用 NAT 配置端口转发
VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,,2222,,22"
通过主机的 2222 端口连接到你的 Linux
ssh -l -p 2222 localhost
对于具有静态 IP 的仅主机网络,请检查以下内容:
它适用于 Solaris 10 和 Ubuntu 16.04,但应该很容易适应。
答案2
在两台 Linux 机器(一台 32 位 Ubuntu 主机和一台 64 位 Ubuntu VM)之间,我设法使用此端口转发使 ssh 正常工作:
然后从主机系统运行
ssh -p 5679 127.0.0.1
5679
用端口转发规则中输入的“主机端口”替换。
答案3
如果您不想处理端口转发,您可以设置一个作为主机接口出现的主机专用适配器,然后在客户机的该子网内添加一个 IP 地址。
脚步:
- 在 Virtualbox 中创建一个仅主机网络(GUI -> 设置 -> 网络)。输入
ifconfig
主机,然后会看到类似以下vboxnet0
内容inet 192.168.50.1
- 在 guest 中,添加 IP 地址:
ifconfig eth1 192.168.50.101 netmask 255.255.255.0 up
- 在主机中,执行
ssh [email protected]
进一步阅读:
答案4
非常有帮助,为我指明了正确的方向。谢谢。
我必须转到 > VirtualBox > 文件 > 主机网络管理器 > vboxnet0 > 手动配置适配器 > IPv4 地址并将其设置为客户机的 ifconfig。出于某种原因,主机和客户机给我的 IP 不同。
提到但要明确一点,我必须将 127.0.0.1 的端口转发端口设置为 5679,而不是默认的 ssh 端口 22,因为该端口已被主机自己的 ssh 通信使用。