用cloudflare来穿透链接NAS
创建一个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 | nano /etc/hosts |
另外还有两个文件 /etc/host 和 /etc/hostnames,反正我三个都改了。
开始下载安装:
1 |
|


