SSH 端口转发实战:三分钟打通内网服务

举报
yd_240716394 发表于 2026/10/31 18:13:58 2026/10/31
【摘要】 SSH 端口转发实战:三分钟打通内网服务本地在云服务器上跑着一个只能本机访问的管理面板,家里的笔记本想直接访问它,又不想把端口暴露到公网,这时候 SSH 端口转发就是最趁手的工具。不用装任何额外软件,一条命令搞定。 三种转发,一张图记清SSH 的端口转发分三种,按流量方向记忆:本地转发(-L):把远端服务"拉"到本地来。适合"我要访问内网里的东西"。远程转发(-R):把本地服务"推"到远端...

SSH 端口转发实战:三分钟打通内网服务

本地在云服务器上跑着一个只能本机访问的管理面板,家里的笔记本想直接访问它,又不想把端口暴露到公网,这时候 SSH 端口转发就是最趁手的工具。不用装任何额外软件,一条命令搞定。

三种转发,一张图记清

SSH 的端口转发分三种,按流量方向记忆:

  • 本地转发(-L):把远端服务"拉"到本地来。适合"我要访问内网里的东西"。
  • 远程转发(-R):把本地服务"推"到远端去。适合"让外网访问我本地的服务"。
  • 动态转发(-D):本地起一个 SOCKS5 代理,流量按需走。适合"临时翻一类的需求"、“批量访问多个内网地址”。

实战一:本地转发访问内网面板

场景:ECS 上有一个 Prometheus 面板监听在 127.0.0.1:9090,安全组没放行 9090。

ssh -N -L 9090:127.0.0.1:9090 user@your-ecs-ip

这条命令的含义:把本机的 9090 端口转发到 ECS 上的 127.0.0.1:9090。建好隧道后,浏览器打开 http://localhost:9090 就能看到面板了,流量全程走 SSH 加密通道。

常用参数说明:

  • -N:不执行远程命令,只建隧道;
  • -f:转入后台运行(配合 -N 使用);
  • -o ServerAliveInterval=60:防止长时间空闲被网关掐断。

一个更健壮的写法:

ssh -fN -o ServerAliveInterval=60 -o ServerAliveCountMax=3 \
  -L 9090:127.0.0.1:9090 user@your-ecs-ip

实战二:远程转发让外网访问本地服务

场景:本地开发了一个 Webhook 接收服务(localhost:8080),想让第三方平台回调它,但本地没有公网 IP。

ssh -N -R 8080:127.0.0.1:8080 user@your-ecs-ip

建好后,第三方访问 http://your-ecs-ip:8080 就等于访问了你本地的 8080。注意两点:远端 sshd 必须开 GatewayPorts yes(否则只能从远端本机访问该端口);这个端口会占用公网入口,用完记得关掉。

实战三:动态转发当临时代理

场景:内网有一批地址(数据库、内部 API)要临时调试,一个个建转发太麻烦。

ssh -N -D 1080 user@your-ecs-ip

本地就多了一个 SOCKS5 代理 127.0.0.1:1080。浏览器装个代理切换插件(比如 SwitchyOmega),配一条"内网网段走 SOCKS5"的规则,就能直接访问内网资源了。调试完关掉隧道即可,不留痕迹。

排错清单

  1. 连接建上了但端口不通:先 ss -tlnp | grep 端口号 确认本地监听是否真的起来了。
  2. 隧道用着用着断了:加上 ServerAliveInterval,或者用 autossh 做自动重连:
    autossh -M 0 -fN -o ServerAliveInterval=30 -L 9090:127.0.0.1:9090 user@your-ecs-ip
    
  3. 提示 bind: Address already in use:本地端口被占用了,换一个本地端口,比如 -L 19090:127.0.0.1:9090。

一句话总结

-L 拉进来,-R 推出去,-D 做代理。记住这三个方向,内网穿透的八成场景一条命令就能解决,剩下的两成再考虑 frp 之类的专用工具也不迟。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。