1. 引言:为什么需要 SSH 隧道?
- 痛点引出:远程服务器上的 MySQL(3306)、Redis(6379)或一些内部 Web 系统(如数据库管理后台)为了安全,通常不对外网开放。


-
解决方案:每次都登录服务器看数据太麻烦,用 SSH 隧道可以把远程服务"映射"到你本地,像访问本地服务一样访问它们。
-
Xshell 的优势:图形化界面,配置一次图形化保存,免去每次在命令行敲复杂命令的痛苦。
2. 核心原理简述
简单解释两种最常用的隧道模式,用通俗的语言配合流向说明:
-
本地端口转发(Local Forwarding) :【最常用】把远程 服务器的端口,映射到本地电脑的端口。
- 场景:本地电脑想用 Navicat 连接远程不对外开放的 MySQL。
-
远程端口转发(Remote Forwarding) :把本地 的端口,映射到远程服务器的端口(常用于内网穿透)。
- 场景:让外网的用户访问你本地电脑上正在开发的 Web 项目。
3. 实战演练:Xshell 配置本地端口转发(以 MySQL 为例)
这是读者最想看的部分,建议采用"步骤 + 截图提示"的方式编写:
-
第一步:打开会话属性
-
在 Xshell 中建立好与远程服务器的连接。
-
右键会话 -> 属性 -> 点击左侧的 "连接" -> "SSH" -> "隧道"。
-

-
第二步:添加转移规则
-
点击"添加"按钮。
-
类型 :选择
Local (Outgoing)。 -
源主机 :填写
localhost或127.0.0.1(代表你自己的电脑)。 -
侦听端口 :本地准备用来监听的端口,比如
33060(避免跟本地 3306 冲突)。 -
目标主机 :远程服务器看该服务时的地址,通常是
localhost或127.0.0.1(因为是服务器自己访问自己的服务)。 -
目标端口 :远程服务真正的端口,比如
3306。
-


-
第三步:连接与测试
-
点击确定保存,连接该 Xshell 会话(注意:隧道必须在 Xshell 保持连接状态下才生效)。
-
打开本地的数据库工具(如 Navicat),连接主机填
localhost,端口填33060,即可成功连上远程数据库。
-



4. 进阶技巧与注意事项
-
保持连接稳定:勾选 Xshell 会话属性中的"保持活动状态"(Keep Alive),防止因为长时间不操作导致 SSH 断开、隧道失效。
-
动态端口转发(SOCKS 代理):可以顺带提一句,利用 Dynamic 模式,可以让 Xshell 充当一个正向代理服务器。
-
安全提示:即使有隧道保护,数据库本身的密码也不要设置得太简单。
5. 结语
- 总结 SSH 隧道是安全运维的利器,鼓励读者动手配置一次。