跳到主要内容

本地转发

本文介绍如何使用 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. 保存并启动

  1. 点击创建按钮保存配置
  2. 在列表中找到新建的规则
  3. 点击开始转发按钮启动隧道

示例:访问远程数据库

假设需要访问生产服务器上的 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 服务访问

点击模板按钮后会自动填充常用配置值,根据实际情况修改即可。

常见问题

端口被占用

问题:启动转发时提示端口被占用。

解决方案

  1. 更换一个未被占用的本机端口
  2. 或关闭占用该端口的程序

检查端口占用:

# macOS / Linux
lsof -i :3307

# Windows
netstat -ano | findstr :3307

无法连接远端服务

问题:转发启动成功,但连接本机端口时超时或拒绝。

排查步骤

  1. 确认 SSH 服务器可以访问远端目标(在服务器上测试 telnet 目标地址 目标端口
  2. 检查远端目标地址和端口是否正确
  3. 确认远端服务是否在运行

连接中断

问题:转发过程中连接突然断开。

原因:SSH 连接断开会导致转发终止。

解决方案

  1. 检查网络连接稳定性
  2. 在 SSH 配置中设置心跳保活
  3. 重新启动转发

下一步