在xshell中使用ssh隧道访问远程服务

1. 引言:为什么需要 SSH 隧道?

  • 痛点引出:远程服务器上的 MySQL(3306)、Redis(6379)或一些内部 Web 系统(如数据库管理后台)为了安全,通常不对外网开放。
  • 解决方案:每次都登录服务器看数据太麻烦,用 SSH 隧道可以把远程服务"映射"到你本地,像访问本地服务一样访问它们。

  • Xshell 的优势:图形化界面,配置一次图形化保存,免去每次在命令行敲复杂命令的痛苦。

2. 核心原理简述

简单解释两种最常用的隧道模式,用通俗的语言配合流向说明:

  • 本地端口转发(Local Forwarding) :【最常用】把远程 服务器的端口,映射到本地电脑的端口。

    • 场景:本地电脑想用 Navicat 连接远程不对外开放的 MySQL。
  • 远程端口转发(Remote Forwarding) :把本地 的端口,映射到远程服务器的端口(常用于内网穿透)。

    • 场景:让外网的用户访问你本地电脑上正在开发的 Web 项目。

3. 实战演练:Xshell 配置本地端口转发(以 MySQL 为例)

这是读者最想看的部分,建议采用"步骤 + 截图提示"的方式编写:

  • 第一步:打开会话属性

    • 在 Xshell 中建立好与远程服务器的连接。

    • 右键会话 -> 属性 -> 点击左侧的 "连接" -> "SSH" -> "隧道"

  • 第二步:添加转移规则

    • 点击"添加"按钮。

    • 类型 :选择 Local (Outgoing)

    • 源主机 :填写 localhost127.0.0.1(代表你自己的电脑)。

    • 侦听端口 :本地准备用来监听的端口,比如 33060(避免跟本地 3306 冲突)。

    • 目标主机 :远程服务器看该服务时的地址,通常是 localhost127.0.0.1(因为是服务器自己访问自己的服务)。

    • 目标端口 :远程服务真正的端口,比如 3306

  • 第三步:连接与测试

    • 点击确定保存,连接该 Xshell 会话(注意:隧道必须在 Xshell 保持连接状态下才生效)。

    • 打开本地的数据库工具(如 Navicat),连接主机填 localhost,端口填 33060,即可成功连上远程数据库。

4. 进阶技巧与注意事项

  • 保持连接稳定:勾选 Xshell 会话属性中的"保持活动状态"(Keep Alive),防止因为长时间不操作导致 SSH 断开、隧道失效。

  • 动态端口转发(SOCKS 代理):可以顺带提一句,利用 Dynamic 模式,可以让 Xshell 充当一个正向代理服务器。

  • 安全提示:即使有隧道保护,数据库本身的密码也不要设置得太简单。

5. 结语

  • 总结 SSH 隧道是安全运维的利器,鼓励读者动手配置一次。
相关推荐
orion571 天前
Missing Semester Class1:course overview and introduction of shell
linux
用户120487221611 天前
Linux驱动编译与加载
linux·嵌入式
用户805533698032 天前
Input 子系统架构:Core、Handler、Driver 三层是怎么协作的
linux·嵌入式
用户805533698032 天前
RK-Forge外设系列开篇 - 把板子从「能启动」变成「能用」:Ethernet/SPI/MMC 三个纯接线外设
linux·github·嵌入式
七歌杜金房2 天前
我终于又有了自己的 Linux 电脑
linux·debian·mac
tntxia3 天前
linux curl命令详解_curl详解
linux
扛枪的书生3 天前
Linux 网络管理器用法速查
linux
顺风尿一寸3 天前
Java Socket 内核之旅:从 SocketChannel.read() 到 tcp_recvmsg 与 epoll 的完整调用链路
linux
XIAOHEZIcode4 天前
Ubuntu 终端美化全栈指南:Bash 到 Kitty 踩坑实录
linux·ubuntu·命令行
唐青枫4 天前
别再只会用 cron:Linux systemd Timer 定时任务实战详解
linux