Cloudflare Tunnel 遇到的问题与解决方案
Docker 运行 Cloudflare Tunnel 遇到的问题与解决方案
在服务器上使用 cloudflare/cloudflared
镜像时,可能会遇到一些常见问题。这里整理了完整的解决步骤,方便以后参考。
1. 前台运行导致 SSH 退出后隧道断开
直接运行下面命令:
BASH
1 |
|
问题:进程是前台运行的,SSH 一旦断开,tunnel 也会中断。
2. 解决方法:后台运行 + 自动重启
推荐命令:
BASH
1 |
|
说明:
-d
→ 后台运行,不依赖 SSH 会话--restart=always
→ 系统重启后自动拉起--name cloudflared
→ 容器命名,方便管理
3. 权限问题:permission denied while trying to connect to the Docker daemon socket
报错信息:
LIVECODESERVER
1 |
|
原因:当前用户没有操作 Docker 的权限。
解决方案 1:临时用 sudo
BASH
1 |
|
解决方案 2:永久添加用户到 docker
组
BASH
1 |
|
退出并重新登录 SSH 后即可生效。
4. 常用命令
- 查看日志:BASH
1
docker logs -f cloudflared
- 停止容器:BASH
1
docker stop cloudflared
- 重启容器:BASH
1
docker restart cloudflared
5. 注意事项
- **不要带
< >
**,那只是占位符,实际使用时需要替换为真实的token
。 - 推荐写一个脚本
start-cloudflared.sh
保存命令,执行时更方便:BASH1
2
3
4
5#!/bin/bash
docker stop cloudflared 2>/dev/null
docker rm cloudflared 2>/dev/null
sudo docker run -d --restart=always --name cloudflared \
cloudflare/cloudflared:latest tunnel --no-autoupdate run --token <你的token>
✅ 总结
- SSH 退出就断开 → 因为是前台运行,解决方法是
-d
后台运行。 permission denied
→ 因为用户没权限操作 Docker,可以用sudo
或把用户加入docker
组。- 建议写脚本或加
--restart=always
,确保隧道稳定运行。