最近国内各地各大运营商都比较难申请到公网 ipv4 地址了(虽说同时也普及了 ipv6), 但如果现在想在国内没有公共 ipv4 地址的机器上搭建公开可访问的服务的话就需要服务器转发了.
各个公开的内网穿透服务稳定性都不怎么样, 国内服务器要备案且带宽贵, 国外服务器流量贵且可能被墙.
后来无意中发现了 Cloudflare 官方也提供了免费的内网隧道, 故来尝试一下.
前置准备
- Cloudflare 账户
- 一个托管在 Cloudflare 的域名. (国内外注册的均可, 无需备案)
- 一张能支付外币的信用卡. (用于注册 Cloudflare Zero Trust 服务)
配置流程
登录 Cloudflare 控制台, 选择自己的域名, 选择进入左侧导航栏的 Cloudflare Tunnel.
首次登录 Cloudflare Tunnel 需要选择套餐, 选择免费套餐即可, 需要绑定一张能支付美元的信用卡激活.
左侧选择 Access - Tunnels, 选择创建 Tunnel.
类似 frp 或者 ngrok 的内网穿透, 按照页面的指示在你的平台上运行客户端程序.
配置路由, 以下图为例, 访问 https://test.lyc8503.ml 就能直接访问内网的 http://localhost:8081
如果还有其他服务需要穿透, 可以创建好隧道后继续添加或修改路由.
这种方法的缺点是国内访问速度可能较慢, 需要搭配自选 ip 使用提升速度. 只能穿透 HTTP 服务, 如果需要使用其他类型流量的话, 需要安装另外的客户端. 而且注册需要信用卡, 可能相对复杂一些.
我自己对公网开放的服务都是托管在阿里云 Serverless 上的, 具体可以看我云原生相关的 Blog~
本文采用 CC BY-NC-SA 4.0 许可协议发布.
作者: lyc8503, 文章链接: https://blog.lyc8503.net/post/cloudflared-tunnel/
如果本文给你带来了帮助或让你觉得有趣, 可以考虑赞助我¬_¬