admin 管理员组文章数量: 1184232
SSH 高级应用:远程端口转发暴露内网服务,临时演示不求人
前言:为什么需要 SSH 远程转发?
你是否遇到过这些 “临时演示” 的尴尬场景?
- 本地开发的 Web 项目(如 127.0.0.1:8080),想让客户远程访问看效果,却不知道怎么暴露到外网;
- 公司内网的测试数据库(192.168.1.10:3306),同事在外网想临时连接调试,搭 VPN 太麻烦、改路由器端口映射又没权限;
- 本地运行的小程序后端服务,需要让外部服务器回调测试,却找不到简单的暴露方式。
其实,SSH 远程转发(Remote Port Forwarding) 就是解决这些问题的 “轻量神器”—— 无需额外安装软件,仅用一台可 SSH 登录的公网服务器(如阿里云、腾讯云轻量机),就能通过加密隧道将内网服务 “映射” 到公网,外部只需访问公网服务器的指定端口,就能穿透到内网服务,用完即关,安全又便捷。
本文全程实战,从 “原理拆解→多场景指令→问题排查”,带你掌握内网服务临时暴露的完整流程,看完就能上手。
一、先搞懂:SSH 远程转发的核心逻辑
在动手前,先明确远程转发的 “数据流向”,避免操作时踩坑(这是和本地转发的核心区别)。
1. 核心原理图示
| 外部设备(如客户电脑)→ 公网服务器(公网IP:暴露端口)→ SSH 加密隧道 → 本地设备(内网服务:内网端口) |
- 关键角色:
- 公网服务器:需有固定公网 IP(如 47.100.xxx.xxx),可通过 SSH 登录,作为 “中转跳板”;
- 本地设备:运行内网服务(如 Web、数据库),能 SSH 连接到公网服务器;
- 外部设备:需要访问内网服务的设备(如客户电脑、同事手机),只需能访问公网服务器。
2. 核心区别:远程转发 vs 本地转发
| 转发类型 |
数据流向 |
核心用途 |
| 本地转发 |
本地端口 → 公网服务器 → 内网 |
外网访问内网(如在家连公司数据库) |
| 远程转发 |
公网服务器端口 → 本地 → 内网服务 |
内网服务暴露到外网(如演示、测试) |
3. 前置条件
- 1 台可 SSH 登录的公网服务器(下文简称 “跳板机”),系统不限(CentOS、Ubuntu、Debian 均可);
- 本地设备已安装 SSH 客户端(Linux/macOS 自带,Windows 用 Git Bash、Windows Terminal 或 PuTTY);
- 内网服务已正常运行(如本地 Web 服务 127.0.0.1:8080、内网数据库 192.168.1.10:3306);
- 公网服务器需开放 “暴露端口”(如 8081,后续会讲防火墙配置)。
二、实战场景 1:暴露本地 Web 服务(最常用)
场景描述
- 本地设备(内网环境,无公网 IP)运行着一个 Web 服务,访问地址为 127.0.0.1:8080(如 Vue、SpringBoot 项目);
- 需让外部客户通过 http://公网IP:8081 访问这个本地 Web 服务,用于临时演示。
完整操作步骤(分 3 步:公网服务器配置 → 本地转发 → 外部测试)
步骤 1:公网服务器配置(关键!允许外部访问转发端口)
默认情况下,SSH 远程转发的端口仅绑定公网服务器的 127.0.0.1(仅服务器本地可访问),外部无法访问,必须先修改 sshd_config 开启 “网关端口”:
- 登录公网服务器(用你自己的服务器 IP、用户名和端口):
| # 格式:ssh 用户名@公网IP -p SSH端口(默认22,非默认需改) ssh root@47.100.xxx.xxx -p 22 |
- 修改 SSH 配置文件 sshd_config:
| # 编辑配置文件(CentOS、Ubuntu 路径一致) sudo vim /etc/ssh/sshd_config |
找到 GatewayPorts 配置项(默认可能注释或设为 no),修改为:
版权声明:本文标题:SSH 高级应用:远程端口转发暴露内网服务,临时演示不求人 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1763583095a3252202.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论