tcp连接超时不必然表示对端未监听,本质是客户端发出syn后未收到syn-ack响应,可能因服务未监听、防火墙拦截、syn队列满、路由异常或nat问题,需逐层排查。

EasyVMS客户端启动后反复提示“连接超时”,说明客户端无法与后端服务建立稳定TCP连接,问题通常卡在三次握手阶段之前或期间,而非登录认证环节。
确认服务端进程是否存活
在部署EasyVMS服务的服务器上执行:ps -ef | grep easyvms,检查主进程(如easyvms-server或java -jar easyvms.jar)是否正在运行。
若无输出,说明服务未启动。直接执行启动脚本(如./start.sh)即可;若进程存在但状态为Z(僵尸)或<defunct></defunct>,需先kill -9残留进程再重启。
验证服务监听端口是否就绪
运行netstat -tuln | grep :8080(默认Web端口,具体以配置文件中server.port为准),确认有LISTEN状态条目。
若无返回,检查application.yml或application.properties中server.address是否被设为127.0.0.1——这会导致仅本地可访问,远程客户端必然超时。【必须改为0.0.0.0或服务器实际IP】
改完配置后需重启服务,否则修改不生效。
排查防火墙拦截行为
方法一:临时关闭系统防火墙测试
CentOS 7/8执行systemctl stop firewalld;Ubuntu执行ufw disable。关闭后立即用另一台机器telnet 服务器IP 端口测试连通性。
方法二:放行指定端口(推荐长期使用)
CentOS执行:firewall-cmd --permanent --add-port=8080/tcp && firewall-cmd --reload;Ubuntu执行:ufw allow 8080。
注意:云服务器(如阿里云、腾讯云)还需在安全组中额外放行该端口,控制台操作路径为「云服务器ECS → 实例 → 安全组 → 配置规则」。
检查反向代理配置(Nginx/Apache)
若EasyVMS前端经Nginx反代,需确认以下三点:
① Nginx配置中proxy_pass指向地址正确,且后端服务确实在该地址+端口上监听;
② proxy_read_timeout和proxy_connect_timeout不能小于30秒,否则大屏加载或设备列表拉取时易触发超时;
③ 若启用HTTPS,务必检查proxy_set_header X-Forwarded-Proto https是否添加,缺失将导致部分接口重定向到HTTP而失败。
定位客户端网络路径阻断点
第一步:在客户端机器执行ping 服务器IP,不通则说明基础路由失败,检查网线、网关、跨VLAN策略;
第二步:若ping通但telnet 服务器IP 端口失败,说明端口被拦——此时回到上一步检查防火墙与安全组;
第三步:若telnet通但EasyVMS仍报超时,抓包确认:在客户端运行tcpdump -i any port 端口 -w easyvms.pcap,启动EasyVMS,复现超时后停止抓包,用Wireshark打开查看是否有SYN发出但无SYN-ACK返回——若有,证明请求被中间设备(如企业级WAF、上网行为管理器)静默丢弃。











