gpt4 book ai didi

java - 连接在远程 IP 上被拒绝,但在本地 IP 上被接受

转载 作者:搜寻专家 更新时间:2023-11-01 08:02:50 25 4
gpt4 key购买 nike

正如标题所说,我的服务器在本地机器上运行,我对其进行了测试和调试并且运行良好(服务器也是用 java 编写的)。但是当我尝试用我的远程 IP(而不是 192.168.0.113 我使用 146.255.x.x)测试它时,服务器没有收到任何东西,而客户端抛出了这个:

09-04 18:23:27.595: W/System.err(24241): java.net.ConnectException: failed to connect to /146.255.x.x (port 4040): connect failed: ECONNREFUSED (Connection refused)
09-04 18:23:27.595: W/System.err(24241): at libcore.io.IoBridge.connect(IoBridge.java:114)
09-04 18:23:27.595: W/System.err(24241): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
09-04 18:23:27.595: W/System.err(24241): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
09-04 18:23:27.595: W/System.err(24241): at java.net.Socket.startupSocket(Socket.java:566)
09-04 18:23:27.595: W/System.err(24241): at java.net.Socket.tryAllAddresses(Socket.java:127)
09-04 18:23:27.595: W/System.err(24241): at java.net.Socket.<init>(Socket.java:177)
09-04 18:23:27.595: W/System.err(24241): at java.net.Socket.<init>(Socket.java:149)
09-04 18:23:27.595: W/System.err(24241): at com.statenislandchat.Main$2$1$1.run(Main.java:146)
09-04 18:23:27.595: W/System.err(24241): Caused by: libcore.io.ErrnoException: connect failed: ECONNREFUSED (Connection refused)
09-04 18:23:27.595: W/System.err(24241): at libcore.io.Posix.connect(Native Method)
09-04 18:23:27.600: W/System.err(24241): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:85)
09-04 18:23:27.600: W/System.err(24241): at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
09-04 18:23:27.600: W/System.err(24241): at libcore.io.IoBridge.connect(IoBridge.java:112)
09-04 18:23:27.600: W/System.err(24241): ... 7 more

我很久以前就禁用了服务器 PC 上的防火墙,并且我确实转发了路由器上的端口。我尝试了一些端口扫描器,它们都检测到我端口上的服务,但我的客户端一次又一次地无法访问它。


已解决!似乎我的路由器启用了客户端隔离,这意味着设备无法在同一网络上相互连接。我尝试从远程客户端连接,但成功了。

最佳答案

ECONNREFUSED 表示已尝试连接并且远程主机回复说没有人在该端口上监听。这可能意味着几件事:

  1. 这真的是您的 IP 吗? ifconfig/ipconfig 说什么(提示:不一定是 whatismyip.com 会说什么)?
  2. Java 服务器是否监听所有接口(interface)?同一个端口可以在本地主机上打开并在其他接口(interface)上关闭。检查您在服务器上的绑定(bind)地址。
  3. 尝试 telnet + tcpdump,它是否显示数据包到达了正确的地址?

而这些仅仅是开始。

关于java - 连接在远程 IP 上被拒绝,但在本地 IP 上被接受,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18619195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com