VPN 与 SSH 隧道都能「把流量加密后送到另一台机器」,但范围不同:**SSH 隧道通常只转发你指定的端口或应用,VPN 通常给系统加一张虚拟网卡,让整机 IP 流量按路由进入隧道。**2026 年 9 月常见的误用,是把运维用的端口转发当成整机隐私方案,或反过来为访问一个内网端口改动整机路由。

一句话定义

一个可独立引用的定义句:SSH 隧道是在已认证的 SSH 会话内,把本地或远端某个 TCP 端口的连接转发到另一端的一种端口转发机制。

另一个可独立引用的定义句:VPN(虚拟专用网络)是在两端之间建立加密隧道,并通过虚拟网卡与路由表把指定网段或全部 IP 流量送入隧道的网络层方案。

两者的差别不在「加不加密」,而在「隧道里装的是什么」:SSH 转发装的是一条条 TCP 字节流,VPN 装的是完整的 IP 数据包。概念基础可参见 VPN 是什么。

SSH 隧道的三种常见形态

SSH 端口转发按方向和目标可分为三类(概念层,不涉及具体部署命令):

形态在做什么典型用途
本地转发(Local)本机某端口的连接,经 SSH 服务器转到其后方的指定地址访问只对内网开放的数据库、管理面板
远程转发(Remote)SSH 服务器上某端口的连接,转回客户端一侧的地址临时把本机开发服务给同事演示
动态转发(Dynamic)本机开一个 SOCKS 代理,目标由应用逐个指定让单个浏览器或工具经服务器发出请求

动态转发本质上就是一个经 SSH 加密的 SOCKS 代理,所以它继承了 SOCKS 的覆盖范围问题:只有配置了代理的应用才会走它。这一点与 SOCKS5 与 VPN 有何不同 里的分析一致。

对比表:层级、范围与传输

维度SSH 隧道VPN
工作层级应用层会话内转发 TCP 流网络层转发 IP 包
流量范围指定端口或配置了代理的应用按路由表,可整机或指定网段
是否需要虚拟网卡常用形态不需要通常需要
UDP 支持常用转发不支持取决于协议,多数支持
外层传输TCP(SSH 默认端口 22)视协议,WireGuard 为 UDP,OpenVPN 可选
身份认证SSH 密钥或密码,针对具体服务器账号证书、预共享密钥或账号体系
部署前提你对目标服务器有 SSH 登录权限需要 VPN 服务端与客户端配置
系统 DNS默认不接管,动态转发时取决于应用是否远程解析客户端通常会下发或接管 DNS

表中「支持」「不支持」指常见用法,并非协议能力上限。例如 OpenSSH 提供隧道设备转发的扩展,可以承载 IP 包,但需要服务端显式允许且权限要求较高,在日常运维中并不常见。

加密层:都加密,但保护的边界不同

SSH 的加密由 SSH 传输层协议提供,保护的是「客户端到 SSH 服务器」这一段;流量从 SSH 服务器转发到最终目标时,是否仍然加密取决于目标服务本身,例如目标是 HTTPS 就仍有 TLS,目标是明文数据库协议则这一段是明文,只是通常位于服务器所在的内网。

VPN 的加密保护的是「客户端到 VPN 服务端」这一段,出了隧道之后同样只剩应用自身的加密。这和 VPN 与 HTTPS 各加密哪一层 讨论的分层逻辑相同:

路段SSH 本地转发VPN
本机 → 隧道对端SSH 加密隧道加密
隧道对端 → 最终目标取决于目标协议取决于目标协议
谁能看到明文SSH 服务器(若目标协议为明文)VPN 服务端(若目标协议为明文)

因此两者在信任模型上类似:你都要信任隧道另一端。区别在于 SSH 隧道的另一端往往是你自己或团队管理的服务器,信任关系更明确;商业 VPN 的另一端是服务商,信任依据只能来自其公开说明与第三方审计,参见 VPN 无日志政策。

为什么 SSH 隧道跑大流量常常不理想

SSH 隧道的外层是 TCP,隧道内转发的也是 TCP 流。当你用它承载大量交互或长连接时,会遇到两类问题:

  1. 队头阻塞:一条 SSH 连接里复用多个转发通道,外层 TCP 丢一个包,所有通道都要等重传;
  2. 单连接吞吐:所有转发共享一条 TCP 连接的拥塞窗口,高延迟或丢包路径上吞吐受限更明显。

这与 VPN 用 TCP 还是 UDP 中「TCP 套 TCP」的讨论相近。严格来说,SSH 端口转发会在服务器端终结内层 TCP 再重新发起连接,不是逐包封装,所以不完全等同于 TCP-over-TCP 的重传叠加,但外层单连接的队头阻塞仍然存在。

测试环境写法示例:2026 年 9 月,同一台云服务器、同一客户端,分别用 SSH 本地转发与 WireGuard 隧道访问同一内网文件服务,记录大文件下载吞吐与交互延迟,并注明接入类型(家庭宽带 / 蜂窝网)与丢包率。无法复测时写「据本次实测」,不要推广为普遍结论。

适用场景对照

场景更贴近的方案原因
临时访问服务器后方的一个内网端口SSH 本地转发已有 SSH 权限,不改整机路由
让团队成员长期访问整个办公内网VPN需要网段级路由、统一认证与审计
需要 UDP 或语音、游戏类流量VPN常用 SSH 转发不承载 UDP
只让一个浏览器经服务器发请求SSH 动态转发或 VPN 分流取决于是否接受应用级配置与泄漏面检查
手机上长期使用VPN系统原生支持虚拟网卡与按需连接,SSH 客户端后台保活受限

「更贴近」不是排名,只说明哪种设计的默认行为更接近该场景的需求。若组织有自己的访问控制与合规要求,应以内部规定为准。

常见误解

误解 1:SSH 隧道和 VPN 一样能保护整机流量。 常用的 SSH 转发只覆盖指定端口或配置了代理的应用,系统其他流量、系统 DNS 仍按原路由走。

误解 2:SSH 用的是 22 端口,所以流量「看不出来」。 SSH 协议握手有明确特征,端口号不改变协议可识别性。本文不讨论规避识别的做法,只提醒不要把端口号当成隐私属性。

误解 3:走了 SSH 隧道,目标服务就是加密的。 SSH 只加密到 SSH 服务器这一段;服务器到最终目标之间,是否加密取决于目标协议本身。

误解 4:VPN 一定比 SSH 隧道更安全。 两者都依赖隧道另一端的可信度与自身实现质量。自己管理的 SSH 服务器与未审计的 VPN 服务相比,哪一方更可信要看具体配置与运营方,不能按技术名称一概而论。

选择前的核对清单

  1. 需求范围:你要转发的是一个端口、一个应用,还是整个网段或整机流量;
  2. 协议需求:是否需要 UDP、组播或非 TCP 流量;
  3. 权限前提:你对目标服务器是否本来就有合规的 SSH 登录权限;
  4. DNS 与泄漏面:动态转发时应用是否远程解析域名,参见 DNS 泄漏检测;
  5. 持续性:临时排障用一次,还是需要开机自动连接与断线闸门,后者参见 Kill Switch 是什么。

SSH 隧道是面向单个服务的运维工具,VPN 是面向网络的连接方案。先确定你要解决的是「连到一个端口」还是「让一组流量换一条路由」,再选择对应的工具,并用实际流量验证覆盖范围,而不是只看客户端显示的状态。