Featured image of post 国内服务器免备案实现 HTTPS:Cloudflare Tunnel 配置

国内服务器免备案实现 HTTPS:Cloudflare Tunnel 配置

Badge

国内服务器免备案实现 HTTPS:Cloudflare Tunnel 配置全记录

0x00 为什么选择 Cloudflare Tunnel?

备案繁琐:没有备案的域名/国外域名无法直接指向国内服务器 IP。

安全需求:现代浏览器对许多 API(如剪贴板、摄像头等)要求必须在 HTTPS 环境下运行。

Cloudflare Tunnel 提供了一种优雅的解决方案:通过在本地运行一个轻量级守护进程,建立一条通往 Cloudflare 网络的长连接,从而实现无需公网 IP、自动分配 SSL 证书的高性能内网穿透。


0x01 安装 Cloudflared

根据您的系统环境,选择对应的安装方式:

1. Debian / Ubuntu 系列 (APT)

# 下载最新 .deb 安装包
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb

# 安装
sudo dpkg -i cloudflared-linux-amd64.deb

2. CentOS / RHEL / Fedora 系列 (YUM)

# 下载最新 .rpm 安装包
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-x86_64.rpm

# 安装
sudo yum localinstall cloudflared-linux-x86_64.rpm

0x02 隧道认证与创建

1. 身份认证

执行以下命令,终端会返回一个链接:

cloudflared tunnel login

在浏览器中打开该链接,登录您的 Cloudflare 账号,选择域名 例如 cornradio.org 并授权。

2. 创建隧道

创建一个名称为 lc-tunnel (名称可以自己取)的隧道:

cloudflared tunnel create lc-tunnel

执行后会获得一串 Tunnel ID,例如:98b17e94-xxxx-xxxx-xxxx-xxxx8a1297c9

3. 配置 DNS 解析

将子域名例如 xxx.cornradio.org 映射到该隧道:

cloudflared tunnel route dns lc-tunnel xxx.cornradio.org

0x03 完善配置文件

为了实现服务的长期稳定运行,我们需要将隧道信息写入配置文件。

配置文件路径/etc/cloudflared/config.yml

sudo mkdir -p /etc/cloudflared
sudo vim /etc/cloudflared/config.yml

写入以下内容(已根据您的环境配置):

tunnel: 98b17e94-xxxx-xxxx-xxxx-xxxx8a1297c9
credentials-file: /root/.cloudflared/98b17e94-xxxx-xxxx-xxxx-xxxx8a1297c9.json

ingress:
  # 将域名映射到本地 5001 端口
  - hostname: xxx.cornradio.org
    service: http://localhost:5001
  # 默认 404 规则,处理未匹配的请求
  - service: http_status:404

0x04 注册为系统服务

cloudflared 配置为系统守护进程,实现开机自启。

# 安装服务
sudo cloudflared service install

# 启动并检查状态
sudo systemctl start cloudflared
sudo systemctl status cloudflared

# 设置开机自启
sudo systemctl enable cloudflared

0x05 结语

现在,访问 https://xxx.cornradio.org,流量将通过 Cloudflare 的安全隧道安全地转发到服务器本地的 5001 端口。

通过这种方式,我们不仅解决了国内服务器 80/443 端口被封锁的问题,还免费获得了由 Cloudflare 颁发的受信任证书,完美解决了现代浏览器对“安全上下文”的严苛要求。

Licensed under CC BY-NC-SA 4.0
爱分享
使用 Hugo 构建
主题 StackJimmy 设计