创建一个cloudflare账号,登陆进去,有可能要科学。

添加站点

点击左侧边栏的网站,点击添加站点,把域名添加给cloudflare,很多参考文章里说需要把域名托管在cloudflare,实际操作下来并不需要。只要回到你自己的域名托管上,按照cloudflare的需求修改NS(nameserver)的设置就可以了。

修改完成NS之后需要过一会儿才会生效,cloudflare会自己不停监测是否生效,一旦生效之后,这个域名在cloudflare就是可用的状态了。

Zero Trust

站点生效之后,点击左侧边栏里的Zero Trust
或者直接进这个地址https://one.dash.cloudflare.com/

进入Access > Tunnels
这里点击Create a tunnel添加一个通道,后面的就很直接了。
最后会给你一个code,记住他。

群晖cloudflared插件

如果已经添加了矿神的插件源的话,直接就可以在插件里找到Cloudflared这个插件,安装。
安装或者启动的时候会让你输入code,就把前面在cloudflare创建Tunnel时候的code输入就完成了。
到这里群晖的事情都做完了。

添加 Public Hostname

接下来回到Zero Trust,会发现Tunnel已经被激活了。
进入这个tunnel的设定,进入public hostname标签,把群晖本地的地址都添加进去就可用了。

http服务

这里要注意cloudflare的服务是认端口的,所以要每个端口指定。
比如群晖控制台的端口是5000,这里的指向就需要时xxx.com:5000,假设设定的域名是a.xxx.com
群晖DS Photo的端口是80,所以可以不额外设置端口yyy.com,假设设置的域名是b.yyy.com

这种情况下b.yyy.com:5000是无法打开控制台的,因为b.yyy.com就是指向80端口的,不能再加端口了。

也就是说,如果你设定的协议是http的话,公网的域名就只能是80端口。

ssh服务

如果要通过cloudflare使用ssh服务,设置稍微麻烦一点。
首先在public hostname里要设定 service type为ssh,URL为localhost:22,假设设定的域名为 ssh.xxx.com

这个地址是无法用ssh客户端或者terminal访问的,需要调用cloudflare的网页应用访问。

所以需要在zero tier里设置一个网页应用。
进入Access > Applications, add an application > Self-hosted
这里的application domain输入你刚才设定好的ssh地址。

后面一路按照常理设置过去。
需要额外设置的是,进入这个application的设定,拉到最下面的Additional settings,这里Browser rendering里下拉选择ssh

后面只需要在浏览器里输入设定好的地址(比如 https://ssh.xx.com)就可以了。(会需要邮件验证)

PVE-debian穿透局域网

安装Cloudflared

因为安装需要从github下载安装包,直接无法访问,先查一下可用的ip。
ipaddress.com

修改 host:

1
2
3
4
nano /etc/hosts
140.82.113.3 github.com

systemctl restart systemd-hostnamed

另外还有两个文件 /etc/host/etc/hostnames,反正我三个都改了。

开始下载安装:

1
2
3
4
5
6

curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb &&

sudo dpkg -i cloudflared.deb &&

sudo cloudflared service install eyJhIjoiYTRiYzZkMzBkNDQ1ZDc4ZTllYjcwNjlkOGRiNGZjNTkiLCJ0IjoiMTk5YTcxZGYtNmMwYi00NThhLWI2NDUtMzQ1NGYzMTNkMDFmIiwicyI6Ik1qZzJZV1UyWm1JdE1XTTRPUzAwTWpBM0xUbGpZakF0TXpZNE9EUm1ZemxtWkdGaiJ9

参考

矿神的参考

  1. 域名从阿里云转出。参考
  2. 转入cloudflare。参考