<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>堡垒机 on Liangweidong's blog</title><link>https://liangweidonggood.github.io/tags/%E5%A0%A1%E5%9E%92%E6%9C%BA/</link><description>Recent content in 堡垒机 on Liangweidong's blog</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Tue, 14 May 2024 00:00:00 +0800</lastBuildDate><atom:link href="https://liangweidonggood.github.io/tags/%E5%A0%A1%E5%9E%92%E6%9C%BA/index.xml" rel="self" type="application/rss+xml"/><item><title>JumpServer 堡垒机部署实战：资产访问、命令审计与录像回放</title><link>https://liangweidonggood.github.io/p/jumpserver-bao-lei-ji-bu-shu/</link><pubDate>Tue, 14 May 2024 00:00:00 +0800</pubDate><guid>https://liangweidonggood.github.io/p/jumpserver-bao-lei-ji-bu-shu/</guid><description>&lt;img src="https://liangweidonggood.github.io/p/jumpserver-bao-lei-ji-bu-shu/image/cover.jpg" alt="Featured image of post JumpServer 堡垒机部署实战：资产访问、命令审计与录像回放" /&gt;&lt;h2 id="背景"&gt;背景
&lt;/h2&gt;&lt;p&gt;传统运维痛点：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;10 个运维各有自己的 SSH 私钥&lt;/strong&gt;，离职交接痛苦&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;生产密码分散在 5 个 Excel 表&lt;/strong&gt;，更新一台机器要改 5 处&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;操作无法回溯&lt;/strong&gt;——出问题不知道谁 rm -rf 了数据库&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;越权操作&lt;/strong&gt;——开发用 root 登录生产，误操作无法控制&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;堡垒机（Bastion Host）&lt;/strong&gt; 解决以上所有问题：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;统一入口&lt;/strong&gt;：所有 SSH/RDP/Kubernetes 连接都从堡垒机走&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;凭证托管&lt;/strong&gt;：密码/密钥存堡垒机，运维&lt;strong&gt;不直接知道&lt;/strong&gt;生产密码&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;细粒度授权&lt;/strong&gt;：A 运维只能访问 Web 机器，B 运维只能看 MySQL&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;全程录屏 + 命令审计&lt;/strong&gt;：出问题能回放、追责&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;JumpServer&lt;/strong&gt;（&lt;a class="link" href="https://www.jumpserver.org" target="_blank" rel="noopener"
 &gt;jumpserver.org&lt;/a&gt;）是国产开源堡垒机的&lt;strong&gt;事实标准&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2014 年由 FIT2CLOUD 发起&lt;/li&gt;
&lt;li&gt;v3.x 用 Python/Django + Vue 重写&lt;/li&gt;
&lt;li&gt;支持 SSH/RDP/Telnet/VNC/Kubernetes/MySQL/Redis/Git 等 20+ 协议&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;企业版&lt;/strong&gt;（付费）有工单、资产自动发现、HA 等高级功能&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;适用场景&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;中小企业&lt;strong&gt;统一生产入口&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;多云/混合云资产的&lt;strong&gt;集中访问&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;等保、ISO 27001 等&lt;strong&gt;合规审计&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;外包/临时人员的&lt;strong&gt;权限管控&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;前置知识&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Linux + Docker 基础&lt;/li&gt;
&lt;li&gt;SSH/RDP 协议概念&lt;/li&gt;
&lt;li&gt;RBAC 权限模型&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="一核心架构与组件"&gt;一、核心架构与组件
&lt;/h2&gt;&lt;p&gt;JumpServer v3.x 是典型的&lt;strong&gt;多组件微服务&lt;/strong&gt;架构：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;span class="lnt"&gt;18
&lt;/span&gt;&lt;span class="lnt"&gt;19
&lt;/span&gt;&lt;span class="lnt"&gt;20
&lt;/span&gt;&lt;span class="lnt"&gt;21
&lt;/span&gt;&lt;span class="lnt"&gt;22
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ┌──────────────┐
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ Web 前端 │ ← Vue SPA
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ (jms_web) │ :80
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └──────┬───────┘
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ┌──────▼───────┐
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ Core API │ ← Django + DRF
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ (jms_core) │ :8080
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └──────┬───────┘
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ┌──────────────┬───────────┼───────────┬──────────────┐
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ │ │ │ │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ┌────▼────┐ ┌─────▼────┐ ┌────▼────┐ ┌────▼─────┐ ┌────▼────┐
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ Koko │ │ Lion │ │ Chen │ │ Magnus │ │ Kael │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ SSH代理 │ │ DB代理 │ │RDP/VNC │ │远程应用 │ │ 网关 │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ :2222 │ │ :33060 │ │:33070 │ │ 协议转换 │ │ │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └─────────┘ └──────────┘ └─────────┘ └──────────┘ └─────────┘
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ┌────▼────┐ ┌─────────┐
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ MySQL │ │ Redis │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ :3306 │ │ :6379 │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └─────────┘ └─────────┘
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;组件&lt;/th&gt;
					&lt;th&gt;作用&lt;/th&gt;
					&lt;th&gt;端口&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Core&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;核心 API、用户/资产/权限管理&lt;/td&gt;
					&lt;td&gt;:8080&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Koko&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;SSH 协议代理（取代旧 Lina）&lt;/td&gt;
					&lt;td&gt;:2222&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Lion&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;MySQL/PostgreSQL/Redis/MongoDB 数据库代理&lt;/td&gt;
					&lt;td&gt;:33060&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Chen&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;RDP/VNC 协议代理&lt;/td&gt;
					&lt;td&gt;:33070&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Magnus&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;远程应用（RemoteApp）协议代理&lt;/td&gt;
					&lt;td&gt;—&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Kael&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Kubernetes API 代理&lt;/td&gt;
					&lt;td&gt;—&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Web&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;静态资源服务&lt;/td&gt;
					&lt;td&gt;:80&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;MySQL&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;元数据&lt;/td&gt;
					&lt;td&gt;:3306&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Redis&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;缓存、Celery broker&lt;/td&gt;
					&lt;td&gt;:6379&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="二快速安装一键脚本"&gt;二、快速安装（一键脚本）
&lt;/h2&gt;&lt;p&gt;官方推荐用 &lt;code&gt;quick_start.sh&lt;/code&gt; 集成安装：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -sSL https://resource.fit2cloud.com/jumpserver/jumpserver/releases/latest/download/quick_start.sh &lt;span class="p"&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;安装过程会交互询问：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;是否配置 IPv6（&lt;strong&gt;默认 n&lt;/strong&gt;）&lt;/li&gt;
&lt;li&gt;自定义持久化目录（&lt;strong&gt;默认 &lt;code&gt;/data/jumpserver&lt;/code&gt;&lt;/strong&gt;，建议改到大盘）&lt;/li&gt;
&lt;li&gt;是否使用外部 MySQL/Redis（&lt;strong&gt;先用内置的，迁集群时再分&lt;/strong&gt;）&lt;/li&gt;
&lt;li&gt;是否配置外部访问端口（&lt;strong&gt;默认即可&lt;/strong&gt;）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;安装完成后输出：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;gt;&amp;gt;&amp;gt; 加载 Docker 镜像
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[jumpserver/core-ce:v3.10.9] pulling
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[jumpserver/chen:v3.10.9] pulling
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[jumpserver/redis:6.2] pulling
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[jumpserver/mariadb:10.6] pulling
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[jumpserver/kael:v3.10.9] pulling
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[jumpserver/lion:v3.10.9] pulling
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[jumpserver/koko:v3.10.9] pulling
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[jumpserver/magnus:v3.10.9] pulling
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[jumpserver/web:v3.10.9] pulling
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;gt;&amp;gt;&amp;gt; 安装配置 JumpServer
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;SECRETE_KEY: 8438fa2d36040662b3053b3d388d9813dacd193bc1b66066
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;BOOTSTRAP_TOKEN: 71NyJcmsMJTBYF4vpYL6z8i1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
 &lt;blockquote&gt;
 &lt;p&gt;⚠️ &lt;strong&gt;&lt;code&gt;SECRETE_KEY&lt;/code&gt; 和 &lt;code&gt;BOOTSTRAP_TOKEN&lt;/code&gt; 一定保存好&lt;/strong&gt;！多节点部署时所有节点必须用同样的两个值，否则节点无法加入集群。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="三初始化与登录"&gt;三、初始化与登录
&lt;/h2&gt;&lt;h3 id="31-web-访问"&gt;3.1 Web 访问
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;http://&amp;lt;jumpserver-ip&amp;gt;/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;默认账号：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用户名：&lt;code&gt;admin&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;密码：&lt;code&gt;ChangeMe&lt;/code&gt;（&lt;strong&gt;首次登录强制修改&lt;/strong&gt;）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="32-接受-license"&gt;3.2 接受 LICENSE
&lt;/h3&gt;&lt;p&gt;JumpServer 是 GPLv3 开源 + 商业 Enterprise 双协议。&lt;strong&gt;首次登录&lt;/strong&gt;需要：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;接受 GPLv3 协议&lt;/li&gt;
&lt;li&gt;修改 admin 密码（至少 8 位，字母+数字+特殊字符）&lt;/li&gt;
&lt;li&gt;设置 MFA（&lt;strong&gt;强烈建议开启&lt;/strong&gt; TOTP 或短信）&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="33-配置邮件--短信--ldap"&gt;3.3 配置邮件 / 短信 / LDAP
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;系统设置 → 邮件设置&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;SMTP 服务器：smtp.exmail.qq.com
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;SMTP 端口：465
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;SSL：启用
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;账号：noreply@example.com
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;密码：&amp;lt;授权码&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;发件人：JumpServer &amp;lt;noreply@example.com&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;LDAP 接入&lt;/strong&gt;（对接公司 AD）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;服务器：ldap://ldap.internal.example.com
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;BASE DN：DC=example,DC=com
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;管理员 DN：CN=jumpserver,OU=Service,DC=example,DC=com
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;密码：&amp;lt;LDAP 服务账号密码&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;SSO/OIDC 接入&lt;/strong&gt;（对接 Keycloak、Authing）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;系统设置 → 认证设置 → OIDC
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Client ID / Secret / Discovery URL
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="四资产管理"&gt;四、资产管理
&lt;/h2&gt;&lt;h3 id="41-创建资产树"&gt;4.1 创建资产树
&lt;/h3&gt;&lt;p&gt;按业务/环境/项目维度组织：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├─ 研发中心
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ ├─ 开发环境
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ │ ├─ Web 集群
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ │ └─ 数据库集群
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ └─ 测试环境
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├─ 运维部
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ ├─ 生产环境
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ │ ├─ 核心交易
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ │ ├─ 物流系统
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ │ └─ 数据仓库
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ └─ 灾备环境
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="42-添加资产手动"&gt;4.2 添加资产（手动）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;资产管理 → 资产列表 → 创建&lt;/strong&gt;：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;字段&lt;/th&gt;
					&lt;th&gt;填写&lt;/th&gt;
					&lt;th&gt;示例&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;主机名&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;web-prod-01&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;—&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;IP&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;10.8.33.21&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;内网 IP&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;协议组&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Linux&lt;/code&gt; / &lt;code&gt;Windows&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Linux 走 SSH&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;端口&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;22&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;—&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;账号&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;root&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;平台账号（用 SSH 密钥）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;平台&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Linux&lt;/code&gt; / &lt;code&gt;CentOS&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;自动探测 OS 类型&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;节点&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;生产环境/Web 集群&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;资产树位置&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="43-ssh-密钥推送"&gt;4.3 SSH 密钥推送
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;资产管理 → 平台账号 → 创建&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;名称：root-sshkey
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;用户名：root
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;认证方式：SSH 密钥
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;私钥：粘贴 id_rsa 内容
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;JumpServer &lt;strong&gt;首登会自动用密钥推送&lt;/strong&gt;（前提是目标机器 root authorized_keys 已经加了 JumpServer 公钥），或者管理员手工 ssh-copy-id。&lt;/p&gt;
&lt;h3 id="44-资产导入excel-批量"&gt;4.4 资产导入（Excel 批量）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;资产管理 → 资产列表 → 导入&lt;/strong&gt; → 下载模板 → 填好上传。&lt;/p&gt;
&lt;p&gt;适合几十/几百台机器的批量初始化。&lt;/p&gt;
&lt;h3 id="45-自动发现"&gt;4.5 自动发现
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;企业版支持&lt;/strong&gt;：通过 Ansible/SaltStack 自动发现网段内的资产并入库。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="五用户与权限"&gt;五、用户与权限
&lt;/h2&gt;&lt;h3 id="51-三层权限模型"&gt;5.1 三层权限模型
&lt;/h3&gt;&lt;p&gt;JumpServer 的权限抽象是教科书级的：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;用户（User）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓ 角色（Role）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓ 资产（Asset）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓ 账号（Account）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓ 动作（Action）
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;用户&lt;/strong&gt;：运维、开发、审计员、DBA&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;角色&lt;/strong&gt;：研发组、运维组、SA 组&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;资产&lt;/strong&gt;：前面资产树里的机器&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;账号&lt;/strong&gt;：root、appuser、mysql&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动作&lt;/strong&gt;：连接、上传、下载、删除&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="52-创建用户"&gt;5.2 创建用户
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;用户管理 → 用户列表 → 创建&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;用户名：zhangsan
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;姓名：张三
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;邮箱：zhangsan@example.com
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;角色：研发组
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;MFA：TOTP
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="53-创建授权规则"&gt;5.3 创建授权规则
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;权限管理 → 资产授权 → 创建&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;名称：开发组授权 Web 集群
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;用户：研发组
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;资产：研发中心/开发环境/Web 集群（用节点选择）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;账号：root（限制 root）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;动作：所有
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;生效时间：2024-01-01 ~ 2025-12-31
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;用户登录后&lt;strong&gt;只能看到授权内的资产&lt;/strong&gt;。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="六web-终端实操"&gt;六、Web 终端实操
&lt;/h2&gt;&lt;h3 id="61-ssh-终端"&gt;6.1 SSH 终端
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;工作台 → Web 终端 → SSH&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;选资产（如 web-prod-01）&lt;/li&gt;
&lt;li&gt;选账号（如 root）&lt;/li&gt;
&lt;li&gt;进入 Web Terminal，&lt;strong&gt;全程录屏&lt;/strong&gt;到 &lt;code&gt;/data/jumpserver/core/data/media/&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;支持的快捷键：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Ctrl + Insert&lt;/code&gt; 复制&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Shift + Insert&lt;/code&gt; 粘贴&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl + L&lt;/code&gt; 清屏&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="62-rdp-远程桌面"&gt;6.2 RDP 远程桌面
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;工作台 → 远程桌面 → RDP&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;选资产&lt;/li&gt;
&lt;li&gt;选账号（Windows 管理员）&lt;/li&gt;
&lt;li&gt;浏览器内&lt;strong&gt;直接打开&lt;/strong&gt;远程桌面（基于 Apache Guacamole），无需装 mstsc&lt;/li&gt;
&lt;li&gt;录屏同上&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="63-数据库"&gt;6.3 数据库
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;工作台 → 数据库 → MySQL&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;选资产&lt;/li&gt;
&lt;li&gt;选账号（如 root）&lt;/li&gt;
&lt;li&gt;内置 phpMyAdmin / pgAdmin 风格查询界面&lt;/li&gt;
&lt;li&gt;SQL 操作&lt;strong&gt;全部审计&lt;/strong&gt;（可回放）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="64-kubernetes"&gt;6.4 Kubernetes
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;企业版支持&lt;/strong&gt;：通过 Kael 代理 kubectl/dashboard。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="七审计与回放"&gt;七、审计与回放
&lt;/h2&gt;&lt;h3 id="71-在线会话监控"&gt;7.1 在线会话监控
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;审计台 → 在线会话&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;管理员可以&lt;strong&gt;实时看&lt;/strong&gt;任意用户的操作（&amp;ldquo;老大看着小弟干活&amp;rdquo;），必要时&lt;strong&gt;强制断开&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id="72-命令审计"&gt;7.2 命令审计
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;审计台 → 命令记录&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;每条命令都记录：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;谁（用户）&lt;/li&gt;
&lt;li&gt;在哪台机器（资产）&lt;/li&gt;
&lt;li&gt;用什么账号&lt;/li&gt;
&lt;li&gt;执行的命令&lt;/li&gt;
&lt;li&gt;完整回放视频&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="73-文件传输审计"&gt;7.3 文件传输审计
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;审计台 → 上传/下载&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;通过 JumpServer 上下传的文件&lt;strong&gt;全部记录&lt;/strong&gt;，可下载下来审计。&lt;/p&gt;
&lt;h3 id="74-录屏回放"&gt;7.4 录屏回放
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;审计台 → 会话回放&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;每条会话一个 &lt;code&gt;.cast&lt;/code&gt; 文件（asciinema 格式），可在线播放、跳转到任意时间点。&lt;/p&gt;
&lt;h3 id="75-危险命令拦截"&gt;7.5 危险命令拦截
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;系统设置 → 安全设置 → 命令过滤&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;危险命令（拦截）：
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rm -rf /
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dd if=/dev/zero of=/dev/sda
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkfs
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;fdisk
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;shutdown
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;reboot
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;init 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;halt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;告警命令（记录+告警）：
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;chmod 777
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cat /etc/passwd
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cat /etc/shadow
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;vi /etc/sudoers
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;用户执行危险命令时&lt;strong&gt;直接拒绝&lt;/strong&gt;并记录。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="八高可用与生产部署"&gt;八、高可用与生产部署
&lt;/h2&gt;&lt;h3 id="81-外部-mysql--redis"&gt;8.1 外部 MySQL + Redis
&lt;/h3&gt;&lt;p&gt;生产&lt;strong&gt;不&lt;/strong&gt;用内置 MariaDB/Redis（容器化，单点）。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/opt/jumpserver/config/config.txt&lt;/code&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# MySQL&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;DB_HOST&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;mysql.internal.example.com&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;DB_PORT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;3306&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;DB_USER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;jumpserver&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;DB_PASSWORD&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;your_db_password&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;DB_NAME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;jumpserver&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Redis&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;REDIS_HOST&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;redis.internal.example.com&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;REDIS_PORT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;6379&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;REDIS_PASSWORD&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;your_redis_password&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="82-多节点集群"&gt;8.2 多节点集群
&lt;/h3&gt;&lt;p&gt;JumpServer 3.x 原生支持&lt;strong&gt;节点水平扩展&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;span class="lnt"&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; [HAProxy / Nginx]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ┌────────────┬─────┴─────┬────────────┐
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ │ │ │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[Node 1] [Node 2] [Node 3] [Node N]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ │ │ │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └────────────┴─────┬─────┴────────────┘
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; [外部 MySQL + Redis]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;每个 Node 都跑完整组件（Core/Koko/Lion/Chen/Magnus/Kael），用 Nginx 分流到不同组件端口。&lt;/p&gt;
&lt;h3 id="83-koko-ssh-端口高可用"&gt;8.3 Koko SSH 端口高可用
&lt;/h3&gt;&lt;p&gt;Koko 的 &lt;code&gt;2222&lt;/code&gt; 端口是 SSH 入口，&lt;strong&gt;必须&lt;/strong&gt;用 HAProxy 或 LVS 漂移。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-nginx" data-lang="nginx"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# haproxy.cfg
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;frontend&lt;/span&gt; &lt;span class="s"&gt;jumpserver-ssh&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s"&gt;bind&lt;/span&gt; &lt;span class="s"&gt;*:2222&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s"&gt;mode&lt;/span&gt; &lt;span class="s"&gt;tcp&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s"&gt;default_backend&lt;/span&gt; &lt;span class="s"&gt;jumpserver-ssh-nodes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;backend&lt;/span&gt; &lt;span class="s"&gt;jumpserver-ssh-nodes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s"&gt;mode&lt;/span&gt; &lt;span class="s"&gt;tcp&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s"&gt;balance&lt;/span&gt; &lt;span class="s"&gt;roundrobin&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s"&gt;server&lt;/span&gt; &lt;span class="s"&gt;node1&lt;/span&gt; &lt;span class="n"&gt;10.8.33.21&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;2222&lt;/span&gt; &lt;span class="s"&gt;check&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s"&gt;server&lt;/span&gt; &lt;span class="s"&gt;node2&lt;/span&gt; &lt;span class="n"&gt;10.8.33.22&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;2222&lt;/span&gt; &lt;span class="s"&gt;check&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s"&gt;server&lt;/span&gt; &lt;span class="s"&gt;node3&lt;/span&gt; &lt;span class="n"&gt;10.8.33.23&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;2222&lt;/span&gt; &lt;span class="s"&gt;check&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="九升级与备份"&gt;九、升级与备份
&lt;/h2&gt;&lt;h3 id="91-升级"&gt;9.1 升级
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /opt/jumpserver-installer-v3.x.x
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./jmsctl.sh upgrade
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;升级前&lt;strong&gt;务必&lt;/strong&gt;备份数据库。&lt;/p&gt;
&lt;h3 id="92-备份"&gt;9.2 备份
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 备份数据库&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mysqldump -h &amp;lt;mysql-host&amp;gt; -u jumpserver -p jumpserver &amp;gt; jumpserver_&lt;span class="k"&gt;$(&lt;/span&gt;date +%F&lt;span class="k"&gt;)&lt;/span&gt;.sql
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 备份持久化目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tar -czf jumpserver_data_&lt;span class="k"&gt;$(&lt;/span&gt;date +%F&lt;span class="k"&gt;)&lt;/span&gt;.tar.gz /data/jumpserver
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 备份配置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tar -czf jumpserver_config_&lt;span class="k"&gt;$(&lt;/span&gt;date +%F&lt;span class="k"&gt;)&lt;/span&gt;.tar.gz /opt/jumpserver/config
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="93-卸载"&gt;9.3 卸载
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /opt/jumpserver-installer-v3.x.x
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./jmsctl.sh uninstall
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rm -rf /opt/jumpserver*
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rm -rf /data/jumpserver
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="十常见坑"&gt;十、常见坑
&lt;/h2&gt;&lt;h3 id="101-koko-连接-ssh-慢"&gt;10.1 Koko 连接 SSH 慢
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;原因&lt;/strong&gt;：Core 没配对外访问 IP，Koko 找不到 Core。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;对策&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# /opt/jumpserver/config/config.txt&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;CORE_HOST&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;http://&amp;lt;jumpserver-public-ip&amp;gt;:8080&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="102-录屏文件过大"&gt;10.2 录屏文件过大
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;对策&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;录屏保留期 30-90 天（系统设置 → 清理）&lt;/li&gt;
&lt;li&gt;S3/OSS 归档老录屏&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="103-数据库连接拒绝"&gt;10.3 数据库连接拒绝
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 看 lion 容器日志&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker logs jms_lion
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 常见：MySQL 没授权 jumpserver 用户&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="104-rdp-连不上-windows"&gt;10.4 RDP 连不上 Windows
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;检查&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Windows 开了远程桌面（系统属性 → 远程）&lt;/li&gt;
&lt;li&gt;防火墙开了 3389&lt;/li&gt;
&lt;li&gt;JumpServer 资产账号是 Administrator 组成员&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="小结"&gt;小结
&lt;/h2&gt;&lt;p&gt;JumpServer 是国产堡垒机的&lt;strong&gt;事实标准&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;一键部署&lt;/strong&gt;：&lt;code&gt;curl | bash&lt;/code&gt; 5 分钟起一个生产可用堡垒机&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;6 大组件&lt;/strong&gt;（Core/Koko/Lion/Chen/Magnus/Kael）覆盖 SSH/RDP/DB/K8s&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;三层权限&lt;/strong&gt;（用户/资产/动作）细粒度到命令级&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;全程录屏 + 命令审计&lt;/strong&gt;，等保合规利器&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;生产部署三原则&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;外部 MySQL/Redis&lt;/strong&gt;，别用容器内置的&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多节点 Koko HA&lt;/strong&gt;，避免 SSH 入口单点&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;危险命令拦截&lt;/strong&gt;，配白名单/黑名单&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;下一步&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;企业版（付费）的工单、资产自动发现、HA&lt;/li&gt;
&lt;li&gt;自建数据库代理 + 跳板机的&amp;quot;轻量堡垒机&amp;quot;（Teleport、Tailscale SSH）&lt;/li&gt;
&lt;li&gt;与 SOC/SIEM 对接，命令审计入事件流&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="2024-视角本文写于-2024-05半年后-jumpserver-v4--ai-助手的新王"&gt;2024+ 视角：本文写于 2024-05，半年后 JumpServer v4 + AI 助手的&amp;quot;新王&amp;quot;
&lt;/h2&gt;&lt;p&gt;本文写于 &lt;strong&gt;2024-05-14&lt;/strong&gt;——半年后（2024 年底到 2025 年中）JumpServer 生态又有几个大变化：&lt;/p&gt;
&lt;h3 id="一jumpserver-v402024-q3-发布"&gt;一、JumpServer v4.0+（2024-Q3 发布）
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;v4.0 重构&lt;/strong&gt;：把 Core API、Worker、Client 拆得&lt;strong&gt;更彻底&lt;/strong&gt;——支持 K8s 原生部署。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;新组件&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Client CLI&lt;/strong&gt;（&lt;code&gt;jmsctl&lt;/code&gt;）：命令行管理&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Celery 任务队列&lt;/strong&gt; 拆分到独立 worker（&lt;strong&gt;支持横向扩展&lt;/strong&gt;）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SAML 2.0 / OIDC 增强&lt;/strong&gt;（对接 Keycloak / Authing / Azure AD）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据库支持&lt;/strong&gt;：&lt;strong&gt;PostgreSQL 14+ / MySQL 8.0+&lt;/strong&gt; 强制要求。&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 2024-05 装的 v3.10.9&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 2024 年底 v4.0 升级&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /opt/jumpserver-installer-v4.0.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./jmsctl.sh upgrade
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="二ai-助手的零信任-ssh"&gt;二、AI 助手的&amp;quot;零信任 SSH&amp;quot;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;2024 LLM 革命&lt;/strong&gt;让&amp;quot;AI 运维助手&amp;quot;成为新风口：&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JumpServer 4.0&lt;/strong&gt; 集成 &lt;strong&gt;AI Command Helper&lt;/strong&gt;（基于 LLM 的命令辅助）：
&lt;ul&gt;
&lt;li&gt;自然语言转 shell 命令（&amp;ldquo;查昨天哪个用户改了 nginx 配置&amp;rdquo; → 自动生成查询命令）&lt;/li&gt;
&lt;li&gt;危险命令的&amp;quot;软拦截 + AI 解释&amp;quot;（拦截 + 推荐安全写法）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OpenAI Function Calling / MCP 协议&lt;/strong&gt;：让 LLM 直接调用 JumpServer API 做运维。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="三teleport-的现代竞争"&gt;三、&lt;code&gt;Teleport&lt;/code&gt; 的&amp;quot;现代竞争&amp;quot;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Teleport&lt;/strong&gt;（&lt;a class="link" href="https://github.com/gravitational/teleport" target="_blank" rel="noopener"
 &gt;gravitational/teleport&lt;/a&gt;，2024 是 v14+）：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;基于 RBAC + 证书&lt;/strong&gt;的零信任 SSH&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;审计全留痕 + 实时拦截&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;支持 K8s / Database / Web / Desktop&lt;/strong&gt; 一站式&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;开源版&lt;/strong&gt;也够用（Enterprise 版加 SSO、Device Trust）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 装 Teleport&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl https://goteleport.com/static/install.sh &lt;span class="p"&gt;|&lt;/span&gt; bash -s 14.0.0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;2024 市场份额&lt;/strong&gt;：JumpServer 仍是国内&lt;strong&gt;事实标准&lt;/strong&gt;，Teleport 在&lt;strong&gt;外企 / 出海&lt;/strong&gt;项目占主导。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="四tailscale-ssh--零信任的更轻方案"&gt;四、Tailscale SSH + 零信任的&amp;quot;更轻方案&amp;quot;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;2024 Tailscale SSH&lt;/strong&gt;（基于 Tailscale WireGuard VPN）让&amp;quot;SSH 跳板机&amp;quot;变得&lt;strong&gt;不再必要&lt;/strong&gt;：&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Tailscale 在每台机器&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tailscale up
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 直接 SSH 任意机器（只要装了 Tailscale）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ssh user@node-name
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Tailscale 自动用 ACL 限制谁能连哪台&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;优势&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;不用暴露 SSH 22 到公网&lt;/li&gt;
&lt;li&gt;不用维护 JumpServer&lt;/li&gt;
&lt;li&gt;零信任（每次 SSH 都要鉴权）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;劣势&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;不能录屏&lt;/strong&gt;（这是 JumpServer 强项）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;不能托管 SSH 密钥&lt;/strong&gt;（需要靠 Tailscale ACL 鉴权）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="五k8s-时代的堡垒机新形态"&gt;五、K8s 时代的堡垒机新形态
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;2024 K8s 场景&lt;/strong&gt;：&amp;ldquo;堡垒机&amp;quot;概念淡化，&lt;strong&gt;Service Mesh + OPA&lt;/strong&gt; 接管：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Teleport K8s 插件&lt;/strong&gt;：直接代理 &lt;code&gt;kubectl exec&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cloudflare Tunnel + Access&lt;/strong&gt;：通过 Zero Trust 鉴权&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Teleport / Boundary / Pomerium&lt;/strong&gt; 都是&amp;quot;现代堡垒机&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JumpServer 也在跟进&lt;/strong&gt;：2024 起支持 &lt;strong&gt;Kubernetes 资产&lt;/strong&gt;（通过 Kael 组件代理 kubectl）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="六数据库代理--凭证托管的一体化"&gt;六、数据库代理 + 凭证托管的&amp;quot;一体化&amp;quot;
&lt;/h3&gt;&lt;p&gt;2024 那篇提到 JumpServer 6 大组件。&lt;strong&gt;2024-05 视角下&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Lion 组件&lt;/strong&gt;（DB 代理）已支持&lt;strong&gt;原生 SQL 审计&lt;/strong&gt;（不只是录屏）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;凭证&lt;/strong&gt;走 &lt;strong&gt;HashiCorp Vault&lt;/strong&gt; 集成（2024 v3.10+ 支持）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Redis 7+ 兼容&lt;/strong&gt;（之前 6.x 时代有 bug）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MongoDB 5.0+ 兼容&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 集成 HashiCorp Vault&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 系统设置 → 凭证 Vault → Vault 地址 + Token&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="七x-powered-by-与合规"&gt;七、&lt;code&gt;X-Powered-By&lt;/code&gt; 与合规
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;2024 等保 2.0&lt;/strong&gt;（中国信息安全等级保护 2.0）已强制要求：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;操作录屏&lt;/strong&gt;（✅ JumpServer 满足）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;命令审计&lt;/strong&gt;（✅）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;会话保存 6 个月&lt;/strong&gt;（✅）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;强 MFA&lt;/strong&gt;（✅ TOTP/SMS/Email）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;国密算法&lt;/strong&gt;（SM2/SM3/SM4）—— JumpServer 4.0+ 支持&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2024 SOC 2 / ISO 27001&lt;/strong&gt; 国际合规（外企项目）：
&lt;ul&gt;
&lt;li&gt;Teleport 在国际合规更全面&lt;/li&gt;
&lt;li&gt;JumpServer 国内合规更完整&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="八ai-时代的ai-运维代理萌芽"&gt;八、AI 时代的&amp;quot;AI 运维代理&amp;quot;萌芽
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;2024 OpenAI / Anthropic 的 LLM&lt;/strong&gt; 已能直接执行 SSH 命令：&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2024-08 起&lt;/strong&gt;出现的 &lt;strong&gt;Devin / AutoGPT / Claude Code&lt;/strong&gt; 等 AI Agent，能：
&lt;ul&gt;
&lt;li&gt;自动 SSH 进服务器排查问题&lt;/li&gt;
&lt;li&gt;自动写代码、自动部署&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;未来&lt;/strong&gt;：JumpServer 可能要加 &lt;strong&gt;&amp;ldquo;AI 命令审核&amp;rdquo;&lt;/strong&gt;——AI 生成命令先过安全模型检查，再执行。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;源文档&lt;/strong&gt;：&lt;code&gt;os/linux/第三方tools/safe/jumpserver/jumpserver.md&lt;/code&gt;（46K 完整安装日志 + 配置实例）&lt;/p&gt;</description></item></channel></rss>