家庭宽带一般都没有公网IP,因此需要一个隧道或者反代,进行服务公开、曝漏。
选型
SSH转发:可以使用,但是要求必须有公网服务器,而且通过脚本操作,不够傻瓜化
frpc:可以使用,但是要求必须有公网服务器
Tailscale:可以使用,需要注册一个 Tailscale 账号。个人账号有数量限制
Cloudflare Tunnel:可以使用,需要 Cloudflare 账户。基本无限制
综合对比,选择了 Cloudflare Tunnel 可以配合 Zero Trust 防止被攻击
创建配置
在 Cloudflare 后台,创建 Tunnel,然后复制对应的 token
启动Docker
创建如下文件内容 /mnt/ssd/docker/compose/cloudflared/compose.yaml
services:
cloudflared:
container_name: cloudflared
image: cloudflare/cloudflared:latest
restart: unless-stopped
network_mode: host
command:
- tunnel
- --no-autoupdate
- run
- --token
- ${TUNNEL_TOKEN}
创建如下文件内容 /mnt/ssd/docker/compose/cloudflared/.env
TUNNEL_TOKEN=刚才保存的token
启动
cd /mnt/ssd/docker/compose/cloudflared
docker compose up -d
# 停止
# docker compose down
正常情况下,就可以在 Cloudflare 后台看到你的服务器上线了