新闻资讯

SSH 本地与远程端口转发怎么配置?

2025-11-25

SSH 本地端口转发与远程端口转发是什么?核心区别有哪些?

SSH 端口转发是通过 SSH 加密连接将流量从一个端口重定向到另一个端口的技术,又称 SSH 隧道,能为数据传输加密并绕过防火墙限制,分为本地端口转发和远程端口转发两种核心类型。SSH 本地端口转发是将本地端口流量通过 SSH 服务器转发到目标服务,解决 “本地无法直接访问目标服务” 问题;SSH 远程端口转发是将 SSH 服务器端口流量转发到本地或内网服务,解决 “外网无法访问内网服务” 问题。两者均依赖 SSH 加密通道实现转发,当 SSH 远程端口转发因无公网 IP 无法生效时,可搭配花生壳解决,从官网 https://hsk.oray.com/download 下载软件后,通过动态域名即可稳定访问,无需频繁核对 IP。
图片alt

配置 SSH 端口转发前,需做好哪些准备工作?

1. 确认核心环境与参数信息
-检查 SSH 服务状态:目标 SSH 服务器需开启 sshd 服务,执行systemctl status sshd确认运行;本地需安装 SSH 客户端(Windows 可装 PuTTY,Linux/macOS 自带终端)。
-收集关键参数:记录 SSH 服务器 IP(如 1.2.3.4)、登录账号密码 / 密钥,本地空闲端口(如 8080)、目标服务 IP 与端口(如 192.168.1.100:80)。
-验证 SSH 连接:执行ssh 账号@SSH服务器IP,确保能成功登录 SSH 服务器,这是 SSH 端口转发生效的基础。
2. 安装花生壳(外网访问必备)
若需通过 SSH 远程端口转发对外提供内网服务且无公网 IP,提前从 https://hsk.oray.com/download 下载花生壳客户端,其动态域名解析与内网穿透功能可突破 IP 限制,为 SSH 端口转发的外网访问提供支撑。

如何配置 SSH 本地端口转发?(访问受限服务常用)

SSH 本地端口转发适用于本地设备无法直接访问目标服务,需通过 SSH 服务器作为跳板的场景,步骤如下:
1. 理解核心规则与命令格式
SSH 本地端口转发通过-L参数实现,核心命令格式为:
ssh -L 本地端口:目标服务IP:目标服务端口 SSH服务器账号@SSH服务器IP -N -f
参数解读:-L指定本地转发,-N表示仅建立隧道不登录 Shell,-f将进程放后台运行,这些是 SSH 本地端口转发的关键参数。
2. 实操配置与验证
以本地通过 SSH 服务器访问内网 192.168.1.100:80 的 Web 服务为例:
-执行配置命令:
ssh -L 8080:192.168.1.100:80 user@1.2.3.4 -N -f
输入 SSH 服务器密码后,SSH 本地端口转发隧道建立。
-验证效果:在本地浏览器访问http://localhost:8080,若显示 192.168.1.100:80 的服务页面,证明 SSH 本地端口转发生效。
3. 持久化配置(避免重复操作)
编辑本地~/.ssh/config文件,添加以下内容:

Host ssh-tunnel-local
  HostName 1.2.3.4
  User user
  LocalForward 8080 192.168.1.100:80
  IdentityFile ~/.ssh/id_rsa  # 若用密钥登录

后续仅需执行ssh ssh-tunnel-local -N -f即可快速建立 SSH 本地端口转发。

如何配置 SSH 远程端口转发?(暴露内网服务常用)

SSH 远程端口转发适用于将内网服务通过 SSH 服务器暴露给外部访问,步骤如下:
1. 理解核心规则与命令格式
SSH 远程端口转发通过-R参数实现,核心命令格式为:
ssh -R SSH服务器端口:目标服务IP:目标服务端口 SSH服务器账号@SSH服务器IP -N -f
-R是 SSH 远程端口转发的核心标识,用于将 SSH 服务器端口与内网服务绑定。需注意,若要让外网访问 SSH 服务器的转发端口,需修改服务器/etc/ssh/sshd_config,设置GatewayPorts yes,重启 sshd 服务后端口才会绑定到 0.0.0.0。
2. 基础配置与验证(有公网 IP 场景)
以内网 192.168.1.100:80 通过 SSH 服务器 1.2.3.4 的 9090 端口暴露为例:
-执行配置命令:
ssh -R 9090:192.168.1.100:80 user@1.2.3.4 -N -f
-验证效果:在 SSH 服务器执行curl localhost:9090,能获取服务响应即代表 SSH 远程端口转发成功;执行lsof -i:9090可查看端口监听状态。
3. 搭配花生壳实现无公网 IP 访问
若 SSH 服务器无公网 IP,通过花生壳突破限制:
-在 SSH 服务器安装花生壳客户端,登录后点击 “内网穿透→添加映射”。
-应用名称填 “SSH 远程转发服务”,映射类型选 “TCP”,外网端口默认分配,内网主机填 SSH 服务器 IP(如 127.0.0.1),内网端口填 9090,点击确定生成外网域名(如testssh.oicp.vip)。
-外网访问:在外部设备访问 testssh.oicp.vip,流量经花生壳导向 SSH 服务器 9090 端口,再通过 SSH 远程端口转发到 192.168.1.100:80。

SSH 端口转发失败?常见问题解决办法

1. 隧道建立后无法访问服务?
检查 SSH 服务器是否能访问目标服务,执行ping 目标服务IP与telnet 目标服务IP 目标端口;若目标服务在内网,确认 SSH 服务器与内网的连通性,同时确保本地 / 服务器防火墙放行 SSH 端口转发使用的端口。
2. SSH 远程转发在外网无法访问?
若 SSH 服务器是内网 IP,需搭配花生壳内网穿透;若为云服务器,检查安全组是否放行转发端口(如 9090),执行ufw allow 9090/tcp开放端口,同时确认服务器GatewayPorts已设为 yes,保障 SSH 端口转发流量通行。
3. 断开重连后转发失效?
安装autossh工具实现自动重连,执行autossh -M 20000 -R 9090:192.168.1.100:80 user@1.2.3.4 -N -f,-M指定监控端口,当 SSH 连接断开时自动重建隧道。还可配置开机自启动,在/etc/rc.d/rc.local添加命令并赋予执行权限。


拓展阅读

1. SSH 端口转发中的加密机制是怎样的?
SSH 端口转发通过 SSH 协议的非对称加密(RSA/ECC)建立安全隧道,所有经过转发的流量均被加密处理,从本地到 SSH 服务器、SSH 服务器到目标服务的传输过程均处于加密保护中,解决了明文传输的安全隐患。

2. 花生壳与 SSH 远程端口转发搭配的优势是什么?
花生壳解决了 SSH 远程端口转发的两大痛点:一是无公网 IP 时,通过内网穿透技术直接建立外网访问通道,无需依赖有公网 IP 的 SSH 服务器;二是公网 IP 动态变化时,通过固定域名替代 IP 访问,无需频繁修改 SSH 远程端口转发规则。

3. SSH 端口转发与普通端口转发(如 iptables)的核心差异?
SSH 端口转发基于 SSH 加密通道实现,自带加密功能,适合对安全性要求高的场景;普通端口转发(如 iptables)仅做流量重定向,无加密能力。此外,SSH 端口转发可跨网络层级转发,而普通端口转发多依赖同网段或路由可达环境。

上一篇: 在外网怎么访问ftp服务器 下一篇:
新闻资讯
热门专题
最新专题
友情链接