——通过 Cloudflare Tunnel 安全访问家中 Web 服务。
之前自己在玩客云上搭了个私人云盘,然后一直使用的cpolar内网穿透,不过免费用户的公网地址每天都会更换一次,使用起来也不太方便。正好最近有注意到可以使用cloudflare tunnel方案代替,记录一下部署过程(值得一提的是cloudflare就在上个月18号出现重大故障导致X, ChatGPT, Spotify等全球数百万个网站和服务瘫痪,我当时一度以为我的vpn出问题了)。1、需要绑定域名,因此需要购买一个域名,可到阿里云或腾讯云购买,第一年只需一块钱,第二年似乎也不贵大概十块到几十左右;3、一台NAS或其它服务器,我自己是在玩客云搭建了nextcloud。 进入cloudflare官网添加好自己的域名,选择free计划,修改域名DNS服务器(在哪个平台买的就到哪个平台改)为cloudflare提供的两个NS,等待DNS生效。
①armhf:
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm -O cloudflared
或
arm64:
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64 -O cloudflared
mv cloudflared /usr/local/bin/ 执行命令后会给一个链接,浏览器打开链接登录并选择自己的域名,成功后会生成cert.pem文件,位置在~/.cloudflared/cert.pem。 cloudflared tunnel create <yourtunnel> <yourtunnel>是自定义的名字,成功后会生成隧道凭证~/.cloudflared/<UUID>.json。 vi ~/.cloudflared/config.yaml ①credentials-file: /root/.cloudflared/<UUID>.json # 替换为自己实际的 UUID; ②hostname: 你想访问的子域名(example.com替换为自己购买的域名,其余可自定义,这就是最终通过浏览器公网访问的地址),可添加多个hostname暴露多个服务; ③service: http://localhost:8080 # 自己本地服务地址,这个是我nextcloud的服务地址; ④- service: http_status:404 # 兜底规则 cloudflared tunnel run <yourtunnel>(2) 如果没问题,可以配置systemd永久运行
vi /etc/systemd/system/cloudflared.service
输入以下内容:
启用并启动命令:
systemctl daemon-reload
systemctl enable --now cloudflared
systemctl status cloudflared
6、在cloudflared 控制台添加DNS记录
登录cloudflare官网,进入我的域名,添加一条CNAME记录:
*Name:对应前面配置的hostname
*Target : <UUID>.cfargotunnel.com (cloudflared tunnel info <mytunnel>命令查看)
*Proxy status: Proxied(橙色云)
完成后,访问https://<你前面设置的hostname>即可。
添加DNS记录如下图
我的nas上部署的是nextcloud,因此我是直接修改config.php文件。如下图在浏览器输入地址访问(地址就是前面在设备部署时~/.cloudflared/config.yaml文件里设置的hostname)。
打赏

微信扫一扫,打赏作者吧~
本文链接:https://www.jingber.cn/post/3947.html 转载需授权!