1台本地主机上的2台虚拟盒机器之间的TCP连接。

问题描述 投票:0回答:1

我用java写了一个使用TCP连接的ClientServer应用。为了让客户端运行,我需要向它提供服务器的IP。它在一个Windows上的两个控制台上运行得很好,IP=localhost,但在两个VBoxes上的linux上就不行了。我试着检查了虚拟机的IP是什么。ifconfig 但它只是显示127.0.0.1,这不工作。我应该更改虚拟机的一些网络设置,还是寻找其他IP?当我尝试在IP=127.0.0.1的情况下运行客户端时,得到的错误是 "连接拒绝"。我应该怎么做?

java tcp server virtual-machine virtualbox
1个回答
0
投票

127.0.0.1是本地主机或环回地址。它总是意味着本地机器(因此,localhost)。因此,如果你有VB1和VB2的virtualbox系统,VB1的127.0.0.1将指向VB1,而VB2的将指向VB2。如果'ifconfig'只显示127.0.0.1,那么你的网络接口没有连接到你的局域网--无论是物理的还是虚拟的。

换句话说:如果你在同一个虚拟机(或物理机)上运行服务器和客户端,127.0.0.1就可以了。如果它们是网络上的两台不同的主机,那么它们之间将无法通信。

你需要确保他们的网络接口被配置为共享子网的方法。我通常使用 "桥接",这样VB主机在我的物理网络上实际上是他们自己的机器。你可以查看这里的选项。

https:/www.virtualbox.orgmanualch06.html#network_nat

然后你需要在服务器主机上使用ifconfig来获取客户端连接的IP地址。

另外别忘了检查两台机器的防火墙设置。

© www.soinside.com 2019 - 2024. All rights reserved.