我在 Virtual Box 上使用
Linux rubi-pc 4.9.28-1-MANJARO #1 SMP PREEMPT 2017 年 5 月 14 日星期日 13:32:39 UTC x86_64 GNU/Linux
我有 2 台运行 Ubuntu 16.04 Server 的虚拟机。如果我在两台虚拟机的适配器 1 选项中都放置了仅主机适配器。我可以通过我的终端通过 SSH 连接到两台虚拟机。但没有互联网连接,尽管我已将 NAT 添加为辅助适配器。
如果我在两个虚拟机中都设置了 NAT,互联网连接就可以正常工作,但我无法通过 SSH 进入虚拟机,
在适配器 1 选项中启用了仅主机适配器的一台虚拟机的 ifconfig 详细信息
ubuntu@ubuntu:~$ ifconfig
enp0s3 Link encap:Ethernet HWaddr 08:00:27:a5:e7:1c
inet addr:192.168.56.103 Bcast:192.168.56.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fea5:e71c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:102 errors:0 dropped:0 overruns:0 frame:0
TX packets:109 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:17424 (17.4 KB) TX bytes:15890 (15.8 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:4960 errors:0 dropped:0 overruns:0 frame:0
TX packets:4960 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:367040 (367.0 KB) TX bytes:367040 (367.0 KB)
virbr0 Link encap:Ethernet HWaddr 52:54:00:4b:78:11
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
有什么办法可以修复互联网和 SSH 吗?
顺便说一句,我不能直接通过本地机器使用复制粘贴功能到虚拟机。
答案1
如果您设置了 NAT,通常您将无法从外部机器或主机登录到虚拟机。这是因为 NAT 正在转换内部 IP 地址,并且只能从虚拟机访问外部世界(包括互联网)
仅主机网络在主机和虚拟机之间创建一个隔离网络,因此不存在与互联网的连接。
您应该使用桥接网络。这样主机和虚拟机将位于同一个 L2 域中,并且应该在同一子网上获取 IP。检查每个虚拟机的默认网关是否与主机的默认网关匹配。这样您应该能够从虚拟机访问互联网并登录到虚拟机。
答案2
问题似乎是缺少接口配置。我在这里实现它的方法是找到物理接口名称,并将其添加到网络配置中。
在以下示例中,NAT 位于enp0s3
接口上。我在 vboxnet0 上添加了 VirtualBox 的仅主机接口。
# List all available interfaces
> ifconfig -a
ifconfig -a
enp0s3 Link encap:Ethernet HWaddr 08:00:27:5d:15:e6
...
enp0s8 Link encap:Ethernet HWaddr 08:00:27:4b:24:16
...
lo Link encap:Local Loopback
...
# Create an entry for the new interface
> vim /etc/network/interfaces
# Original
auto enp0s3
iface enp0s3 inet dhcp
# Added (here with VIM)
auto enp0s8
iface enp0s8 inet dhcp
# Start the interface
> ifup enp0s8
此时,接口应该已经获取 IP 并准备就绪。另请参阅这个答案在 Unix SE 上执行相关程序。