跳到主要内容

开发者、系统管理员,以及越来越多爱折腾的家庭用户,迟早会遇到同一个问题:访问自己的服务器,到底需要 VPN,还是 SSH 隧道就够了?两者都在不可信的网络上加密一条路径,也都被叫作“隧道”。但它们工作在不同的层次,覆盖的流量不同,适合的任务也不同。把它们混为一谈,要么搭出了比需要更复杂的方案,要么误以为一切都受保护,实际上只有一个应用被保护了。

这篇文章把 VPN 和 SSH 隧道当作安全远程访问的两种方式来比较。我们用通俗的话解释各自的原理,介绍 SSH 转发的三种主要形式,用表格并排对比,最后给出选择的原则。文中默认你要访问的是自己拥有或被授权使用的系统。如果你想先回顾隧道的基本概念,可以读一下什么是 VPN 隧道。

SSH 隧道到底是什么

SSH 是 Secure Shell 的缩写,是一种通过加密连接登录远程机器并执行命令的协议。有一个不太显眼的功能:同一条加密连接还能承载别的流量。这样使用时,人们称之为 SSH 隧道或端口转发。

原理很简单。你向一台能登录的服务器建立一条 SSH 连接,然后让 SSH 在这条连接里承载另一个端口或程序的流量。对中间的网络来说,这只是一条加密的 SSH 会话,读不到里面的内容,也看不出你访问的是服务器后面的数据库还是网页。

三种转发形式涵盖了大部分用法。

本地转发。 你在自己的机器上选一个端口,比如 5433,再指定一个从服务器角度看到的目标,比如服务器内网地址上的数据库。当应用连接本机的 5433 端口时,SSH 会把连接通过隧道送过去,由服务器代你连到数据库。这是访问不应暴露在互联网上的管理界面或数据库的经典方式。

远程转发。 方向相反。你让服务器监听一个端口,把到达的内容再送回你本机上的某个服务。它用于让远端机器访问你本地的东西,比如做演示,并且需要谨慎限制,因为它等于在你的机器上开了一扇门。

动态转发。 SSH 在你的机器上充当 SOCKS 代理。被设置为使用该代理的应用,会把所有连接都通过隧道发出,由服务器代为建立连接。这是最接近 VPN 的一种,但只对你配置过的程序有效。

还有一个相关功能是跳转选项,让你用一条命令穿过网关服务器访问内部机器。它不会创建通用隧道,但很多管理员用它避免把内部机器直接暴露出来。

这些形式都不会在你的电脑上新建网络接口。它们是转发选定连接的工具,这正是它们与 VPN 的主要区别。

VPN 有什么不同

这里所说的 VPN,会在你的设备上创建一个虚拟网络接口。操作系统按路由表把流量送进这个接口,VPN 软件将其加密后送到 VPN 服务器。应用无需知道这件事。浏览器、邮件客户端、聊天工具和后台更新程序,除非你设置了例外,否则走的都是同一条路径。

这让 VPN 在四个实际方面不同:

  • 默认覆盖整台设备。 不用逐个应用去配置。
  • 工作在网络层,因此能承载多种协议,包括 SSH 转发处理不好的那些,比如使用 UDP 的流量。
  • 可以把设备接入一个私有网络,内部的名称和地址就像你在办公室里一样可以解析。
  • 为多用户设计。 整个团队的账号、密钥和策略可以集中管理。

另一方面,VPN 两端都需要服务器和软件。如果你只想访问一台已经用 SSH 管理的机器上的某个内部网页,这套机制可能比任务本身还大。想了解这项技术的一般解释,可以参考 Cloudflare 对 VPN 的概述。

并排对比

问题 SSH 隧道 VPN
工作层次 应用连接层(TCP 转发) 网络层(虚拟接口)
覆盖范围 只有你转发的端口或应用 整台设备,除非设置例外
服务器端需要什么 SSH 服务,你多半已经在运行 VPN 服务器及其配置
设备端需要什么 标准 SSH 客户端 VPN 客户端或应用
典型用途 某台服务器上的一个服务,快速管理 日常保护与私有网络访问
处理 UDP 等其他协议 普通转发下很差或不行 正常的 VPN 设计可以
多用户 手动,每人密钥和账号 为此设计,集中账号
DNS 查询 仅当应用通过代理发送时才覆盖 通常覆盖,但要检查泄漏
对本地网络隐藏流量 仅限被转发的连接 所有被路由的流量
一次性任务的工作量 很低 中到高
团队使用的工作量 要保持整洁很费力 建好之后较低

