解决JumpServer中RemoteApp连接错误:服务器拒绝连接问题
解决JumpServer中RemoteApp连接错误:服务器拒绝连接问题
【免费下载链接】JumpServer 广受欢迎的开源堡垒机 项目地址: https://gitcode.com/feizhiyun/jumpserver
在使用JumpServer进行应用程序发布时,可能会遇到RemoteApp连接错误,提示“Server refused connection (wrong security type?)”。这类问题通常与Windows服务器的配置有关,尤其是安全策略和用户权限设置。本文将详细分析该问题的原因,并提供逐步的解决方案。
问题背景
用户尝试通过JumpServer终端访问已发布的Web应用程序时,遇到连接错误。尽管应用程序发布机器的状态显示正常,且从服务器内部可以直接访问目标网页(例如http://192.168.10.10),但通过JumpServer连接时失败。错误日志中显示FreeRDP连接尝试被服务器拒绝,并提示“wrong security type?”。
根本原因分析
经过排查,发现问题的根本原因在于JumpServer管理的账户(以js_或jms_前缀命名)未被添加到Windows服务器的“Remote Desktop Users”组中。默认情况下,Windows RDP连接要求用户必须属于该组,否则连接会被拒绝。
解决方案
步骤1:检查用户组权限
- 登录到目标Windows服务器(例如Windows Server 2019)。
- 打开“计算机管理”工具(compmgmt.msc)。
- 导航到“系统工具” -> “本地用户和组” -> “组”。
- 双击“Remote Desktop Users”组,确保JumpServer使用的账户(如js_xxx或jms_xxx)已添加到该组中。如果没有,请手动添加。
步骤2:验证网络连通性
确保JumpServer服务器能够访问目标Windows服务器的RDP端口(默认3389)。可以通过以下命令在JumpServer容器内测试:
docker exec -it jms_core bash
apt update && apt install -y telnet
telnet <目标IP> 3389
如果连接成功,说明网络层面没有问题。
步骤3:检查Windows组策略设置
某些组策略设置可能会影响RDP连接。请检查以下策略:
- 运行
rsop.msc打开组策略结果工具。 - 导航到“计算机配置” -> “管理模板” -> “Windows组件” -> “远程桌面服务” -> “远程桌面会话主机”。
- 确保“允许用户通过远程桌面服务远程连接”已启用。
步骤4:检查安全日志
在Windows事件查看器中检查安全日志(eventvwr.msc -> Windows日志 -> 安全),查找与RDP连接相关的失败事件。这可以帮助识别权限或策略问题。
步骤5:使用Python测试连接
JumpServer内置了FreeRDP库,可以通过Python脚本测试连接:
docker exec -it jms_core bash
source /opt/py3/bin/activate
python -c "import pyfreerdp; print('连接测试结果:', pyfreerdp.check_connectivity('<目标IP>', 3389, '<用户名>', '<密码>', '', 0))"
如果返回True,说明FreeRDP可以正常连接。
注意事项
- 确保目标Windows服务器使用的是受支持的操作系统(如Windows Server 2019)。
- 如果目标应用程序使用HTTPS且证书无效,可能会影响连接。建议使用有效的证书或调整JumpServer的证书验证设置。
- 社区版JumpServer支持Web应用程序发布,但需确保所有配置正确。
总结
JumpServer的RemoteApp功能依赖于正确的Windows用户权限和网络配置。通过将JumpServer管理账户添加到“Remote Desktop Users”组,并验证网络连通性,可以解决大多数连接拒绝问题。如果问题仍然存在,建议检查组策略设置和系统日志以获取更多线索。
【免费下载链接】JumpServer 广受欢迎的开源堡垒机 项目地址: https://gitcode.com/feizhiyun/jumpserver









