【问题标题】:SSH but not ping [closed]SSH但不ping [关闭]
【发布时间】:2018-11-02 05:20:44
【问题描述】:

我有一个 Ubuntu 虚拟机(在 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 并让魔法发生。

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

【问题讨论】:

  • 您没有提供有关网络连接方式的任何详细信息,但我假设您使用的是 VirtualBox 并且您将适配器设置为 NAT(因为 10.0.2.15 是默认的 NAT ip VB),对吗?
  • 是的,没错。
  • 而电脑B是另一台VM还是MacOS主机网络中的电脑?
  • 计算机B是另一台运行busybox linux的计算机,主机(MacOS)的IP是10.1.10.97。 B 可以 ping 通主机。
  • 我以最好的方式回答了你的问题,但我认为这是题外话,应该发布在 superuser.com 上,因为它不是编程问题:stackoverflow.com/help/on-topic

标签: ssh embedded-linux wget


【解决方案1】:

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

你有两种选择:

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

对于案例 1,只需更改 Virtualbox 中的设置,然后获取新 IP。

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

通过这种方式,您将能够从计算机 B 获取主机 IP(不是 10.0.2.15,10.1.10.97)在端口 8080 上,并且此流量将被转发(目标 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)

这个答案有很多假设,我希望它有所帮助。

【讨论】:

    猜你喜欢
    • 2018-06-29
    • 2016-12-10
    • 2021-02-12
    • 1970-01-01
    • 2012-09-24
    • 2016-01-14
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多