安装 Cloudflared

直接从 GitHub 存储库获取 cloudflared 的二进制可执行文件:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# 需要 cURL 工具

sudo apk update && sudo apk add --no-cache curl

# 下载 amd64 架构的最新可执行文件

sudo curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 \

  -o /usr/bin/cloudflared

# 赋予可执行权限

sudo chmod +x /usr/bin/cloudflared

# 验证安装

cloudflared --version

获取隧道 Token

前往 Cloudflare Zero Trust 控制台新建隧道,复制生成的 Token 备用:

get-token.webp

配置 OpenRC 守护进程

与大多数主流 Linux 发行版不同,Alpine 采用 OpenRC 而非 Systemd 来管理系统服务。我们需要手动创建一个服务脚本:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# 将下方的 <Token> 替换为实际获取的值

sudo tee /etc/init.d/cloudflared > /dev/null << 'EOF'

#!/sbin/openrc-run

name=$RC_SVCNAME

pidfile="/var/run/$name.pid"

command="/usr/bin/cloudflared"

# 运行服务,每月自动更新二进制文件

command_args="--pidfile /var/run/$name.pid --autoupdate-freq 720h0m0s tunnel run --token <Token>"

command_background="yes"

output_log="/var/log/$name.log"

error_log="/var/log/$name.log"

depend() {

    need net

    after firewall

    use logger dns

}

EOF

初始化日志重定向输出:

1
2
3
sudo touch /var/log/cloudflared.log

sudo chmod 666 /var/log/cloudflared.log

赋予服务脚本可执行权限并启动:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
sudo chmod +x /etc/init.d/cloudflared

# 将 cloudflared 添加至开机自启

sudo rc-update add cloudflared default

# 立即启动服务

sudo rc-service cloudflared start

# 检查服务运行状态

sudo rc-service cloudflared status

日常管理命令:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 查看实时日志

tail -f /var/log/cloudflared.log

# 停止服务

sudo rc-service cloudflared start

# 重启服务

sudo rc-service cloudflared restart