尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

内网服务不想暴露公网?SSH隧道帮你安全搞定

内网服务不想暴露公网?SSH隧道帮你安全搞定
📅 发布时间:2026/6/20 2:26:55

线上有个MySQL在内网,开发环境想连上去调试,但又不想开公网端口。用SSH隧道,3分钟搞定。

为什么要用SSH隧道

很多时候我们有这样的需求:

  • 本地想访问服务器内网的数据库/Redis
  • 临时让外部访问本地的测试服务
  • 想通过跳板机访问多层内网的服务

这些场景,SSH隧道都能搞定,而且比开端口安全多了。

三种转发模式详解

1. 本地转发(-L):把远程端口映射到本地

场景:服务器内网有个MySQL(3306),本地想用Navicat连。

ssh -L 13306:127.0.0.1:3306 user@server

原理:

本地13306 → SSH隧道 → 服务器 → 127.0.0.1:3306

执行后,本地访问127.0.0.1:13306就相当于访问服务器上的MySQL。

实战配置:

# 后台运行,不占用终端
ssh -fNL 13306:127.0.0.1:3306 user@server# 参数说明:
# -f 后台运行
# -N 不执行远程命令
# -L 本地转发

高级用法:访问服务器能访问的其他内网机器

# 通过跳板机访问内网192.168.1.100的Redis
ssh -L 16379:192.168.1.100:6379 user@跳板机

2. 远程转发(-R):把本地端口映射到远程

场景:本地开发了个Web服务(8080),想让外网临时访问测试。

ssh -R 18080:127.0.0.1:8080 user@server

原理:

外网 → 服务器18080 → SSH隧道 → 本地8080

执行后,访问服务器IP:18080就能访问本地的8080服务。

注意:需要服务器sshd配置允许:

# /etc/ssh/sshd_config
GatewayPorts yes

3. 动态转发(-D):SOCKS5代理

场景:想通过服务器代理访问一些内网资源。

ssh -D 1080 user@server

原理:

本地SOCKS5代理(1080) → SSH隧道 → 服务器 → 目标地址

浏览器或其他软件配置SOCKS5代理127.0.0.1:1080,所有流量都走服务器出去。

curl测试:

curl --socks5 127.0.0.1:1080 http://内网地址

实战:通过跳板机访问多层内网

公司网络架构:本地 → 跳板机 → 生产内网 → 数据库

方案一:两跳隧道

# 第一跳:本地到跳板机
ssh -L 2222:生产服务器IP:22 user@跳板机# 第二跳:通过第一跳连接生产服务器
ssh -L 13306:127.0.0.1:3306 -p 2222 user@127.0.0.1

方案二:ProxyJump(推荐)

# SSH配置文件 ~/.ssh/config
Host 跳板机HostName 跳板机IPUser your_userHost 生产服务器HostName 生产内网IPUser your_userProxyJump 跳板机# 一条命令直连
ssh -L 13306:127.0.0.1:3306 生产服务器

保持连接不断开

SSH隧道容易因为空闲而断开,加上这些配置:

# ~/.ssh/config
Host *ServerAliveInterval 60ServerAliveCountMax 3TCPKeepAlive yes

或者用autossh自动重连:

# 安装
# Ubuntu: apt install autossh
# CentOS: yum install autossh
# Mac: brew install autossh# 使用(自动重连)
autossh -M 0 -fNL 13306:127.0.0.1:3306 user@server

常见问题排查

1. 连接被拒绝

# 检查SSH服务状态
systemctl status sshd# 检查端口监听
ss -tlnp | grep 22

2. 远程转发不生效

# 检查sshd配置
grep GatewayPorts /etc/ssh/sshd_config# 需要设置为yes并重启sshd

3. 连接后立即断开

# 检查是否加了-N参数
ssh -fNL 13306:127.0.0.1:3306 user@server
#      ^ 这个N很重要

说句实话

SSH隧道适合临时使用,用来调试很方便。但如果是长期需求,比如经常要远程访问内网服务、多台机器互联,配置起来就比较繁琐了。

我现在用星空组网,直接把需要的机器组到一个虚拟局域网里,互相访问就像在同一个内网,不用每次都配隧道,也不用担心连接断开,省事很多。

总结

模式 参数 场景 方向
本地转发 -L 访问远程内网服务 远程→本地
远程转发 -R 暴露本地服务到远程 本地→远程
动态转发 -D SOCKS5代理 全部流量

记住这个口诀:L是拉(把远程拉到本地),R是推(把本地推到远程),D是代理。


相关命令速查:

# 本地转发:访问远程MySQL
ssh -fNL 13306:127.0.0.1:3306 user@server# 远程转发:暴露本地Web
ssh -fNR 18080:127.0.0.1:8080 user@server# 动态代理
ssh -fND 1080 user@server# 查看已建立的隧道
ps aux | grep ssh

相关新闻

  • 第15周
  • 2025年数控折弯机模具厂家推荐及选型参考
  • 2025年口碑好的别墅座椅电梯厂家推荐,口碑好的别墅座椅电梯

最新新闻

  • 5步掌握FitGirl游戏启动器:高效管理压缩游戏的终极工具
  • 2026年西安评价高的玻璃门生产厂家哪家强 - 品牌鉴赏官2026
  • 江门报名 CPPM 注册采购经理哪家靠谱?机构选择避坑指南 - 众智商学院课程中心
  • 如何在OBS直播中添加实时语音识别字幕:免费开源插件终极指南
  • 如何快速掌握跨设备控制:终极多平台键鼠共享方案
  • 2026年台州市PMP培训机构哪家好?官方授权R.E.P.报考指南 - 众智商学院课程中心

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号