客户端VNC报错:未能连接15900。Nginx代理转发后,报错断开连接。

JumpServer 版本:ce-v4.10.14-x86_64
部署方式:Linux单机部署
运行方式:安装包
一句话总结:Web使用VNC连接资产正常,但是客户端使用VNC报错。疑似网络部署问题。
具体过程:
(以下Linux服务器均为CentOs7,且所有机器均处于内网,存在VPN)
部署JumpServer所在服务器为A,IP地址:A.B.C.D:80。
已配置VNC的linux资产为B(端口5901)。
Windows11 PC为C,我在C上通过TigerVNC直接访问B一切正常。
在C机器上,通过“A.B.C.D:80”网页访问A,进而通过JumpServer的Web访问B也一切正常。


但是通过JumpServer客户端VNC访问B时,迅速报错:未能连接到“A.B.C.D:15900":Unable to connect to socket:由于目标计算机积极拒绝,无法连接。(10061)
image

我使用Nginx代理,把15900代理 转发到80或者http://192.168.244.144(该处参考官方文档:后端 JumpServer nginx 的 ip端口),等待较长一段时间后,就出现了新的报错:在建立会话之前,服务器已断开连接。
image

所涉及到的Nginx反向代理官方文档: 反向代理 - JumpServer 文档

以下为官方文档的教程,解决了第一个报错,但还存在第二个报错,请各位专家大牛批评指正,万分感谢
vi /etc/nginx/conf.d/jumpserver.conf
server {

listen 80;
server_name demo.jumpserver.org;  # 自行修改成你的域名

client_max_body_size 4096m;  # 上传文件大小限制

location / {
        # 这里的 ip 是后端 JumpServer nginx 的 ip
        proxy_pass http://192.168.244.144;
        proxy_http_version 1.1;
        proxy_buffering off;
        proxy_request_buffering off;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $remote_addr;
}

}

  1. 客户端VNC连接失败并报错“由于目标计算机积极拒绝,无法连接(10061)”,通常是因为JumpServer的Lion组件未正确暴露或代理配置不当。JumpServer通过Web连接VNC时使用的是WebSocket代理,而客户端直连需通过Lion组件转发TCP连接。

  2. 请确认JumpServer服务器的15900端口(Lion服务监听端口)是否已正确开放并监听:netstat -tunlp | grep 15900,若未监听,请检查Lion组件状态:jmsctl status

  3. 若使用Nginx反向代理,不建议将15900端口代理至80或Web服务端口,因Lion使用TCP长连接,需配置Nginx的stream模块进行TCP层转发,仅HTTP代理会导致连接断开。参考官方文档TCP反向代理配置

  4. 建议直接在客户端使用JumpServer的公网IP和15900端口连接,跳过Nginx代理测试联通性。若仍失败,请检查防火墙、安全组是否放行15900端口。

  5. 查看Lion组件日志排查详细错误:tail -f /opt/jumpserver/logs/lion.log