公众号关注 「奇妙的 Linux 世界」

设为「星标」,每天带你玩转 Linux !

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].jsoningress:- 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/

本文转载自:「云原生实验室」,原文:https://tinyurl.com/3k7u72ed,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com。

最近,我们建立了一个技术交流微信群。目前群里已加入了不少行业内的大神,有兴趣的同学可以加入和我们一起交流技术,在 「奇妙的 Linux 世界」 公众号直接回复 「加群」 邀请你入群。

你可能还喜欢

点击下方图片即可阅读

如何用 100 行 Shell 代码快速实现一个 Web Server


点击上方图片,『美团|饿了么』外卖红包天天免费领

更多有趣的互联网新鲜事,关注「奇妙的互联网」视频号全了解!

如何免费获取一个 Cloudflare 公网 IP相关推荐

  1. API获取自己的公网IP地址 API查询IP信息

    异想之旅:本人原创博客完全手敲,绝对非搬运,全网不可能有重复:本人无团队,仅为技术爱好者进行分享,所有内容不牵扯广告.本人所有文章仅在CSDN和个人博客(一定是异想之旅域名)发布,除此之外全部是盗文! ...

  2. Linux开机自动获取本机公网IP并发送至指定邮箱

    前言 当我们需要远程连接自己的Linux计算机时,可以使用ssh命令,但是需要我们获取目标计算机的公网ip.以下是使用Python实现的开机自动获取本地并发送至指定邮箱的小脚本. 实现步骤 1.引入库 ...

  3. 获取电脑出口公网IP地址

    钉钉推送时,根据需求可能需要设置出口公网IP地址段,下面是获取开发者出口公网IP地址的方式: 1.返回公网IP curl ifconfig.me 2.返回IP及运营商信息 curl cip.cc

  4. python3固定规则_利用Python3获取办公室的公网IP并修改阿里云安全组规则

    阿里云Python SDK:SDK使用说明 安装依赖 #本文使用的Python版本为Python 3.7 pip install aliyun-python-sdk-core-v3 pip insta ...

  5. 使用Linux curl命令获取本机公网IP地址

    使用Linux curl命令获取本机公共IP地址 在本教程中,我们将学习如何使用Linux curl命令查找计算机的公共IP地址. 通常,如果我们想要找到我们使用的公共IP地址,我们会去谷歌并搜索&q ...

  6. Windows获取本机公网ip脚本

    新建txt,重命名为ip.bat 再将下列文本,贴到ip.bat里 @echo offecho Public IP: curl ifconfig.me echo.pause 双击ip.bat,可得本机 ...

  7. 【python】获取PC机公网IP并发送至邮箱

    文章目录 0.引言 1.获取外网IP 2.打开SMTP服务 3.python发送邮件 4.完整代码 0.引言 \qquad之前一直使用Putty连接公司的PC机进行远程办公,苦于外网的IP地址不能固定 ...

  8. 【wireshark】如何获取一个设备的IP地址

    问题 开发中往往会出现无法知道设备正确的IP地址,从而无法连接到设备. 解决方式: 使用软件工具wireshark来获取设备IP地址. 可以实现不同网段捕获设备IP 具体流程: 1. 下载wiresh ...

  9. 组织在召唤:如何免费获取一个js.org的二级域名

    之前我是使用wangduanduan.github.io作为我的博客地址,后来觉得麻烦,有把博客关了.最近有想去折腾折腾. 先看效果:wdd.js.org 如果你不了解js.org可以看看我的这篇文章 ...

  10. Java 获取当前服务器公网IP

    public static void main(String[] args) {try {// 打开连接Document doc = Jsoup.connect("http://chaipi ...

最新文章

  1. 考oracle ocm,Oracle数据库OCM考试系列教程与总结_OCM考试实验笔记
  2. 检测和语义分割_分割和对象检测-第2部分
  3. linux 短信功能,Android调用系统短信功能发送短信
  4. sit matlab,LabView SIT工具包的使用和安装说明
  5. Linux 发展历史
  6. linux下查看mysql配置文件位置
  7. 网络流专题(最大流与费用流)例题总结
  8. 设备接入(LWM2M协议)
  9. 通俗讲解:傅立叶分析和小波分析之间的关系
  10. 移动友华PT924光猫获取超级用户方法
  11. 我的口琴之路(附c调简谱)--------一个命中注定音乐巅峰是小星星的男人
  12. 【分享】笔记本触控面板使用指南
  13. SpringBoot项目实现微信小程序登录步骤
  14. MySql NTERVAL函数
  15. Python 对象烤地瓜
  16. 计算机基础知识----课后习题
  17. 在ubuntu中运行sudo apt-get update报错The following signatures couldn‘t be verified because the public key
  18. 电机学他励直流发电机matlab,基于Matlab并励直流发电机的自励过程分析
  19. 单片机-stm32-使用cdc类实现vcp(虚拟串口)
  20. oracle安装在非图形,非图形化静默安装Oracle 11g

热门文章

  1. 01 初识微信小程序
  2. 计算机不能删除用户,删除用户时提示无法在内置账户上运行此操作 -电脑资料...
  3. python ca模块_[转]常用的python模块及安装方法
  4. 批量删除文件名前的数字编号
  5. video sematic segmentation视频语义分割方向相关论文罗列+数据集下载链接
  6. 苹果手机上linux编程,iOS真机调试 - iOS学习笔记_Linux编程_Linux公社-Linux系统门户网站...
  7. @Aspect 注解使用详解
  8. c语言oct,【讨论】OCT扫描中的C-scan你知道吗????????
  9. 用U盘安装ubuntu系统的具体步骤
  10. 笔记本电脑 用 VGA 线 外接显示器 频闪