了解到cloudflare强大的转发功能很长时间了。前段时间脑子一热就入了一个cloudflare的域名。今天正好遇到了必须免端口访问的需求。这次再来补一下关于https的免端口访问步骤。
前提:
- 有公网IP
- 已经购买cloudflare域名
免端口访问,顾名思义就是使用http/https默认的80和443端口访问指定的服务。
而已知家用宽带运营商肯定是禁用这两个端口的,因此无域名隐式转发的情况下,就只能使用一些其他没被禁用的端口访问了。
而cloudflare刚好具备这个功能,这次就是依靠隐式转发实现。也就是说外网端口映射本质上还是非80和443,只是在cloudflare这一层会帮助你隐藏掉而已。
Cloudflare 配置
首先设置cname解析并开启cloudflare的代理
1 | selefra-apiserver.shubolab.com. 1 IN CNAME home.shubolab.com. |
在Origin Rules中新建规则:
1 | (http.host eq "selefra-baseapi.shubolab.com") or (http.host eq "selefra-apiserver.shubolab.com") |
重写到58080
nginx 转发配置
| 转发描述 | 来源主机名 | 来源协议 | 来源端口 | 目标协议 | 目标主机名 | 目标端口 |
|---|---|---|---|---|---|---|
| [cloudflare] selefra-apiserver | selefra-apiserver.shubolab.com | http | 58080 | http | 192.168.123.3 | 58018 |
| [cloudflare] selefra-baseapi | selefra-baseapi.shubolab.com | http | 58080 | http | 192.168.123.3 | 58008 |
到此配置就完成了。注意此域名配置的http服务只是在我电脑本地做代码调试的时候会临时开启。各位师傅就不要打了,不是常开的服务。