cloudflared (域名)穿透
如果没有公网ip,或者服务器没有备案的情况下,可以使用 cloudflared 提供的穿透服务,速度凑合用,但是国内延迟可能爆炸。
cloudflared配置
SSL/TLS 使用 完全 模式
- 不要使用 完全(严格)
使用方法
1 下载安装。
2 认证:
cmd
cloudflared tunnel login授权成功后,你的本地电脑会生成一个名为 cert.pem 的文件。
Windows 路径: C:\Users\<你的用户名>\.cloudflared\cert.pem
Mac/Linux 路径: ~/.cloudflared/cert.pem
将文件传输到服务器
然后测试是否登录 cloudflared tunnel list
3 创建隧道
创建:
cloudflared tunnel create my-server配置路由:
cloudflared tunnel route dns my-server reinffy.cc运行:
cloudflared tunnel run --url http://127.0.0.1:8080 my-server
示例 测试成功 创建隧道 reinffy-tunnel
1创建:
cmd
cloudflared tunnel create reinffy-tunnel运行后会生成一个 JSON 凭证文件,并在终端显示一个 ID(例如:12345678-xxxx-xxxx-xxxx-xxxxxxxxxxxx)。
2配置路由:
cmd
# 绑定主域名
cloudflared tunnel route dns reinffy-tunnel reinffy.cc
# 绑定子域名
cloudflared tunnel route dns reinffy-tunnel openlist.reinffy.cc3运行:
cmd
cloudflared tunnel run --url http://127.0.0.1:19000 reinffy-tunnel原理:cloudflared 默认会透传 Host 头部(域名信息)。当请求到达 Nginx 时,Nginx 会看到域名是 reinffy.cc 还是 openlist.reinffy.cc,并自动匹配对应的 server 块。
示例 配置文件 config.yml
先确认创建隧道
cloudflared tunnel create reinffy-tunnel
yaml
tunnel: xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
credentials-file: C:\Users\Administrator\.cloudflared\xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.json
ingress:
- hostname: reinffy.cc
service: http://127.0.0.1:19000
- hostname: openlist.reinffy.cc
service: http://127.0.0.1:19000
# 最后必须加一个 443 兜底规则(Tunnel 要求)
- service: http_status:404使用指定配置运行
cmd
cloudflared tunnel --config C:\Users\Administrator\.cloudflared\config.yml run