目录
科普原理

加密隧道是什么?工作在哪一层,为什么需要它

用一张图讲清加密隧道的原理:它在公共网络上建立一条加密的专用通道,工作在网络的哪一层,虚拟网卡如何接管流量,它能保护什么、不能保护什么。

最后更新:

加密隧道是在公共网络(家里的宽带、咖啡店的 Wi-Fi、手机流量)之上,建立的一条加密的专用通道:你的设备把要发出去的数据先加密、打包,送到一台你信任的隧道服务器;隧道服务器拆开后,再替你访问真正的目的地。一路上经过的运营商和路由器,只能看到「有一串加密数据在你和隧道服务器之间传输」,看不到内容,也看不到你最终访问的是谁。

打个比方:平时上网像寄明信片,沿途每个经手的人都能看到写了什么、寄给谁;加密隧道则是把所有信件装进一个上锁的箱子,统一寄到你信任的中转站,再由中转站拆箱转寄。

插图:左边是沿途能被看到的明信片,右边是装进上锁箱子、经加密隧道送到中转站的信件
  1. ① 明文传输明信片一路敞开,内容谁都能看
  2. ② 沿途的旁观者同一 Wi-Fi、运营商都能看到
  3. ③ 加密把信锁进箱子,只有两端有钥匙
  4. ④ 加密隧道沿途只看到一条封闭的管道
  5. ⑤ 隧道服务器开箱后替你把信转寄出去

一张图看懂:普通上网 vs 经过加密隧道

普通上网 你的设备 运营商 / Wi-Fi 网站 沿途能看到:你访问了哪些网站,以及没有加密的内容 经过加密隧道 运营商 / Wi-Fi 你的设备 加密隧道 隧道服务器 网站 沿途只能看到:你连接了隧道服务器,以及加密数据的大小和时间
上:数据直接经过运营商到达网站。下:数据先加密送到隧道服务器,再由它访问网站。

它工作在网络的哪一层?

网络通信是分层的:最底下是网线和无线信号,往上依次是负责「寄到哪台设备」的网络层(IP)、负责「交给哪个程序」的传输层(TCP / UDP),最上面是网页、视频这些应用。说加密隧道「工作在第几层」,通常指的是它把哪一层的数据整个包起来:

层级封装的是什么常见技术典型用途
第 2 层(数据链路层)完整的以太网帧,连 MAC 地址都一起带过去L2TP、以太网隧道把两地的局域网连成「同一个局域网」
第 3 层(网络层)完整的 IP 数据包IPsec、WireGuard企业分支互联、设备整机接入
第 4–7 层(基于 TLS)把流量包在一条 TLS 加密连接里SSL 隧道等远程办公、穿过只允许网页流量的网络

可以看到,层级越低,能承载的东西越「全」;而基于 TLS 的隧道虽然跑在较高的层,外表和普通的 HTTPS 访问很像,在只放行网页流量的网络里也能使用。

虚拟网卡:系统怎么把流量「交给」隧道

光有隧道还不够,还得让设备上的 App 的流量都进入隧道。现在的客户端普遍靠操作系统提供的虚拟网卡来做到这一点:

  • TUN:一块工作在第 3 层的虚拟网卡,收发的是 IP 数据包。客户端把系统的默认路由指向它,所有 App 发出的数据包都会先到这块「网卡」,由客户端读出来、加密,再通过真实的网卡发往隧道服务器;
  • TAP:工作在第 2 层的虚拟网卡,收发的是以太网帧,主要用于需要局域网广播的场景。

因为虚拟网卡会改变整台设备的网络走向,各个操作系统都要求用户亲自授权:iPhone 和 Mac 上是「添加网络配置」的弹窗,Android 是「网络连接请求」,Windows 则需要管理员权限。这就是第一次连接时会看到系统弹窗的原因。

一次访问在隧道里走了哪几步?

把上面的内容串起来,以「在浏览器里打开一个海外网站」为例,一次完整的往返是这样的:

