登录
首页 >  文章 >  linux

Linux服务器如何配置SSH隧道实现内网穿透 转发本地端口方法

时间:2026-05-24 20:59:23 417浏览 收藏

今天golang学习网给大家带来了《Linux服务器如何配置SSH隧道实现内网穿透 转发本地端口方法》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点赞支持呀!一起加油学习~

ssh -L 实现本地端口转发无需改服务器配置或额外工具,5分钟内可通;常见失败原因是-L后目标主机地址写错——若服务与跳板机同机须写localhost,跨机则需跳板机能访问该内网IP且服务监听0.0.0.0。

Linux服务器如何配置SSH隧道实现内网穿透 转发本地端口方法

直接说结论:用 ssh -L 就能实现本地端口转发,不需要改服务器配置、不依赖额外工具,只要能 SSH 登录跳板机且它能访问目标服务,5 分钟内就能通。

ssh -L 命令里目标主机写错是最常见失败原因

很多人卡在“连得上跳板机,但本地端口就是不通”,问题往往出在 -L 后面的地址不是跳板机能解析/访问的地址。

  • 如果目标服务(比如 MySQL)和跳板机在同一台机器上,目标主机必须写 localhost127.0.0.1,不能写跳板机自己的公网 IP 或局域网 IP
  • 如果目标服务在另一台内网机器(如 192.168.1.100),那跳板机必须能 ping 通它,且目标服务监听的是 0.0.0.0 或该 IP,而不是仅 127.0.0.1
  • -L 3306:192.168.1.100:3306 user@jump 这条命令中,192.168.1.100 是对跳板机而言的“目标主机”,不是对你本机而言的

后台常驻运行必须加 -fN,否则终端一关隧道就断

想让隧道一直跑着,光靠 ssh -L 不够,缺参数会卡在登录 shell 里或退出即断。

  • -f:让 SSH 进程 fork 到后台,不占终端
  • -N:明确告诉 SSH “不要执行远程命令”,只做端口转发
  • -T:可选,禁用伪终端分配,更干净(尤其在脚本中)
  • 正确示例:ssh -fNT -L 8080:web.internal:80 user@jump-host
  • 验证是否生效:lsof -i :8080ss -tlnp | grep 8080

本地端口被占用或权限不足时怎么办

Linux 下绑定 1–1023 端口需要 root 权限,而普通用户默认只能绑 ≥1024 的端口。

  • 报错 bind: Permission denied?换端口,比如用 8080 代替 80
  • 报错 Address already in use?先查谁占着:lsof -i :3306,再 kill 或换端口
  • 想让别人也能访问这个本地端口(比如同事连你机器的 8080)?加 127.0.0.1: 前缀没用;得写成 -L *:8080:target:80,但前提是跳板机的 /etc/ssh/sshd_config 里有 GatewayPorts clientspecifiedyes,且你有权限改——一般不建议,安全风险高

真正容易被忽略的是目标服务的监听地址:很多内网服务(尤其是 Docker 容器或开发服务器)默认只监听 127.0.0.1,跳板机从外部 IP 访问不到。必须确认它是监听 0.0.0.0 或对应内网 IP,否则 ssh -L 再对也转不过去。

终于介绍完啦!小伙伴们,这篇关于《Linux服务器如何配置SSH隧道实现内网穿透 转发本地端口方法》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布文章相关知识,快来关注吧!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>