Termius 链式连接(Jump Host) | 通过跳板机访问内网服务器
Jump Host 是什么
很多企业内网的服务器不对外暴露公网端口,外部访问需要先跳到一台公网可达的「跳板机」(也叫 Bastion Host),再从跳板机上 SSH 到内网服务器。这条链就是 Jump Host。
手动做的话是两步:
- SSH 到跳板机
ssh jump@bastion.example.com - 在跳板机里
ssh root@10.0.1.5
Termius 把这两步合并成一步——你直接双击内网服务器的主机配置,Termius 自动先连跳板、再连目标,中间过程对你透明。
配置 Jump Host
前提条件
- 跳板机已经在 Termius 里建好了主机配置
- 你能正常连接跳板机
- 跳板机上有内网服务器的路由
配置步骤
- 编辑目标内网服务器的主机配置
- 在配置面板里找到「Agent and Jump Hosts」区域
- 点击「Add Jump Host」
- 从已有主机列表里选择跳板机(或手动输入跳板机的连接信息)
- 设置跳板机连接后要执行的命令(一般是空,默认就好)
- 保存
配置完成后,双击这台内网服务器:
- Termius 自动先建立到跳板机的 SSH 连接
- 跳板机的 SSH 会话保持(不会退出)
- 再从跳板机发起对内网服务器的 SSH 连接
- 你看到的就是直接在目标服务器上的 Shell,跳板机这一层完全隐藏
多个 Jump Host
Termius 支持链式多层跳转:
本地电脑 → 跳板机 A → 跳板机 B → 内网服务器
配置时依次添加 Jump Host A、Jump Host B,顺序就是跳转顺序。每一层可以有独立的用户名、密钥。
SSH ProxyJump(-J 参数)的区别
OpenSSH 从 7.3 开始支持 -J 参数实现 Jump Host:
ssh -J jump@bastion user@10.0.1.5
Termius 的 Jump Host 功能底层也是用这个机制(ProxyJump),只是帮你把命令行参数转化成了可视化配置。所以:
- Termius 配好的 Jump Host 可以在终端里看到对应的 ProxyJump 信息
- 熟悉命令行的话,两者等价
Jump Host 的常见坑
跳板机和目标服务器用不同的密钥
配置 Jump Host 时可以分别指定每一层的认证方式:
- 跳板机用 Key A
- 目标服务器用 Key B
在目标服务器的主机配置里,Jump Host 区域指定跳板机用什么身份认证;目标服务器自身的 Identity 区域指定用什么密钥。两者独立。
跳板机禁用了某些 Shell 功能
有些跳板机为了安全只允许转发(不允许交互式 Shell)。这种情况下 Termius 的 Jump Host 仍然可以工作——因为 Jump Host 底层只是端口转发,不依赖跳板机的交互式 Shell。
跳板机超时断开
如果一段时间不操作,跳板机的 SSH 会话可能因空闲被断开。Termius 会检测到并尝试自动重连跳板机。如果跳板机配置了 ServerAliveInterval,可以在跳板机的主机配置里设置 Keep Alive 时间(比如 60 秒)来保活。
Port Forwarding 通过 Jump Host
Termius 的端口转发规则也能通过 Jump Host 生效。比如:
- 你想访问内网服务器上的 MySQL(端口 3306)
- MySQL 不对外暴露,需要走跳板机
- 配置内网服务器的主机,加上 Jump Host
- 然后在这台主机上配置 Port Forwarding(本地端口 3307 → 内网 10.0.1.5:3306)
Termius 会自动先连跳板机,再在跳板机和目标之间建立转发链路,你在本地用 mysql -h 127.0.0.1 -P 3307 就能访问。
安全场景
Jump Host 的典型安全场景:
- 生产环境隔离——只有运维能连跳板机,跳板机才能进生产内网
- 合规审计——跳板机上记录所有 SSH 日志,实现操作审计
- 零信任架构——跳板机本身加了 MFA,多一层验证
Termius 作为客户端,在这些场景里配合跳板机使用,不做任何绕过。
下一篇「批量导入与主机迁移」讲如何从其他 SSH 客户端迁移主机列表。