浏览器 / App 虚拟网卡+客户端 运营商网络 隧道服务器 网站 去程 原始请求 1 加密 + 封装 2 加密数据包(沿途看不到内容) 3 解密 + 拆包 4 代你发出请求 5 回程 网站响应 6 加密后送回 7 解密后交还 8
粗线表示加密的数据。运营商网络位于客户端和隧道服务器之间,只能看到经过的加密数据。
步骤谁来做做了什么
① 原始请求浏览器 / App和平时一样发出请求,它并不知道隧道的存在。系统路由把这个数据包交给了虚拟网卡
② 加密 + 封装客户端从虚拟网卡读出数据包,整个加密,再套上一层新的包头,收件地址改成隧道服务器
③ 加密数据包运营商网络照常转发。它只看得到「这台设备在和隧道服务器通信」,看不到里面装的是什么、最终要去哪个网站
④ 解密 + 拆包隧道服务器用双方协商好的密钥解密,还原出原始请求
⑤ 代你发出请求隧道服务器以自己的 IP 访问目标网站。网站看到的访问者是隧道服务器,而不是你
⑥ 网站响应网站把网页内容返回给隧道服务器
⑦ 加密后送回隧道服务器把响应加密、封装,沿原路送回你的设备
⑧ 解密后交还客户端解密后通过虚拟网卡交还给浏览器,网页显示出来

整个过程对浏览器和 App 完全透明,它们不需要任何设置;加密和解密只发生在你的设备和隧道服务器两端。

为什么需要加密隧道?

  • 公共 Wi-Fi 不安全:在机场、咖啡店连上的 Wi-Fi,同一网络里的其他人、甚至热点的提供者,都可能看到或篡改未加密的流量;
  • 减少被追踪:运营商能记录你访问过的网站,网站和广告商则通过 IP 地址判断你的位置、关联你的行为;
  • 跨地区访问网络服务:很多服务按 IP 地址判断地区,只对部分国家开放,或在不同国家提供不同的内容;
  • 远程办公:企业用加密隧道把在外的员工安全地接进公司内网,访问内部系统。

它能起什么作用?

作用说明
加密隧道内的数据在你的设备和隧道服务器之间全程加密,沿途无法查看内容
隐藏真实 IP网站看到的是隧道服务器的 IP,而不是你自己的
改变网络出口你的流量从隧道服务器所在的地区「出门」,网站会认为你在那里
访问受限的服务借助出口位置的变化,访问只对特定地区开放的服务

它不能做什么?

加密隧道很有用,但不是万能的,下面这些它做不到:

  • 不能让你完全匿名:只要你登录了账号,网站照样知道你是谁;浏览器指纹、Cookie 也能识别你;
  • 不能防钓鱼和病毒:假冒网站、恶意下载照样会经过隧道到达你的设备,安全意识和杀毒软件仍然必要;
  • 隧道服务商本身处在「中间人」的位置:它能看到你连接的时间和流量大小,理论上也能看到你访问了哪些网站。所以选择服务商时,要看它是否承诺不记录日志、是否说明了技术上如何做到。

穿山甲是怎么做的

穿山甲在 iPhone、Mac、Windows、Android 四个平台上都使用 TUN 虚拟网卡接管整台设备的流量,再按「智能分流」决定哪些走隧道:本地网站和 App 直连,海外服务走加密隧道。服务端不记录你访问了哪些网站,具体的协议、加密方式和无日志架构见 协议与安全 与 隐私政策。

相关阅读

常见问题

用了加密隧道,网速会变快吗?

一般不会。数据要多绕一段路到隧道服务器,加密也有少量开销。只有当你本来的线路质量很差(例如访问海外网站时跨境线路拥堵),一条优质的隧道线路才可能让体验明显变好。

连接加密隧道后,网站看到的是谁的 IP?

是隧道服务器的 IP,而不是你自己的。所以网站会认为你在隧道服务器所在的国家或地区。

网站本身已经是 HTTPS 了,还需要加密隧道吗?

两者保护的范围不同。HTTPS 只加密你和某一个网站之间的内容,运营商仍能看到你访问了哪些网站;加密隧道把整台设备的流量都包起来,运营商只能看到你连接了隧道服务器。

公司让装的远程办公软件,和这里说的是一回事吗?

原理相同,用途不同。企业的远程接入用加密隧道把员工的电脑接进公司内网;个人使用则多是为了保护隐私和访问其他地区的网络服务。

还没有安装穿山甲?

支持 iPhone / iPad、Mac、Windows 与 Android。新用户注册即送 7 天会员体验。

下载客户端
← 全部文章