表格让选择的轮廓很清楚。如果你只是快速做一件事,SSH 转发轻巧又精准;如果需要持续保护,或者要接入整个网络,VPN 是更坚固的工具。

什么时候 SSH 隧道更合适

SSH 隧道在几种日常情况下是很好的答案。

  1. 访问你管理的服务器上的数据库或管理面板。 服务只监听服务器的本地地址。你转发一个端口,干完活,关掉连接。没有任何东西暴露到互联网上。
  2. 在可信服务器上做一次性任务。 五分钟的事用不着安装 VPN。
  3. 开发者测试远程机器上的服务。 转发一个端口,本地浏览器就能和开发中的服务通信。
  4. 通过网关访问内部机器。 用跳转选项,可以在不额外开放服务的情况下访问不能直接到达的机器。
  5. 已经在用 SSH 密钥的小型技术团队。 开销低,人人都熟悉这个工具。

即便在这些情况下,也要把隧道当作管理工具,而不是通用的隐私工具。你登录的那台服务器能看到从它出去的所有流量,你信任的是这台服务器和运营它的人。

什么时候 VPN 更合适

需求更广或者需要持续保护时,VPN 更强。

  1. 共享 Wi-Fi 上的保护。 在酒店或咖啡馆网络里,你希望所有应用都被覆盖,而不是只有你记得配置的那几个。基础知识可以看如何在公共 Wi-Fi 上更安全。
  2. 使用很多内部工具的远程员工。 文件共享、内部网站、打印机和聊天工具,都像在办公室网络里一样工作。
  3. 不懂技术的用户。 员工不该被迫理解转发参数。一个只有连接按钮的 VPN 应用更容易提供支持。
  4. 不支持代理的应用。 很多程序根本无法指向 SOCKS 代理,VPN 不用改动就能覆盖它们。
  5. 需要集中管理的团队。 撤销某个人的访问权限,不该需要到每台服务器上去改密钥。

如果一个人只想在公共网络上有一条私密的路径,面向个人的 VPN 服务是直接的选择。另一个决定是自建 VPN 服务器还是购买服务,我们在自建 VPN 与商业 VPN中讨论过。官方网站介绍的 WireGuard 设计,让自建 VPN 比以前容易得多。

两者可以一起用

这两个工具并不是对手。许多管理员两个都用,各司其职。

  • VPN 让笔记本安全地接入私有网络;在这个网络里,用 SSH(可带转发也可不带)访问各台服务器。
  • 跳板机位于私有网络内。管理员先连 VPN,再用带跳转选项的 SSH 访问只接受跳板机连接的机器。
  • 在公共网络上,VPN 应用保护整台设备,而 SSH 转发用来访问那个绝不能暴露的数据库。

叠加使用并不会神奇地让流量更安全,因为每一层保护的是不同的部分。但如果某一层薄弱,它能限制损失:比如,如果被盗 SSH 密钥所对应的服务器只能从同样需要第二重验证的 VPN 内部访问,这把密钥的用处就小得多。

两种方式的好习惯

使用 SSH 隧道时

  • 使用带口令保护的密钥登录,并在政策允许的服务器上关闭口令登录。
  • 尽可能加上第二重验证。CISA 的多因素认证指南解释了各种选择。
  • 把转发的端口只绑定到本地地址,免得你网络里的其他机器使用你的隧道。
  • 用完就关闭隧道。被遗忘的隧道就是一扇开着的门。
  • 第一次连接时核对服务器主机密钥的指纹。它变化时的警告值得重视,而不是直接点过去。
  • 如果用户不需要,在服务器配置里限制转发。

使用 VPN 时

  • 保持 VPN 服务器和客户端更新。
  • 给每个人独立的凭据。
  • 设置完成后测试泄漏。如何测试 VPN列出了检查项。
  • 只有清楚分应用转发会把什么留在隧道外时,才使用它。
  • 遵守雇主关于远程访问的规定,这正是 NIST 的远程办公指南详细描述的内容。

三个情境

检查预发布数据库的开发者。 阿荣需要查看一个只监听服务器内网地址的数据库。整个下午她使用本地转发,通过常用客户端工作,结束时关掉隧道。不用装新软件,也没有暴露任何东西。VPN 也行,但设置的时间比任务本身还长。

会议 Wi-Fi 上的顾问。 大伟在会议现场,连着开放的 Wi-Fi。他需要邮件、共享盘和几个客户的网页工具。SSH 隧道一次只能覆盖一个应用,所以他在笔记本上用 VPN 应用,让每个程序都被覆盖,只在需要访问某位客户的服务器时才用 SSH。

