症状
调用快速失败并报 java.net.ConnectException: Connection refused。这种立即失败有别于超时,且可能只影响某台主机或某个端口。
诊断
探测端口并查看监听:
nc -vz app.internal 8080
ss -ltnp | grep 8080
若远端显示 127.0.0.1:8080,说明仅监听回环,远端连接会被拒绝。
修复
绑定到正确的网卡并开放端口:
server:
address: 0.0.0.0
port: 8080
在客户端加入带退避的重试以应对启动间隙:
for (int i = 0; i < 5; i++) {
try { return connect(); }
catch (ConnectException e) { Thread.sleep(200L << i); }
}
验证
从客户端主机再次探测;端口可接受连接,Java 调用成功且不再抛出该异常。