#教程#树莓派/群晖/NAS使用内网穿透做服务器/Cloudflare tunnel怎么使用
好早之前也用过一个内网穿透工具,但由于网站关闭状态也没有记录,所以最后不了了之,再加上大部分内网穿透工具都不是免费的,所以不管是折腾上还是其他方面不如cloudflare免费的好,唯一的缺点大概就是访问并不会很快,毕竟利用的是cloudflare的边缘网络。好处就是目前还是纯免费。看了网上很多教程,都不尽如人意,自己找了一篇英文原档敲起键盘。
此处所用镜像为树莓派镜像,如果你是ubuntu或者其他镜像源。可参考官网
https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/tunnel-guide/local/#arch-linux
开始
大部分网上教程直接让你在github上下载二进制文件,考虑到大陆对github已经全面封杀,再加上树莓派这种Linux板大部分人对于网络代理这一块还是懵逼,这里直接在源上安装。
以下命令均运行于root账户,如不是root账户下操作请自行在每条命令行前添加sudo
更新源
apt update
apt upgrade
安装必备包
apt install curl lsb-release
添加库
curl -L https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-archive-keyring.gpg >/dev/null
保存密钥
echo "deb [signed-by=/usr/share/keyrings/cloudflare-archive-keyring.gpg] https://pkg.cloudflare.com/cloudflared $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflared.list
更新缓存
apt update
安装软件包
apt install cloudflared
使用
登陆
cloudflared tunnel login
你将得到大概如下信息
https://dash.cloudflare.com/argotunnel?callback=https%3A%2F%2Flogin.cloudflareaccess.org%2FXXXXXXXXXX
Leave cloudflared running to download the cert automatically.
大致会得到如下登陆信息
You have successfully logged in.
If you wish to copy your credentials to a server, they have been saved to:
/home/pi/.cloudflared/cert.pem
创建隧道
cloudflared tunnel create name(这个名字你自己能记住就行)
输入命令后会得到如下信息
Created tunnel pimytunnel with id XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
记得保存下
链接域名
cloudflared tunnel route dns name(上一步命令中提到的名字) DOMAINNAME(此处更换成你的域名,可以是二级域名,域名不必解析,但是一定要托管在cloudflare)
如上述命令正常将大概得到如下反馈
通过隧道转发端口
cloudflared tunnel run --url localhost:PORT(PORT更换成转发断口) name(更换成你记得的名字)
写进系统常驻
上门的操作只是为了让你确认隧道可行性,如果可行即可写入开机自启。
vi ~/.cloudflared/config.yml
配置如例
credentials-file: /home/[USERNAME]/.cloudflared/[UUID].json
ingress:
- hostname: [HOSTNAME]
service: [PROTOCOL]://localhost:[PORT]
- service: http_status:404
安装服务
cloudflared --config ~/.cloudflared/config.yml service install
启动在线
systemctl enable cloudflared
systemctl start cloudflared