前言

  1. Tunnel的安装与创建教程看这一篇,此默认用户完成所有配置。
  2. 本文只有Tunnel相关的内容,网站部署相关内容自行搜索。

配置文件

  1. 创建一个隧道并绑定域名,记录隧道id。教程

  2. 编辑config.yml配置文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    tunnel: <TUNNEL_ID>
    credentials-file: /主目录/.cloudflared/<TUNNEL_ID>.json

    ingress:
    - hostname: <DOMAIN> #绑定隧道时的域名
    service: http://localhost:80 #在80端口上开放http服务
    - service: http_status:404

    #例子
    tunnel: 81f41a92-7556-41dg-831h-21x5575fuh6f
    credentials-file: /root/.cloudflared/81f41a92-7556-41dg-831h-21x5575fuh6f.json

    ingress:
    - hostname: a.domain.com
    service: http://localhost:80
    - service: http_status:404
  3. 运行Tunnel

    1
    systemctl start cloudflared
  4. 不出意外的话已经可以正常使用了(意外永远都有)

关闭服务器对外端口

  1. 设置完成后所有流量都走的Tunnel,可以关闭服务器的80和443端口避免源站暴露。iptablesfirewalld相关教程自行搜索。

Tips

  1. 网站不要强制https也不用申请证书,Cloudflare会把这一切都帮你办好。
  2. config.yml当中虽然可以使用HTTPS和443端口,但是这除了增加bug和运算量没有任何的好处。
  3. 推荐在Cloudflare开启强制HTTPS、HSTS并且修改SSL加密模式为完全(严格)。
  4. 重要!不要使用IP访问量防御插件,因为是本地传输,所有的流量都来自127.0.0.1,插件很有可能会直接封禁该地址而导致所有人都无法访问
  5. Tunnel如果被关闭,Cloudflare会直接显示错误代码,而不是Always Online页面。