Termius 中文文档 下载 App

Termius 端口转发常见陷阱与调试 | 规则启用了但连不上怎么排查

排查顺序:从外到内

端口转发失败时,按这个顺序查,能最快定位问题:

  1. Termius 侧:规则启用了吗?本地端口被占了吗?
  2. SSH 服务器侧:客户端连到服务器了吗?服务器能到目标地址吗?
  3. 目标服务侧:目标端口在监听吗?允许来自服务器的连接吗?

第一层:Termius 客户端

主机连接状态

转发建立在 SSH 会话之上。先确认:

规则启用状态

在 Port Forwarding 页面,每条规则有一个开关:

如果规则自动关了,可能是:

本地端口占用

Windows 查端口占用:

netstat -ano | findstr :3307
# 看最后一列的 PID,然后:
tasklist | findstr <PID>

macOS / Linux:

lsof -i :3307
# 或
ss -tlnp | grep 3307

如果本地 3307 已经被别的 MySQL 客户端占了,换一个端口(比如 3308),Termius 规则里同步改。

本地防火墙

Windows Defender 或 macOS 防火墙可能拦截 Termius 绑定本地端口。临时关了试试,如果能用就是防火墙的问题,给 Termius 加白名单。

第二层:SSH 服务器

服务器能到目标吗

这是最常见的坑。Termius 只负责建 SSH 隧道,服务器能不能连到目标是服务器自己的事。

在服务器的 SSH 终端里测试:

# 测试服务器能不能连到目标主机的目标端口
nc -zv 10.0.1.50 3306
# 或
telnet 10.0.1.50 3306

nc / telnet 超时 = 服务器到目标不通,排查方向:

SSH 服务器的 GatewayPorts(远程转发)

远程转发(-R)需要服务器端配置允许外部连接:

# 检查
grep GatewayPorts /etc/ssh/sshd_config

如果没有或设为 no,改成:

GatewayPorts yes

然后 systemctl restart sshd。

设完之后,外部用户才能通过服务器端口(比如 8080)访问到你本地的服务。

多网卡服务器

如果 SSH 服务器有多张网卡(公网 + 内网),转发规则里的目标地址要看清楚:

服务器端的 AllowTcpForwarding

极少数安全严苛的服务器会禁掉 SSH 转发:

# 检查
grep AllowTcpForwarding /etc/ssh/sshd_config

如果是 no 或 local 以外的限制值,需要管理员改。默认是 yes。

第三层:目标服务

端口是否监听

在服务器上确认目标服务端口是活的:

ss -tlnp | grep 3306
# MySQL 应该在监听

服务是否绑定了所有地址

很多数据库默认只绑定 127.0.0.1(只允许本机访问):

# 检查 MySQL 配置
grep bind-address /etc/mysql/mysql.conf.d/mysqld.cnf
# 应该是 0.0.0.0 或服务器内网 IP,不能是 127.0.0.1

如果绑定了 127.0.0.1,需要改成 0.0.0.0 并重启 MySQL。

服务的 ACL / 用户权限

比如 MySQL 的用户配置:

SELECT user, host FROM mysql.user;

如果你的 MySQL 用户只允许从 localhost 连接(root@localhost),通过转发过来的连接会被拒绝——因为对 MySQL 来说,连接是从服务器的某个 IP 进来的,不是 localhost。需要加一条允许从服务器 IP 或 % 连接的用户。

Debug Log

Termius 有转发的调试日志。如果上面都查过了还是不行,可以打开转发的 verbose log:

  1. 设置 → Port Forwarding → 开启 debug logging
  2. 启用规则后看 Termius 的日志输出
  3. 日志会告诉你规则建立在哪一步失败了(是本地绑定失败、SSH 隧道建立失败、还是远端连接失败)

快速诊断清单

检查项怎么查预期结果
主机连接正常?SSH 终端能跑 echo✅ 正常
规则已启用?Port Forwarding 页开关高亮✅ 高亮
本地端口空闲?netstat -ano / lsof✅ 空闲
服务器能到目标?在服务器上 nc -zv 目标IP 目标端口✅ connected
目标服务在监听?`ss -tlnpgrep 目标端口`✅ LISTEN
目标允许服务器的连接?临时关防火墙 / 改 bind 地址✅ 通

转发正常但速度慢

如果能连上但很慢: