Skip to content

隧道 ​

隧道把你的节点分成两种角色连接起来:用户连接中继,流量从它的某个出口离开前往互联网。当用户容易访问的服务器并不是你希望互联网看到其地址的服务器,或出口服务器不应接受任何连接时,就使用隧道。本页面介绍如何创建和运行隧道;隧道内部 说明隧道内部的工作原理。

隧道页面:顶部是已连接和出错隧道的统计条,下方表格显示每条隧道的标签、路径、监听端口和状态隧道页面:顶部是已连接和出错隧道的统计条,下方表格显示每条隧道的标签、路径、监听端口和状态

开始之前 ​

  1. 中继和出口都已在 节点 中添加并已连接。
  2. 中继为用户提供服务:它有一个包含入站的模板,你的用户属于该模板。隧道只改变中继流量的出网位置。
  3. 监听的节点有一个对端能访问的地址:它的链接地址,没有时则为其地址。拨号一方会同时尝试每个链接地址,因此第二个地址就是现成的备用。
  4. 隧道端口已在监听服务器的防火墙中开放。面板不会替你开放。

创建隧道 ​

按添加。新隧道带有合理的默认设置:选好节点,按保存,它就会在两端生效。

字段
名称成为隧道的标签:tunnel- 加上小写的名称。保存后不能修改,因为两端的凭据都由它生成。
模式由哪一方开放端口(见下文)
中继节点用户连接的地方。它本身不出网。
出口节点一个或多个;流量从这里出网
每个出口的链路数每个出口保持多少条并行连接。几乎所有线路用四条都合适。
单流窗口单条连接可同时在途的数据量。除非在长距离线路上单个下载很慢、而多个并行下载很快,否则保持默认。
已启用停用的隧道会从两个节点上移除,但保留其设置

表单会用你的节点名称,用一句话说明这条隧道将做什么。

一个节点可以是一条隧道的中继、另一条隧道的出口,但不能在同一条隧道中同时担任两者。

反向还是正向 ​

模式只决定由谁开放端口。流量始终是:用户 → 中继 → 出口 → 互联网。

反向 — 出口节点主动连入(默认)正向 — 中继主动连出
监听方中继每个出口
必须开放端口的一方中继每个出口
出口在 NAT 后或没有开放端口可以不可以

除非中继无法接受来自出口的连接,否则选择反向。

配置档:端口、安全与传输 ​

配置档是承载隧道的一种方式:它有自己的监听端口、自己的安全和自己的传输。每条隧道至少有一个配置档。

  • 安全:REALITY(默认)不需要证书,其密钥在保存时生成。TLS 使用面板为该隧道签发、对端信任的证书;你也可以在添加设置中粘贴自己的 PEM 证书和私钥。不加密会在两个节点之间以明文传输用户流量。
  • 传输:无(普通流),或 WebSocket、gRPC、HTTP、HTTPUpgrade、QUIC 等 Web 传输。要把隧道放在 CDN 后面,需要使用 Web 传输。QUIC 需要 TLS,不能与 REALITY 一起使用,表单会给出提示。
  • 高级按节点收到的原样显示安全和传输配置块。在这里编辑会覆盖其他标签页。

按配置档标签旁的 +(新增一种承载方式)可添加另一个配置档,最多八个。配置档不是独立的隧道:它们共享通往同一组出口的连接池。如果某种协议被封锁,隧道会失去该配置档的承载能力,但会继续通过其他配置档工作,用户的出口地址也不会改变。

有两个或更多配置档时:

  • 负载均衡:分摊使用每个已连接的配置档,并把每个新流发往最空闲的那个。优先级使用列表中第一个已连接的配置档,其余作为备用。
  • 此配置档的链路数设置每个配置档的份额。六条链路的配置档承载的流量是两条链路的三倍。留空则使用每个出口的链路数。

每个配置档需要自己的端口,并且不能与监听节点上的任何入站或其他隧道相同。

中继流量的去向 ​

当中继只承载一条隧道时,面板会自动将该隧道设为中继的默认出口:中继原本要发往互联网的所有流量都会走隧道。模板路由中的规则仍然优先,因此被规则设为直连或拦截的流量不会进入隧道。隧道的默认出口一行(在该行的详情中)会说明是否属于这种情况。

当中继承载多条隧道或有自己的默认出站时,面板不会选择出口,并会说明原因。此时,以及只有部分流量需要走隧道时,请在中继自己的路由中编写引用该隧道标签的规则:节点 → 配置 → 路由(本节点覆盖)。见 路由与 DNS。

WARNING

切勿在模板路由中写入隧道标签。只有中继拥有该标签。模板上的其他节点会被要求使用一个它们没有的出站,从而拒绝整个配置。

状态 ​

页面打开时,状态列会向每条隧道的两端查询:

状态含义
{n} 个连接正常工作,有这么多条连接处于连通状态
没有连接中继有响应,但没有出口连接到它
中继不可达面板连不上中继节点
未知检查本身失败;这并不说明隧道的情况

统计条统计的是同样的状态。刷新状态会重新查询。

行菜单中的实时状态会查询隧道的每个节点,并在打开期间每隔几秒刷新一次。它为每个出口显示连接、流和在线时长。在拨号一方,它显示下次尝试前的重试退避和最近错误:隧道连不上时,先看这一项。

重置 ​

实时状态对话框中的重置会在每个节点上重建隧道:所有连接都被断开,拨号一方立即重新开始。当一端已连通但没有承载任何流量时,或你解除了某处封锁、不想等待下次重试时使用。隧道上的流量会中断,直到重新连接。

每个中继一条隧道 ​

位于同一组出口前面的多个中继,就是每个中继一条隧道。这样从一个中继获取的凭据在另一个中继上无效,新增中继也不会影响已在承载流量的隧道。

行菜单中的创建副本可生成下一条隧道:为它填写名称和中继,它会复制出口、配置档和设置。证书和密钥不会被复制,副本会生成自己的。

批量处理隧道 ​

勾选多行可一起处理:

  • 编辑所选…可统一设置出口、每个出口的链路数、负载均衡或单流窗口。留空的字段不会更改。
  • 启用、停用、重置和删除。

每条隧道都会像单独编辑一样进行检查。被面板拒绝的会单独报告,其余的照常修改。

行菜单中的流量图表显示经过该隧道的流量。

连不上时 ​

  • 查看实时状态中的最近错误。
  • 检查监听节点上的监听端口是否开放:反向模式下是中继,正向模式下是每个出口。在另一个节点上执行:nc -vz <address> <port>。
  • 检查监听节点的链接地址能否从另一个节点访问,而不仅是从面板访问。
  • 位于 NAT 后的出口只能使用反向模式。
  • 修复后按重置。
  • 隧道内部:两端如何找到对方,以及为什么用户始终使用同一个出口。
  • 节点:链接地址和单节点路由。
  • 路由与 DNS:只让部分流量走隧道。

文字与图片采用 CC BY 4.0 许可。