type
status
date
slug
summary
tags
category
icon
password
URL
Cloudflare Tunnels(Argo Tunnel) 通过在你的环境中部署轻量级连接器,在你的服务和 Cloudflare 之间创建一个安全的、仅限出站的连接。
先决条件
对于此设置,你需要有一个由
CloudFlare
管理的域,并且可以在免费计划中完成。设置步骤
- 在 Unraid 终端中,运行以下命令以使用要设置隧道的
Cloudflare
站点授权Cloudflared
。
它将打印出
Cloudflare
的链接。将此链接复制到浏览器中打开,登录Cloudflare,然后选择您要使用的域。然后,守护进程会自动拉取证书。- 现在我们需要创建一个隧道。在Unraid终端运行以下命令。
这将创建隧道的
UUID.json
文件,其中包含用于验证你与 cloudflare 的隧道连接的秘钥。JSON 文件仅用于运行隧道,但任何隧道修改都需要 cert.pem
。复制屏幕上显示
UUID
保存好,后面的步骤中会使用到。也可以通过 JSON 文件的名称找到它。- 现在我们需要创建一个
config.yaml
来配置隧道
- 现在粘贴以下内容并修改你的
反向代理 IP:PORT
、隧道 UUID
和域名
(如果需要)
- 如果你的反向代理上有 SSL证书,则需要传入 SSL 证书所在的域名
- 如果要禁用 ssl 验证,请在
originRequest
下添加noTLSVerify
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
有关入口规则以及如何配置它们的更多信息,请参见此处。
- 现在可以在
Unraid
中安装程序了。
- 转到
应用
选项卡
- 搜索
cloudflared
- 找到
cloudflare/cloudflared
。Unraid默认模板为cloudflare/cloudflared:2021.6.0
,需要自行修改下版本号为2021.8.2
。
- 先别点击应用,需要进行以下更改:
- 点击启用右上角的“高级视图”。markdown
- 在发布参数中你应该会看到如下命令。将 UUID 替换为在步骤 2 中生成的隧道的 UUID。
- 修改完成之后点击应用启动容器。如果一切都正确无误,你应该有一个正在运行的隧道!
下一步将是编辑你的域 DNS 记录。
- 如果已经有 A 记录,可以删除它,因为现在不需要它。
- 添加指向域根 (@) 的 CNAME 记录,在内容选项框内添加
UUID.cfargotunnel.com
(UUID
替换为步骤2中保存的值)。
- 其他子域的添加方法如下例子,也可添加泛域名解析。
例子
Type | NAME | Value | TTL | Status |
CNAME | @ | Automatic | Orange ☁️ | |
CNAME | plex | @ | Automatic | Orange ☁️ |
CNAME | emby | @ | Automatic | Orange ☁️ |
CNAME | qb | @ | Automatic | Orange ☁️ |
故障排除
证书对任何名称均无效
如果看到类似的错误
bash
1
尝试将 yourdomain.com 更改为 host.yourdomain.com,其中 host 是拥有 DNS 记录的有效子域。尽管这是一个特定的主机名,Cloudflared 应该能够在您的其他子域通过隧道时验证该名称的证书。
隧道创建不返回 ID
如果在终端中运行命令时,没有返回 ID,请尝试使用指定的容器版本运行命令,如下所示
bash
1
通过 Web 渲染终端启用 SSH 访问
- 为要进行 SSH 访问的子域创建 DNS 记录。
Type | NAME | Value | TTL | Status |
CNAME | ssh | @ | Automatic | Orange ☁️ |
- 添加入口规则
入口规则自上而下解析,因此此规则应高于 - 服务:
https://REVERSEPROXYIP:PORT/
规则。bash
1
2
- 注册 Cloudflare 团队
- 点击这里注册,免费计划最多可容纳 50 个用户,但需要计费详细信息,可以在没有计划的情况下使用它。
- 为您的 SSH 服务添加 Teams 应用程序并启用基于浏览器的渲染
- cloudflare 的指南可以在这里找到
列出和删除隧道
要列出所有已配置的隧道并查看活动连接:
bash
ID | NAME | CREATED | CONNECTIONS |
十六进制的NAMEID | 隧道名称 | 创建日期和时间 | NUMBERxCFPOINT |
撤销和删除隧道:
bash
1
如果隧道上仍有活动连接,则需要强制删除。连接将被丢弃:
bash
1
删除隧道还会使与该隧道关联的凭据文件无效,这意味着无法重新建立这些连接。
- 作者:Wilson Zeng
- 链接:https://wilsonzeng.com/article/1c737c9b-9c25-4058-9522-a6059ab25869
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。