如何免费获取一个 Cloudflare 公网 IP
公众号关注 「奇妙的 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相关推荐
- API获取自己的公网IP地址 API查询IP信息
异想之旅:本人原创博客完全手敲,绝对非搬运,全网不可能有重复:本人无团队,仅为技术爱好者进行分享,所有内容不牵扯广告.本人所有文章仅在CSDN和个人博客(一定是异想之旅域名)发布,除此之外全部是盗文! ...
- Linux开机自动获取本机公网IP并发送至指定邮箱
前言 当我们需要远程连接自己的Linux计算机时,可以使用ssh命令,但是需要我们获取目标计算机的公网ip.以下是使用Python实现的开机自动获取本地并发送至指定邮箱的小脚本. 实现步骤 1.引入库 ...
- 获取电脑出口公网IP地址
钉钉推送时,根据需求可能需要设置出口公网IP地址段,下面是获取开发者出口公网IP地址的方式: 1.返回公网IP curl ifconfig.me 2.返回IP及运营商信息 curl cip.cc
- python3固定规则_利用Python3获取办公室的公网IP并修改阿里云安全组规则
阿里云Python SDK:SDK使用说明 安装依赖 #本文使用的Python版本为Python 3.7 pip install aliyun-python-sdk-core-v3 pip insta ...
- 使用Linux curl命令获取本机公网IP地址
使用Linux curl命令获取本机公共IP地址 在本教程中,我们将学习如何使用Linux curl命令查找计算机的公共IP地址. 通常,如果我们想要找到我们使用的公共IP地址,我们会去谷歌并搜索&q ...
- Windows获取本机公网ip脚本
新建txt,重命名为ip.bat 再将下列文本,贴到ip.bat里 @echo offecho Public IP: curl ifconfig.me echo.pause 双击ip.bat,可得本机 ...
- 【python】获取PC机公网IP并发送至邮箱
文章目录 0.引言 1.获取外网IP 2.打开SMTP服务 3.python发送邮件 4.完整代码 0.引言 \qquad之前一直使用Putty连接公司的PC机进行远程办公,苦于外网的IP地址不能固定 ...
- 【wireshark】如何获取一个设备的IP地址
问题 开发中往往会出现无法知道设备正确的IP地址,从而无法连接到设备. 解决方式: 使用软件工具wireshark来获取设备IP地址. 可以实现不同网段捕获设备IP 具体流程: 1. 下载wiresh ...
- 组织在召唤:如何免费获取一个js.org的二级域名
之前我是使用wangduanduan.github.io作为我的博客地址,后来觉得麻烦,有把博客关了.最近有想去折腾折腾. 先看效果:wdd.js.org 如果你不了解js.org可以看看我的这篇文章 ...
- Java 获取当前服务器公网IP
public static void main(String[] args) {try {// 打开连接Document doc = Jsoup.connect("http://chaipi ...
最新文章
- 考oracle ocm,Oracle数据库OCM考试系列教程与总结_OCM考试实验笔记
- 检测和语义分割_分割和对象检测-第2部分
- linux 短信功能,Android调用系统短信功能发送短信
- sit matlab,LabView SIT工具包的使用和安装说明
- Linux 发展历史
- linux下查看mysql配置文件位置
- 网络流专题(最大流与费用流)例题总结
- 设备接入(LWM2M协议)
- 通俗讲解:傅立叶分析和小波分析之间的关系
- 移动友华PT924光猫获取超级用户方法
- 我的口琴之路(附c调简谱)--------一个命中注定音乐巅峰是小星星的男人
- 【分享】笔记本触控面板使用指南
- SpringBoot项目实现微信小程序登录步骤
- MySql NTERVAL函数
- Python 对象烤地瓜
- 计算机基础知识----课后习题
- 在ubuntu中运行sudo apt-get update报错The following signatures couldn‘t be verified because the public key
- 电机学他励直流发电机matlab,基于Matlab并励直流发电机的自励过程分析
- 单片机-stm32-使用cdc类实现vcp(虚拟串口)
- oracle安装在非图形,非图形化静默安装Oracle 11g
热门文章
- 01 初识微信小程序
- 计算机不能删除用户,删除用户时提示无法在内置账户上运行此操作 -电脑资料...
- python ca模块_[转]常用的python模块及安装方法
- 批量删除文件名前的数字编号
- video sematic segmentation视频语义分割方向相关论文罗列+数据集下载链接
- 苹果手机上linux编程,iOS真机调试 - iOS学习笔记_Linux编程_Linux公社-Linux系统门户网站...
- @Aspect 注解使用详解
- c语言oct,【讨论】OCT扫描中的C-scan你知道吗????????
- 用U盘安装ubuntu系统的具体步骤
- 笔记本电脑 用 VGA 线 外接显示器 频闪