在我们使用NAT VPS的时候,或者是我们自己使用本地环境的时候,由于我们没有公网IP,只能使用内网穿透的法子。这时候,我们就可以使用CloudFlare Argo Tunnel来穿透我们需要使用公网IP的服务,并且可以自定义域名。

准备材料

  • 一枚域名,并DNS解析到CloudFlare

步骤方法

  1. 打开Argo Tunnel的官网:https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/installation ,然后选择自己的Linux版本下载对应的安装包。CentOS系系统选择rpm包下载,Debian系系统选择deb包下载

  1. 使用dpkg -i cloudflared-linux-amd64.deb(CentOS:rpm -i cloudflared-linux-amd64.rpm)安装cloudflared客户端
    PS: 本文中官网下载的文件名为cloudflared-linux-amd64.deb,请按照实际文件名安装

  2. 可以使用cloudflared tunnel --url http://127.0.0.1:端口号命令,测试HTTP隧道效果或使用cloudflared tunnel --url tcp://127.0.0.1:端口号命令,测试TCP隧道效果

  1. 使用cloudflared tunnel login命令,登录你的CloudFlare账号。复制控制台出现的网址登录你的CloudFlare账号

  1. 选择一个域名,授权给Argo Tunnel使用
  2. 下面是一些常用的命令

创建隧道:cloudflared tunnel create 隧道名
删除隧道:cloudflared tunnel delete 隧道名
列出隧道:cloudflared tunnel list
配置隧道:cloudflared tunnel route dns 隧道名 [CNAME 记录名称].[接入 CLoudflare 的域名]
运行隧道:cloudflared tunnel run --url http://127.0.0.1:http端口号 隧道名cloudflared tunnel run --url tcp://127.0.0.1:tcp端口号 隧道名

  1. 使用YML配置文件文件如下
1
2
3
4
5
6
7
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 等其他协议,可以查看官网:https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/ingress

然后使用 cloudflared tunnel --config [配置文件路径] run 命令运行隧道

参考:https://www.blueskyxn.com/202102/4176.html