家庭实验室爱好者。 小梅在家里运行一台小服务器,上面有媒体库和几个服务。偶尔检查时她用 SSH 转发。但家人也想在外面访问文件,所以她搭了一个 VPN,给每个人一份配置文件。她自己的 SSH 密钥只用于管理。

要避免的错误

  • 把动态隧道当成完整的 VPN。 只要有一个应用没配置代理,它就照常发出。DNS 也可能如此。
  • 忘了服务器能看到你的流量。 SSH 隧道把信任转移给了服务器的运营者,并没有消除它。
  • 让转发一直开着。 为图方便开了一夜的隧道,是安全审查里常见的发现。
  • 用转发来绕过网络策略。 机构可能有充分理由禁止它。请遵守所用网络的规则,隧道只用来访问你被允许使用的系统。
  • 多人共用一把密钥。 分不清谁做了什么,撤销访问也很痛苦。
  • 指望任一工具保护设备本身。 两者都阻止不了恶意软件、钓鱼或弱口令。参见 VPN 无法保护你的哪些方面。

总结

SSH 隧道把选定的连接通过一条加密会话送到你能登录的服务器,轻巧、精准,非常适合管理工作,但只覆盖你转发的内容,并把信任转移到服务器上。VPN 创建虚拟网络接口,承载整台设备的流量,还能把设备接入私有网络,适合日常保护、多用户和不懂技术的员工。许多周到的方案两者并用:用 VPN 接入网络,用 SSH 访问各个系统,再围绕它们配上密钥、第二重验证和日志。

如果你的需求是在共享网络上保护所有应用,可以看看价格页面,了解预付通行证是否适合你。

常见问题

SSH 隧道和 VPN 是一回事吗?

不是。SSH 隧道把你选定的端口或应用的流量,通过一条加密连接送到你能登录的服务器;VPN 则创建一个虚拟网络接口,通常承载整台设备的流量,不管是哪个应用发出的。

日常上网能用 SSH 隧道代替 VPN 吗?

只能部分代替。动态 SSH 隧道相当于一个 SOCKS 代理,只对设置了使用它的应用有效,没配置的应用,包括一些后台程序和 DNS 查询,仍可能直接发出。VPN 应用对整台设备的覆盖更一致。

只有一台服务器的话,哪个更容易设置?

如果只是访问你自己管理的那台服务器上的某个服务,SSH 隧道通常更快,因为你已经有 SSH 权限,服务器上也不用装额外软件。服务、机器或用户多起来时,VPN 才更划算。

SSH 端口转发有安全风险吗?

如果不加控制地处处允许,是有风险的。转发可能绕开机构本来设置的防火墙规则。管理员通常会在服务器配置里限制它,员工则应遵守所用网络的政策。

SSH 隧道能向网站隐藏我的流量吗?

不能。网站仍然看到连接来自 SSH 服务器的地址,服务器的运营者也能看到你的流量去向。隧道只保护你和服务器之间的路径,仅此而已。

关于作者

Bob Kanokphon Thongdee,XPASS VPN 创始人

Bob Kanokphon Thongdee

  • XPASS VPN 创始人
  • eSIMonline.asia 联合创始人
  • 7 年以上网络营销经验
  • Cojourney Visa 与 Cojourney Travel 创始人

短途出行或忙碌的一个月,需要 VPN?

XPASS 提供按天数计算的预付通行证。一次付款,不会自动续费。

查看通行证

继续阅读

VPN 基础

VPN 隧道是什么?数据是怎样被层层包起来的

VPN 隧道不是一个地方,而是一种封装方法:你的数据被包进另一层数据里送到服务器。了解它的结构、生命周期与局限。

阅读约 9 分钟

VPN 基础

VPN 和代理有什么区别

VPN 和代理都在你与网站之间充当中间一环,但范围、加密和信任方式不同。本文给出清晰对比,包括 Chrome 代理设置与系统 VPN 的区别。

阅读约 9 分钟

VPN 安全

VPN 与端口转发详解:用途与风险

端口转发能让外部连接访问内部网络中的某台设备。本文说明有无 VPN 时它如何运作、有哪些用途,以及开放端口可能带来的风险。

阅读约 9 分钟

选购指南

自建 VPN 与商业 VPN 服务怎么选

家里的服务器与商业服务解决的是不同的问题。对比树莓派或 NAS 上的 VPN 与现成服务,包括 CGNAT、维护和安全。

阅读约 9 分钟

VPN 安全

零信任与 VPN 有什么区别

零信任和 VPN 常被说成对手,其实它们回答的是不同的问题。这里讲清 ZTNA、SASE、SD-WAN 与 VPN 的关系,以及各自适用的场合。

阅读约 9 分钟