Termius 端口转发基础 | 本地转发、远程转发、动态 SOCKS 三种类型
什么是端口转发
SSH 的端口转发(也叫 SSH 隧道)是把 SSH 连接当作一条加密的「管道」,通过这条管道转发 TCP 流量到本来网络上不可达的服务。
简单说就是:用 SSH 的加密连接,绕过网络隔离,访问到本来访问不到的端口。
三种类型速览
| 类型 | 场景一句话 | SSH 命令参数 |
|---|---|---|
| 本地转发(Local) | 我从自己电脑,通过跳板机,访问跳板机能访问但我不能的服务 | -L |
| 远程转发(Remote) | 我从外部,通过 SSH 服务器,回连到服务器所在内网的某个服务 | -R |
| 动态转发(Dynamic / SOCKS) | 把 SSH 服务器变成一个 SOCKS 代理,浏览器流量全部走它出去 | -D |
Termius 把这三种都做成了可视化配置界面,不需要记 -L -R -D 这些命令行参数。
本地转发(Local Forwarding)
场景: 你的公司开发机有 MySQL 数据库(内网 IP),你在家里通过 VPN + SSH 跳板机才能连上。本地转发让你在家可以直接用本地的 Navicat / DBeaver 连上这台 MySQL。
Termius 配置步骤

- 编辑跳板机的主机配置
- 找到 Port Forwarding 部分
- 点击「+」或「Add Rule」
- 选择 Local 类型
- 填写:
- Local Port:你本地机器上哪个端口接收连接(比如 3307)
- Remote Host:跳板机能访问到的目标主机(比如 MySQL 的内网 IP 10.0.1.50)
- Remote Port:目标端口(比如 MySQL 的 3306)
- 保存 → 点击规则旁边的开关启用
实际效果
启用后:
本地 Navicat → localhost:3307
↓(加密 SSH 隧道)
跳板机 → 10.0.1.50:3306(MySQL)
你不需要 SSH 到跳板机再手动 mysql -h 10.0.1.50,直接用本地 3307 端口就能连上。
远程转发(Remote Forwarding)
场景: 你本地跑了一个 Web 开发服务(localhost:3000),想让外部同事或测试环境能访问到。远程转发把服务器的某个端口(比如 8080)重定向回你本地的 3000。
配置步骤
- 编辑目标服务器的主机配置
- Port Forwarding → Add Rule
- 选择 Remote 类型
- 填写:
- Remote Port:服务器上的端口(比如 8080)
- Local Host:你本地的地址(localhost 或 127.0.0.1)
- Local Port:你本地跑的服务端口(3000)
- 启用
实际效果
启用后:
外部用户 → server.example.com:8080
↓(加密 SSH 隧道反向)
你的本地开发机 → localhost:3000(Node.js dev server)
⚠️ 远程转发需要服务器端的 sshd_config 允许(GatewayPorts yes),否则外部连不上服务器的 8080 端口。
动态转发 / SOCKS 代理(Dynamic)
场景: 你想让浏览器访问公司内网的网站,但在家 VPN 不稳定。动态转发把 SSH 服务器变成一个 SOCKS5 代理,浏览器流量全部走 SSH 隧道出去。
配置步骤
- 编辑服务器的主机配置
- Port Forwarding → Add Rule
- 选择 Dynamic 类型
- 填写:
- Local Port:本地 SOCKS 监听端口(比如 1080)
- 启用
实际效果
浏览器(配置 SOCKS5 代理 = localhost:1080)
↓
Termius(监听本地 1080)
↓(SSH 隧道)
SSH 服务器 → 目标网站(看起来像是从服务器的位置出去的)
浏览器配合使用
在浏览器里配置 SOCKS5 代理:
- Chrome:设置 → 搜索「代理」→ 系统代理 → SOCKS5 →
127.0.0.1+ 端口1080 - Firefox:设置 → 常规 → 网络设置 → 设置 → SOCKS5 Host
127.0.0.1Port1080
配好之后,浏览器访问任何网址都会走这条 SSH 隧道出去。
查看所有转发规则
Termius 左侧导航有专门的 Port Forwarding 页面:
- 显示所有 Vault 下的所有转发规则
- 每条规则显示当前状态(启用 / 禁用)
- 双击可以编辑,开关可以快速启用/停用
- 规则是跟着主机绑定的——需要主机连接上之后转发才生效
常见问题
规则启用但连不上?
- 确认主机已连接(转发建立在 SSH 会话之上)
- 确认本地端口没被其他程序占用(比如 3307 可能有别的 MySQL)
- 确认目标主机和端口在跳板机/服务器上可达(在服务器上
telnet 10.0.1.50 3306测试) - 远程转发需要服务器开
GatewayPorts yes
多台主机之间链式转发?可以。Termius 支持 Jump Host,你在跳板机上做的本地转发目标可以是跳板机能到达的任何地址——包括另一台服务器。
继续「共享端口转发与团队协作」了解团队场景下的端口转发管理。