SSH 但不能 ping

SSH but not ping

我有一个 Ubuntu VM(MacOS 主机上的 运行),我正在尝试连接到另一个 运行 Linux 的机器(busybox,IIRC)。

我可以从机器 A (Ubuntu-VM) ssh 到机器 B (busybox)。我可以从 A -> B ping 通,但无法从 B -> A ping 通。

机器A的IP为10.0.2.15,B的IP为10.1.10.216。

我的最终目标是能够在 B 上使用 wget 从 A 获取文件,我希望解决此 ping 问题将使 B 能够看到 A 并允许魔法发生。

我的网络理解力几乎为零,所以这可能是微不足道的,但非常感谢任何帮助。

当您使用 NAT 接口时,Virtualbox 将使用主机的 IP 地址屏蔽从您的虚拟机到外部网络的所有流量。为了澄清这一点,到达计算机 B 的流量来自 10.1.10.97(您的 MacOS 主机),这就是 B 可以 return 将流量发送到 A 的原因,因为它实际上是将它发送到主机和 Virtualbox正在将目标地址转换为 NAT 虚拟机。

您有两个选择:

  1. 将适配器类型更改为桥接(这将更改 Ubuntu 计算机上的 IP 地址,但如果您对网络知识不多,这也是最简单的方法)。
  2. 将主机中的一个端口转发到机器A(我认为这是最合适的解决方案,无需更改架构)

对于情况 1,只需更改 Virtualbox 中的设置然后获取新 IP 即可。

对于情况 2,您应该做的是转到机器设置,在网络部分,展开高级并设置端口转发,例如:

这样,从计算机 B 中,您将能够从端口 8080 上的主机 IP(不是 10.0.2.15,10.1.10.97)获取 wget,并且此流量将被转发(目标 NAT'd)到 10.0.2.15 使用:wget http://10.1.10.97:8080/path/in/ubuntu

您将永远无法直接从 10.1.10.216 指向 10.0.2.15,因为机器 B 没有到 10.0.2.15 的路由

我建议您阅读一些有关 NAT 的内容 (https://en.wikipedia.org/wiki/Network_address_translation)

这个回答有很多假设,希望对你有帮助。