本地转发
本文介绍如何使用 XTerminal 配置本地端口转发,实现从本机访问远程服务器或其内网中的服务。
工作原理
本地转发(Local Forwarding)在本机开启一个监听端口,当有连接访问该端口时,流量通过 SSH 隧道加密传输到远程目标。
本机应用 --> 本机监听端口 --> [SSH 加密隧道] --> SSH 服务器 --> 远端目标
等效命令行:
ssh -L [本机地址:]本机端口:远端地址:远端端口 user@server
使用场景
| 场景 | 说明 |
|---|---|
| 访问远程数据库 | 数据库只监听 127.0.0.1,无法直接访问 |
| 访问内网服务 | 通过跳板机访问内网中的 Web、Redis 等服务 |
| 安全连接 | 为不加密的协议(如 HTTP)提供加密通道 |
| 绕过限制 | 本地网络无法直接访问目标,但服务器可以 |
配置步骤
1. 进入隧道管理
点击顶部导航栏的隧道标签,进入端口转发管理页面。
2. 新建转发规则
点击**+ 隧道**按钮,打开创建窗口。
3. 选择本地转发类型
在类型选项中选择本地转发(从本机访问远端)。

4. 填写配置信息
| 字段 | 说明 | 示例 |
|---|---|---|
| 分组 | 可选,选择所属分组 | 数据库 |
| 名称 | 转发规则名称 | 访问远端 MySQL |
| 服务器 | 选择 SSH 服务器 | 生产服务器 |
| 本机监听地址 | 本机监听的 IP 地址 | 127.0.0.1 |
| 本机端口 | 本机监听的端口号 | 3307 |
| 远端目标地址 | 要连接的目标地址 | 127.0.0.1 |
| 远端端口 | 要连接的目标端口 | 3306 |
配置说明:
- 本机监听地址:通常填
127.0.0.1,表示只允许本机访问;填0.0.0.0则允许局域网内其他设备访问 - 远端目标地址:填
127.0.0.1表示连接 SSH 服务器本机的服务;也可以填服务器内网中其他主机的 IP 地址
5. 保存并启动
- 点击创建按钮保存配置
- 在列表中找到新建的规则
- 点击开始转发按钮启动隧道
示例:访问远程数据库
假设需要访问生产服务器上的 MySQL 数据库,数据库只监听 127.0.0.1:3306。
配置方案:
| 配置项 | 值 |
|---|---|
| 类型 | 本地转发 |
| 名称 | 生产环境 MySQL |
| 服务器 | 生产服务器(192.168.1.100) |
| 本机监听地址 | 127.0.0.1 |
| 本机端口 | 3307 |
| 远端目标地址 | 127.0.0.1 |
| 远端端口 | 3306 |
使用方法:
启动转发后,使用数据库客户端连接 127.0.0.1:3307 即可访问远程 MySQL。
# 命令行连接
mysql -h 127.0.0.1 -P 3307 -u root -p
# 或在数据库工具中配置
Host: 127.0.0.1
Port: 3307
示例:访问内网 Web 服务
假设服务器内网中有一台 Web 服务器 10.0.0.50:80,本机无法直接访问。
配置方案:
| 配置项 | 值 |
|---|---|
| 类型 | 本地转发 |
| 名称 | 内网 Web 管理后台 |
| 服务器 | 跳板机 |
| 本机监听地址 | 127.0.0.1 |
| 本机端口 | 8080 |
| 远端目标地址 | 10.0.0.50 |
| 远端端口 | 80 |
使用方法:
启动转发后,在浏览器中访问 http://127.0.0.1:8080 即可打开内网 Web 页面。
快速填充
创建时可以使用快速填充模板:
- 本地转发: MySQL 3306 -> 3307:快速配置 MySQL 访问
- 本地转发: Web 80 -> 8080:快速配置 Web 服务访问
点击模板按钮后会自动填充常用配置值,根据实际情况修改即可。
常见问题
端口被占用
问题:启动转发时提示端口被占用。
解决方案:
- 更换一个未被占用的本机端口
- 或关闭占用该端口的程序
检查端口占用:
# macOS / Linux
lsof -i :3307
# Windows
netstat -ano | findstr :3307
无法连接远端服务
问题:转发启动成功,但连接本机端口时超时或拒绝。
排查步骤:
- 确认 SSH 服务器可以访问远端目标(在服务器上测试
telnet 目标地址 目标端口) - 检查远端目标地址和端口是否正确
- 确认远端服务是否在运行
连接中断
问题:转发过程中连接突然断开。
原因:SSH 连接断开会导致转发终止。
解决方案:
- 检查网络连接稳定性
- 在 SSH 配置中设置心跳保活
- 重新启动转发