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

如何在同一服务器创建多个绑定不同域名的Cloudflare Argo Tunnel?

解决Cloudflare Argo Tunnel多域名指向单服务器的问题

嘿,我来帮你搞定这个问题——你完全没必要创建多个隧道或者反复删除证书!Cloudflare Argo Tunnel支持在单条隧道下挂载多个域名,而且证书会自动管理,根本不用你手动折腾服务器上的证书。下面是两种可行的操作方法:

方法一:通过Cloudflare Dashboard可视化添加多域名

  1. 登录你的Cloudflare账户,进入Zero Trust面板,找到你已经创建好的Argo Tunnel。
  2. 在隧道详情页面,切换到Public Hostnames选项卡。
  3. 点击Add a public hostname,逐个添加你的域名(比如abc.com、xyz.com、qrs.com,子域名也可以):
    • 选择对应的Cloudflare域名(确保你的域名已经托管在Cloudflare,NS记录已切换)
    • 输入主机名(比如直接填abc.com或者带www的www.abc.com)
    • 设置服务地址:对应你服务器上的服务地址,比如http://localhost:80或者https://localhost:443(根据你的实际服务配置来)
    • 点击Save hostname,重复此操作添加所有需要的域名。
  4. 完成后,Cloudflare会自动为这些域名签发SSL证书,所有域名都会通过这条隧道指向你的服务器——全程不需要你在服务器上安装任何域名证书,cloudflared客户端会自动处理加密通信。

方法二:用配置文件批量管理多域名(适合大量域名场景)

如果你的域名数量较多,用配置文件会更高效:

  1. 在服务器上创建一个YAML配置文件,比如命名为tunnel-config.yml,内容如下:
tunnel: <你的隧道ID>
credentials-file: /root/.cloudflared/<你的隧道凭证文件名>.json

ingress:
  - hostname: abc.com
    service: http://localhost:80
  - hostname: xyz.com
    service: http://localhost:80
  - hostname: qrs.com
    service: http://localhost:80
  # 必须添加兜底规则,否则隧道无法正常运行
  - service: http_status:404
  1. 替换<你的隧道ID>和<你的隧道凭证文件名>为实际信息:隧道ID可以在Cloudflare Dashboard的隧道详情页找到,凭证文件是你创建隧道时下载的JSON文件。
  2. 停止之前运行的cloudflared进程,然后用配置文件启动隧道:
cloudflared tunnel run --config tunnel-config.yml
  1. 同样,Cloudflare会自动为所有配置的域名签发证书,所有流量都会通过这条加密隧道转发到你的服务器,完全不会暴露服务器IP。

几个关键注意点

  • 确保所有域名都已经托管在你的Cloudflare账户下,并且DNS解析已经切换到Cloudflare的NS服务器(这是Argo Tunnel生效的前提)。
  • 服务器上不需要安装任何域名证书,cloudflared会和Cloudflare边缘节点建立加密隧道,用户的请求先到Cloudflare边缘,再通过隧道转到你的服务器,全程加密。
  • 如果需要不同域名指向服务器上的不同服务,只需要修改配置文件里的service字段即可,比如abc.com指向http://localhost:8080,xyz.com指向http://localhost:8081。

这样操作后,你就能用单条Argo Tunnel实现多域名指向同一服务器,同时完美隐藏你的服务器IP啦!

内容的提问来源于stack exchange,提问作者inayatu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 21:22:52