You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java Socket公网设备连接超时问题求助

Java公网Socket连接超时问题排查

问题概况

我是学了5个月的Java新手,想通过公网连接两个Socket程序,结果一直报连接超时。朋友能ping通我的公网IP(151.245.38.21),但Java客户端就是连不上。已经按网上说的做了端口转发,还是不行。

客户端代码

import java.io.*;
import java.net.*;

public class Client{
    public static void main(String[] args) throws IOException{
        
        Socket s = new Socket("151.245.38.21",113);
        
        while (true){

        } 
    }
}

服务端代码

import java.io.*;
import java.net.*;

public class SERVER{
    public static void main(String[] args) throws IOException{

        ServerSocket ss = new ServerSocket(113); // 端口转发用的就是这个端口

        Socket s = ss.accept();

        System.out.println("Connected!");
        System.out.println(s);
        System.out.println(ss);

        while (true){

        } 
    }
}

错误日志

Exception in thread "main" java.net.ConnectException: Connection timed out: connect
    at java.base/sun.nio.ch.Net.connect0(Native Method)
    at java.base/sun.nio.ch.Net.connect(Net.java:579)
    at java.base/sun.nio.ch.Net.connect(Net.java:568)
    at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:585)
    at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
    at java.base/java.net.Socket.connect(Socket.java:633)
    at java.base/java.net.Socket.connect(Socket.java:583)
    at java.base/java.net.Socket.<init>(Socket.java:507)
    at java.base/java.net.Socket.<init>(Socket.java:287)
    at Client.main(Client.java:7)

排查和解决建议

  • 换个端口试试:你用的113是知名端口(对应Ident协议),很多运营商或者系统防火墙会默认限制这类端口。换成1024以上的非知名端口,比如8080、9090,记得同步改服务端的ServerSocket和客户端的连接端口。
  • 核对端口转发规则:
    1. 确认路由器上的端口转发是把公网端口(和你Java程序用的端口一致)映射到服务端机器的内网IP和对应端口。
    2. 服务端机器的内网IP最好设成静态的,不然DHCP自动换IP的话,端口转发就白配了。
  • 检查服务端防火墙:服务端机器的系统防火墙(Windows防火墙、Linux的iptables等)可能拦截了这个端口的入站请求。要么给这个端口加个放行规则,要么临时关掉防火墙测试一下。
  • 先测本地连接:在服务端机器上用客户端连localhost:113(或者你换后的端口),先确认本地代码没问题,再排查公网的问题。
  • 确认公网IP没换:家庭网络的公网IP大多是动态的,可能你配端口转发的时候IP已经变了。重新查一下当前的公网IP,更新客户端代码里的IP地址。
  • 测试端口连通性:让朋友用telnet 151.245.38.21 113(或新端口)试试能不能连上,要是连不上,说明端口转发或者防火墙还是有问题。

内容的提问来源于stack exchange,提问作者MASEH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 01:45:43