You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在NixOS上通过configuration.nix以声明式方式启用Cloudflare Tunnel?

在NixOS中通过configuration.nix声明式配置Cloudflare Tunnel(cloudflared)

步骤1:获取Cloudflare Tunnel凭证

在Cloudflare仪表盘创建隧道后,获取你的隧道令牌(Token)(推荐,无需额外管理凭证文件),或者下载对应的凭证JSON文件。

步骤2:编辑configuration.nix配置

根据你的需求选择以下配置方式:

方式1:令牌快速启动

直接在configuration.nix中添加服务配置,通过令牌启动隧道:

services.cloudflared = {
  enable = true;
  extraArgs = [
    "tunnel"
    "run"
    "--token"
    "替换为你的Cloudflare隧道令牌"
  ];
};

方式2:自定义路由规则(配置文件方式)

如果需要自定义域名转发、多服务路由规则,可通过声明式生成配置文件:

  1. 先在configuration.nix中创建cloudflared的规则配置文件:
# 声明式生成cloudflared配置文件
environment.etc."cloudflared/config.yml" = {
  text = ''
    tunnel: 替换为你的隧道ID
    credentials-file: /var/lib/cloudflared/credentials.json
    ingress:
      - hostname: your-domain.com
        service: http://localhost:8080  # 替换为你要转发的本地服务地址
      - service: http_status:404  # 无匹配路由时返回404
  '';
};

# 启用cloudflared服务并指定配置文件路径
services.cloudflared = {
  enable = true;
  configFile = "/etc/cloudflared/config.yml";
};

若使用凭证JSON文件,将其放置在/var/lib/cloudflared/credentials.json,并确保文件权限对cloudflared用户可读。

步骤3:部署配置

运行以下命令应用配置并启动服务:

sudo nixos-rebuild switch

验证与调试

  • 查看服务运行状态:systemctl status cloudflared
  • 实时查看服务日志:journalctl -u cloudflared -f

内容的提问来源于stack exchange,提问作者Prateek Raj Gautam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 13:31:04