跳转到内容
搜索文档

运行参数

最后更新 查看 MarkdownAgent 设置

本页列出了 cloudflared tunnel run 命令的配置标志。对于远程托管隧道,请将这些标志添加到隧道服务中。如果您使用的是本地托管隧道,请将这些标志作为键值对添加到您的配置文件中。

将运行参数添加到隧道服务

远程托管隧道在您的操作系统上作为服务运行。要将运行参数添加到隧道服务文件:

在 Linux 上,Cloudflare Tunnel 使用 systemctl 将自身安装为系统服务。默认情况下,该服务将被命名为 cloudflared.service。要在 Linux 上配置您的隧道:

  1. 打开 cloudflared.service

    sudo systemctl edit --full cloudflared.service
  2. 使用所需的配置标志修改 cloudflared tunnel run 命令。例如,

    [Unit]
    Description=Cloudflare Tunnel
    After=network.target
    
    [Service]
    TimeoutStartSec=0
    Type=notify
    ExecStart=/usr/local/bin/cloudflared tunnel --loglevel info --logfile /var/log/cloudflared/cloudflared.log run --token <TOKEN VALUE>
    Restart=on-failure
    RestartSec=5s
    
    [Install]
    WantedBy=multi-user.target
  3. 重启 cloudflared.service

    sudo systemctl restart cloudflared
  4. 要验证新配置,请检查服务 status:

    sudo systemctl status cloudflared
     cloudflared.service - cloudflared
      Loaded: loaded (/etc/systemd/system/cloudflared.service; enabled; preset: enabled)
      Active: active (running) since Wed 2024-10-09 20:02:59 UTC; 2s ago
    Main PID: 2157 (cloudflared)
       Tasks: 8 (limit: 1136)
      Memory: 16.3M
         CPU: 136ms
      CGroup: /system.slice/cloudflared.service
              └─2157 /usr/bin/cloudflared tunnel --loglevel info --logfile /var/log/cloudflared/cloudflared.log run --token eyJhIjoi...

在 macOS 上,Cloudflare Tunnel 使用 launchctl 将自身安装为 launch agent。默认情况下,该 agent 将被命名为 com.cloudflare.cloudflared。要在 macOS 上配置您的隧道:

  1. 停止 cloudflared 服务。

    sudo launchctl stop com.cloudflare.cloudflared
  2. 卸载配置文件。

    sudo launchctl unload /Library/LaunchDaemons/com.cloudflare.cloudflared.plist
  3. 在文本编辑器中打开 /Library/LaunchDaemons/com.cloudflare.cloudflared.plist

  4. 使用所需的配置标志修改 ProgramArguments 键。例如,

    <plist version="1.0">
        <dict>
            <key>Label</key>
            <string>com.cloudflare.cloudflared</string>
            <key>ProgramArguments</key>
            <array>
                <string>/opt/homebrew/bin/cloudflared</string>
                <string>tunnel</string>
                <string>--logfile</string>
                <string><PATH></string>
                <string>--loglevel</string>
                <string>debug</string>
                <string>run</string>
                <string>--token</string>
                <string><TOKEN VALUE> </string>
            </array>
  5. 加载更新后的配置文件。

    sudo launchctl load /Library/LaunchDaemons/com.cloudflare.cloudflared.plist
  6. 启动 cloudflared 服务。

    sudo launchctl start com.cloudflare.cloudflared

在 Windows 上,Cloudflare Tunnel 使用注册表编辑器将自身安装为系统服务。默认情况下,该服务将被命名为 cloudflared。要在 Windows 上配置您的隧道:

  1. 打开注册表编辑器。

  2. 前往 HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > cloudflared

  3. 双击 ImagePath

  4. 使用所需的配置标志修改 Value data(数值数据)。例如,

    C:\Program Files (x86)\cloudflared\.\cloudflared.exe tunnel --loglevel info --logfile <PATH> run --token <TOKEN VALUE>
在注册表编辑器中修改 cloudflared 服务

参数

autoupdate-freq

语法 默认值
cloudflared tunnel --autoupdate-freq <FREQ> run <UUID or NAME> 24h

配置 cloudflared 更新的频率。

默认情况下,cloudflared 会定期检查更新并使用新版本重新启动。重新启动是通过生成一个连接到 Cloudflare 全球网络的新进程来执行的。成功连接后,旧进程将在处理完所有未完成的请求后优雅地关闭。另请参阅:no-autoupdate

config

语法 默认值
cloudflared tunnel --config <PATH> run <UUID or NAME> ~/.cloudflared/config.yml

指定 YAML 格式的配置文件的路径。

dns-resolver-addrs

语法 环境变量
cloudflared tunnel run --dns-resolver-addrs <IP:PORT> <UUID or NAME> TUNNEL_DNS_RESOLVER_ADDRS

指定自定义 DNS 解析器地址,供 cloudflared 使用以替代宿主机的默认解析器。每个地址必须采用 ip:port 格式——提供不带端口的 IP 地址将导致 cloudflared 启动失败。您可以通过重复该标志来指定多个解析器。例如,

cloudflared tunnel run --dns-resolver-addrs 1.1.1.1:53 --dns-resolver-addrs 1.0.0.1:53 <UUID or NAME>

当指定多个解析器时,cloudflared 会为每个 DNS 请求随机选择一个。最多允许 10 个解析器地址。

edge-bind-address

语法 环境变量
cloudflared tunnel --edge-bind-address <IP> run <UUID or NAME> TUNNEL_EDGE_BIND_ADDRESS

指定用于在 cloudflared 与 Cloudflare 全球网络之间建立连接的传出 IP 地址。

默认情况下,cloudflared 让操作系统决定使用哪个 IP 地址。如果您有多个可用的网络接口并希望首选特定接口,则此选项很有用。

