【问题标题】:Running client and server on different machine在不同的机器上运行客户端和服务器
【发布时间】:2017-05-26 11:23:36
【问题描述】:

我有 client.jsserver.js 已经设置好并且工作正常。现在唯一的问题是,我需要在一台机器上运行客户端,在另一台机器上运行服务器。

但是,通过使用以太网电缆连接,只能运行server.js。即使双方都能ping通对方的IP地址,客户端也无法连接。

我可以研究任何解决方案吗?非常感谢!

请注意,这将在虚拟机 ubuntu 上运行。例如,PC 1 将在 virtualbox ubuntu 上运行server.js,PC 2 将在 virtual box ubuntu 上运行client.js。但是,在运行server.js 之后,client.js 不会启动/加载。

【问题讨论】:

  • 你的 IP 正确吗?
  • 是的,我已经测试过了。我们可以互相ping通!请协助@Roljhon

标签: node.js server client ethernet


【解决方案1】:

当您在同一台机器上运行客户端和服务器时,您可以使用localhost 主机名或 IP 127.0.0.1 通过称为环回接口的东西进行连接,该接口基本上是一个虚拟网卡,可将所有内容路由回自身.

当它们位于不同的机器上时,您需要使用真实 IP 或主机名,因此您需要更新代码或配置以访问正确的 IP 或端口。

此外,防火墙可以阻止外部连接的端口,这对于localhost 来说很少这样做。您还需要确保您的端口没有被阻塞。

当然,对于不包括以下内容的问题,只能给出非常笼统的答案:

  • 错误信息
  • 使用的 IP 地址和端口
  • 使用的协议
  • 源代码

一般建议是:

  1. 检查您的 IP
  2. 检查您的防火墙

Ping 使用 ICMP 协议,因此可以与 ping 建立连接,但不能与我假设您正在使用的 TCP 建立连接(但同样,您没有指定)。当然,您永远无法确定您正在 ping 哪台机器,只有您得到了答案,所以理论上您可能正在 ping 自己。您需要获得正确的 IP。

要知道您服务器上的 IP 地址,请参阅这些答案:

【讨论】:

  • 当我使用虚拟机同时运行服务器和客户端时,这项工作是否有效,但两者都在不同的电脑上。例如,pc 1 将在 virtual box ubuntu 上运行 server.js,pc 2 将在 virtual box ubuntu 上运行 client.js。
  • @Marcus 这能解决您的问题吗?
  • 我发现我正在处理的端口是开放的并且没有被阻塞。我还确保防火墙允许来自传入 IP 地址的端口。但是,问题仍然存在,PC 2 无法连接到 PC 1。PC 1 运行 server.js,PC2 运行 client.js。 Client.js 不与 server.js 一起工作/运行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 2013-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多