SSH而不是ping

SSH而不是ping,ssh,embedded-linux,wget,Ssh,Embedded Linux,Wget,我有一个Ubuntu虚拟机(运行在MacOS主机上),正在尝试连接到另一个运行Linux的机器(busybox,IIRC) 我可以用ssh从机器A(ubuntuvm)连接到机器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并允许魔术发生 我对网络的理解接近于零,因此这可能是微不足道的,但非常感谢任何帮助。当

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

我可以用ssh从机器A(ubuntuvm)连接到机器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可以将该通信量返回到A,因为它实际上正在将其发送到主机,而Virtualbox正在将目标地址转换到NAT虚拟机

你有两个选择:

  • 将适配器类型更改为Bridged(这将更改Ubuntu计算机上的IP地址,但如果您不太了解网络,这也是最简单的)
  • 将主机中的一个端口转发到机器a(我认为这是在不改变架构的情况下最合适的解决方案)
  • 对于案例1,只需更改Virtualbox中的设置,然后获取新的IP即可

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

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

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

    我建议你读一点关于NAT的书()


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

    您没有提供任何有关网络连接方式的详细信息,但我假设您使用的是VirtualBox,并且您将适配器设置为NAT(因为10.0.2.15是VB的默认NAT ip),对吗,这是正确的。计算机B是另一个VM或MacOS主机网络中的计算机?计算机B是另一台运行busybox linux的计算机,主机(MacOS)的IP是10.1.10.97。B can ping Host。我以最好的方式回答了您的问题,但我认为这是离题的,应该发布在superuser.com上,因为这不是一个编程问题: