多跳代理
多跳代理(Proxy Jump)允许通过一台或多台跳板机连接到目标服务器,常用于访问内网服务器或增强安全性。
使用场景
典型场景
本地电脑 → 跳板机(公网) → 目标服务器(内网)
- 内网访问:目标服务器没有公网 IP,只能通过跳板机访问
- 安全合规:企业要求所有 SSH 访问必须经过堡垒机
- 审计追踪:通过跳板机记录所有操作日志
- 网络隔离:生产环境与办公网络隔离
多跳场景
本地电脑 → 跳板机 A → 跳板机 B → 目标服务器
某些复杂网络环境需要经过多台跳板机才能到达目标服务器。
配置跳板机
准备工作
首先需要将跳板机作为普通 SSH 连接添加到 XTerminal:
- 创建跳板机连接,配置好认证方式
- 测试跳板机连接正常
- 保存跳板机连接
配置目标服务器
- 创建或编辑目标服务器连接
- 点击左侧 跳板机 选项卡
- 点击 添加跳板机
- 从下拉列表选择跳板机

界面说明
- 跳板机链路:显示当前配置的跳板机列表
- 拖拽排序:拖动左侧把手可调整跳板机顺序
- 删除按钮:点击右侧删除按钮移除跳板机
- 提示信息:列表顶部为第一跳,依次转发到下一跳直至目标主机
代理链(多跳)
添加多个跳板机
- 点击 添加跳板机 添加第一台跳板机
- 再次点击 添加跳板机 添加第二台
- 根据需要继续添加
调整顺序
跳板机顺序决定连接路径:
- 列表第一项:本地直接连接的第一跳
- 列表最后一项:连接目标服务器的最后一跳
拖拽跳板机项目可以调整顺序。
示例
跳板机链路:
1. Bastion-A(公网)
2. Bastion-B(DMZ)
连接路径:
本地 → Bastion-A → Bastion-B → 目标服务器
连接流程
当发起连接时,XTerminal 执行以下步骤:
- 连接第一台跳板机
- 通过第一台跳板机的端口转发连接第二台
- 依此类推,直到连接到目标服务器
- 最终在目标服务器上打开终端
整个过程自动完成,用户只需等待连接成功。
认证处理
- 每台跳板机使用各自配置的认证方式
- 如果跳板机使用交互认证,会依次弹出输入对话框
- 交互认证的跳板机会自动延长超时时间(至少 120 秒)
注意事项
连接限制
- 不能循环引用:跳板机链不能形成环路
- 跳板机不能有跳板机:已配置跳板机的服务器不能作为其他服务器的跳板机
性能考虑
- 每增加一跳会增加延迟
- 数据需要经过每台跳板机转发
- 建议跳板机数量不超过 3 台
跳数限制
XTerminal 对代理链的最大跳数没有硬性限制,但需要考虑:
| 跳数 | 建议 |
|---|---|
| 1-2 跳 | 推荐,延迟可控 |
| 3-4 跳 | 可用,可能有明显延迟 |
| 5+ 跳 | 不推荐,连接稳定性下降 |
延迟计算
代理链的总延迟约等于各跳延迟之和:
总延迟 ≈ 本地→跳板机A + 跳板机A→跳板机B + 跳板机B→目标服务器
例如:本地到 A 延迟 50ms,A 到 B 延迟 30ms,B 到目标 20ms,则总延迟约 100ms。
连接稳定性
- 任一跳板机断开会导致整个连接断开
- 建议为跳板机配置合适的心跳时间
- 网络不稳定时可能需要重新连接
故障排查
跳板机连接失败
- 单独测试跳板机连接是否正常
- 检查跳板机的认证配置
- 确认跳板机有权限转发连接
目标服务器连接失败
- 确认从跳板机可以访问目标服务器
- 检查目标服务器的防火墙规则
- 验证目标服务器的 SSH 服务正常
连接超时
- 增加连接超时时间
- 检查网络延迟
- 如果跳板机使用 2FA,确保有足够时间输入验证码
连接中断
- 检查各跳板机的心跳配置
- 查看跳板机的 SSH 配置(ClientAliveInterval 等)
- 考虑网络稳定性问题
与代理设置的区别
XTerminal 同时支持 跳板机 和 代理设置,两者可以组合使用:
| 特性 | 跳板机 | 代理设置 |
|---|---|---|
| 协议 | SSH | SOCKS5/HTTP |
| 认证 | SSH 认证 | 代理认证(如有) |
| 加密 | SSH 加密 | 依赖代理 |
| 典型用途 | 访问内网服务器 | 翻墙、企业代理 |
当同时配置时,代理优先于跳板机:
本地 → 代理服务器 → 跳板机 → 目标服务器