服务在家中,白嫖 Cloudflare 的公网 IP。。
Cloudflare 推出的 Argo Tunnel 本意是保护 Web 应用程序,连接服务器端口和 Cloudflare 节点,定位见下图(来自 Many services, one cloudflared[1])
其工作方式类似于 frp,可以将本地服务发布到公网。只不过 frp 所需的服务器 IP 在 Argo Tunnel 中变成了 Cloudflare 提供的节点。相比运营商公网 IP,Argo Tunnel 省去了跟运营商扯皮的时间,相比于 frp 则省去了服务器的成本。
滥用开始
下文将展示如何在 Debian 10 下安装并使用 Cloudflare Argo Tunnel。
环境
-
Debian 10
准备
-
Cloudflare 账号
-
接入了 Cloudflare 的域名
参考
-
Argo Tunnel – Setup[2]
步骤
以下指令在 root 用户下执行,非 root 用户酌情添加 sudo
安装 Argo Tunnel Client
Argo Tunnel Client 支持 Windows、macOS 和 Linux
执行
-
$ wget -q https://bin.equinox.io/c/VdrWdbjqyF/cloudflared-stable-linux-amd64.deb
-
$ dpkg -i cloudflared-stable-linux-amd64.deb
其他操作系统安装指令查看 Install cloudflared[3]
身份认证
Argo Tunnel Client 需要使用者登录 Cloudflare 账号以进行授权,执行
$ cloudflared tunnel login
在连接了显示器的机器上,执行完毕会自动打开浏览器,在浏览器内登录账号
在无头模式的机器上,执行完毕后会输出一个链接,复制链接到浏览器内登陆账号,登录后选择使用的域名,完成验证
Cloudflared 会在 ~/.cloudlflared/ 下生成 cert.pem 证书,之后的操作都依赖于此文件
新建 Tunnel
执行
$ cloudflared tunnel create [Tunnel 名称]
每个 Tunnel 都对应一个 UUID,每新建一个 Tunnel,Cloudflared 都会在 ~/.cloudflared/ 下生成对应 UUID 的 json 文件
配置 DNS 记录
访问域名的控制面板,进入 DNS 配置页,新建 CNAME 记录,名称填写任意字符,目标填写 [tunnel 的 UUID].cfargotunnel.com
Argo Tunnel 的一个 UUID 只会与同一账户下的一个 DNS 记录绑定
新建配置文件
新建 YAML 配置文件,写入以下内容
-
tunnel: [tunnel 的名称或 UUID]
-
credentials-file: /root/.cloudflared/[tunnel 的 UUID].json
-
-
ingress:
-
- hostname: [CNAME 记录名称].[接入 CLoudflare 的域名]
-
service: http://localhost:80
-
- service: http_status:404
配置文件使用 Ingress 规则,如果想配置 SSH、TCP 等其他协议,可以查看 Ingress rules[4]
开启 Tunnel
执行
$ cloudflared tunnel --config [配置文件路径] run
如果不指定配置文件路径,cloudflared 会默认读取 ~/.cloudflared/config.yml
配置为系统服务
执行
$ cloudflared service install
cloudflared 会新建 systemd 文件,其它系统可以查看 Run as a service[5]
开启服务
-
$ systemctl start cloudflared.service
-
$ systemctl status cloudflared.service
效果
本地 IP 访问。
通过 Argo Tunnel 访问本地网页。
引用链接
[1]
Many services, one cloudflared: https://blog.cloudflare.com/many-services-one-cloudflared/
[2]
Argo Tunnel – Setup: https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup
[3]
Install cloudflared: https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/installation
[4]
Ingress rules: https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/ingress
[5]
Run as a service: https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/run-tunnel/run-as-service
原文链接:https://azhuge233.com/cloudflare-argo-tunnel-%E5%85%AC%E7%BD%91-ip-%E7%9A%84%E6%96%B0%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/服务在家中,白嫖 Cloudflare 的公网 IP。。_米开朗基杨的博客-CSDN博客