使用CF Tunnel穿透内网项目
本文由AI生成,仅作部分细节修改。
1.安装 Cloudflare Tunnel
执行:
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
安装:
sudo dpkg -i cloudflared-linux-amd64.deb
检查:
cloudflared --version
2.创建 Tunnel
执行:
cloudflared tunnel login
会出现:
Please open the following URL:
复制网址。
浏览器打开。
登录 Cloudflare。
选择你的域名。
授权。
这里如果是第二次登录,则无需使用执行
创建:
cloudflared tunnel create xxxxxx
返回:
类似:
Tunnel UUID:
xxxx-xxxx-xxxx
记下来。
3.配置域名
创建配置文件:
nano ~/.cloudflared/config.yml
填写:
注意替换 UUID:
tunnel: xxxx-xxxx-xxxx
credentials-file: /root/.cloudflared/xxxx-xxxx-xxxx.json
ingress:
- hostname: api.example.com
service: http://localhost:8080
- hostname: api2.example.com
service: http://localhost:8888
- service: http_status:404
保存。
这里的/root可以改为当前用户/home/username,因为前面用的nano ~/.cloudflared/config.yml
需要注意格式问题,下面的主机名与服务地址可以按需添加,一个CF Tunnel可以穿透多个服务。
似乎仅限登陆时选择的那个域名,这里没做测试。
这里可以使用下面的命令来查看当前用的哪个配置文件,如果修改了没反应,可以检查下,防止修改错了地方
sudo systemctl cat cloudflared | grep ExecStart
默认的配置文件可能在/etc/cloudflared/config.yml
4.绑定 DNS
执行:
cloudflared tunnel route dns xxxxxx api.example.com
进行DNS解析绑定。
5.启动 Tunnel
测试:
cloudflared tunnel run xxxxxx
这里直接浏览器访问测试就行
成功。
现在浏览器访问:
https://api.example.com
应该直接进入项目。
6.设置开机启动
安装服务:
sudo cloudflared --config /home/username/.cloudflared/config.yml service install
username为你的用户名
启动:
sudo systemctl start cloudflared
设置开机:
sudo systemctl enable cloudflared
检查:
systemctl status cloudflared
看到:
active (running)
完成。
7.常用命令
检查配置是否有格式错误
cloudflared tunnel ingress validate
测试域名解析地址
cloudflared tunnel ingress rule https://api.example.com
启动 Cloudflare Tunnel:
sudo systemctl start cloudflared
关闭:
sudo systemctl stop cloudflared
重启:
sudo systemctl restart cloudflared
查看状态:
systemctl status cloudflared