edge-bind-address 的 IP 版本将覆盖 edge-ip-version(如果提供)。例如,如果您输入 IPv6 源地址,cloudflared 将始终连接到 IPv6 目的地。

edge-ip-version

语法 默认值 环境变量
cloudflared tunnel --edge-ip-version <VERSION> run <UUID or NAME> 4 TUNNEL_EDGE_IP_VERSION

指定用于在 cloudflared 与 Cloudflare 全球网络之间建立连接的 IP 地址版本(IPv4 或 IPv6)。可用值为 auto46

auto 依赖宿主操作系统来决定选择哪个 IP 版本。从区域查找的 DNS 解析返回的第一个 IP 版本将被用作主要集合。在 IPv6 和 IPv4 双栈网络设置中,cloudflared 会将 IP 版本分成两个地址集,以便在连接失败场景中进行回退。

grace-period

语法 默认值 环境变量
cloudflared tunnel --grace-period <PERIOD> run <UUID or NAME> 30s TUNNEL_GRACE_PERIOD

cloudflared 收到 SIGINT/SIGTERM 时,它将停止接受新请求,等待正在进行的请求终止,然后关闭。等待正在进行的请求将在该优雅期过后超时,或者在收到第二个 SIGTERM/SIGINT 时超时。

logfile

语法 环境变量
cloudflared tunnel --logfile <PATH> run <UUID or NAME> TUNNEL_LOGFILE

将应用程序日志保存到此文件。主要用于报告问题。有关联系 Cloudflare 支持时需要提供哪些信息的更多详细信息,请参阅本指南

loglevel

语法 默认值 环境变量
cloudflared tunnel --loglevel <VALUE> run <UUID or NAME> info TUNNEL_LOGLEVEL

指定本地 cloudflared 实例的日志记录详细程度。可用值为 debuginfo(默认)、warnerrorfatal。在 debug 级别,cloudflared 将记录并显示请求 URL、方法、协议、内容长度,以及所有请求和响应头。但请注意,这可能会泄露日志中的敏感信息。

metrics

语法 默认值 环境变量
cloudflared tunnel --metrics <IP:PORT> run <UUID or NAME> 请参阅 Tunnel 指标 TUNNEL_METRICS

在指定的 IP 地址和端口上公开 Prometheus 端点,然后您可以对其进行查询以获取使用指标

no-autoupdate

语法 环境变量
cloudflared tunnel --no-autoupdate run <UUID or NAME> NO_AUTOUPDATE

禁用 cloudflared 的自动更新。另请参阅:autoupdate-freq

origincert

语法 默认值 环境变量
cloudflared tunnel --origincert <PATH> run <UUID or NAME> ~/.cloudflared/cert.pem TUNNEL_ORIGIN_CERT

指定您其中一个区域的账户证书,授权客户端作为该区域的源服务器。您可以使用 cloudflared tunnel login 命令或访问 https://dash.cloudflare.com/argotunnel 来获取证书。

pidfile

语法 环境变量
cloudflared tunnel --pidfile <PATH> run <UUID or NAME> TUNNEL_PIDFILE

在首次成功连接后,将应用程序的进程标识符 (PID) 写入此文件。主要用于脚本编写和服务集成。

post-quantum

语法 环境变量
cloudflared tunnel run --post-quantum <UUID or NAME> TUNNEL_POST_QUANTUM

默认情况下,通过 quic 建立的 Cloudflare Tunnel 连接使用后量子密码学 (PQC)进行加密,但在连接出现问题时将回退到非 PQ。如果提供了 --post-quantum 标志,则 quic 连接仅允许使用 PQ 密钥协商,不会回退到非 PQ。

使用 http2 协议时不支持后量子密钥协商。

protocol

语法 默认值 环境变量
cloudflared tunnel --protocol <VALUE> run <UUID or NAME> auto TUNNEL_TRANSPORT_PROTOCOL

指定用于在 cloudflared 与 Cloudflare 全球网络之间建立连接的协议。可用值为 autohttp2quic

auto 值将自动配置 quic 协议。如果 cloudflared 无法建立 UDP 连接,它将回退使用 http2 协议。

region

语法 环境变量
cloudflared tunnel --region <VALUE> run <UUID or NAME> TUNNEL_REGION

允许您选择建立连接的区域。目前唯一可用的值是 us,这会通过美国的数据中心路由所有连接。省略或留空以连接到全球区域。

当区域设置为 us 时,cloudflared 会使用特定的美国主机名和 IP。有关详细信息,请参阅带防火墙的 Tunnel(Tunnel with firewall)

retries

语法 默认值 环境变量
cloudflared tunnel --retries <VALUE> run <UUID or NAME> 5 TUNNEL_RETRIES

指定发生连接/协议错误时的最大重试次数。重试使用指数退避(默认在 1、2、4、8、16 秒时重试),因此不建议您显著增加此值。

tag

语法 环境变量
cloudflared tunnel --tag <KEY=VAL> run <UUID or NAME> TUNNEL_TAG

指定用于标识此隧道的自定义标签。可以通过向命令中添加额外的 --tag <KEY=VAL> 标志来指定多个标签。如果在配置文件中输入多个标签,请用逗号分隔:tag: {KEY1=VALUE1, KEY2=VALUE2}

token

语法 环境变量
cloudflared tunnel run --token <TUNNEL_TOKEN> TUNNEL_TOKEN

cloudflared 实例与特定隧道关联。当您首次创建隧道时,该隧道的令牌会显示在仪表板中。您也可以使用 API 检索令牌。

token-file

语法 环境变量
cloudflared tunnel run --token-file <PATH> TUNNEL_TOKEN_FILE

使用包含令牌的文件将 cloudflared 实例与特定隧道相关联。

这篇文档对您有帮助吗?