利用 cloudflare 免费 cdn 拯救被屏蔽IP
前言
今早起来发现自己开发用的主机被 GFW 屏蔽了,一般来说只会屏蔽一些端口,但是这次直接把IP给block了。
直接ssh连接的话会给我一个无情的 Connection timed out ,但是突然想起来自己的主机上装有 bt 面板,于是决定曲线救国——利用 cloudflare 套一层 CDN 通过面板来 ssh 。
托管域名到 cloudflare
Complete your nameserver setup xxx.com is not yet active on Cloudflare.
1. Log in to your registrar account
Determine your registrar via WHOIS.
Remove old nameservers.
2. Replace with Cloudflare's nameservers
Nameserver 1
代码语言:javascript复制coby.ns.cloudflare.com
Click to copy Nameserver 2
代码语言:javascript复制jacqueline.ns.cloudflare.com
3. 解析域名到服务器
点击 DNS 配置,Name 写二级域名,IPv4 address 填写 VPS IP,这时务必把云朵点灰,然后选择 Add Record 来添加解析记录。
4. 设置 Crypto 和 开启中转
将 Cloudflare 的 Crypto 选项卡的 SSL 设置为 Full
随后在 Origin Server 选项卡创建为期15年的根域名自建证书。
最后在 DNS 选项卡那里,点击云朵图标为亮色状态。
云朵图标务必为橙色状态,即是 DNS and HTTP proxy(CDN)
设置 vps
1. 设置 bt 面板域名访问
这一步可以先在另外的海外服务器上 ssh 到被 block 的机器,然后修改配置域名文件,这里我不赘述。
2.通过之前的域名访问面板
此时域名已经可以正常访问被屏蔽的主机。
3.设置 ssl 避免第三人攻击
1. 面板设置开启证书
2. 将证书换为之前的自签发证书
在这一步可以开启强制 https 访问,以保证安全性。
3. nginx反向代理面板
在 ngnix 的面板域名中增加如下设置:
代码语言:javascript复制#PROXY-START/
location ~* .(php|jsp|cgi|asp|aspx)$
{
proxy_pass https://127.0.0.1:****;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
}
location /
{
proxy_pass https://127.0.0.1:****;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
add_header X-Cache $upstream_cache_status;
#Set Nginx Cache
add_header Cache-Control no-cache;
expires 12h;
}
#PROXY-END/
注释: ****为面板端口号
结束
此时便可以像网页一样正常访问面板。
本文主要用于以下技术的研究:
- 物联网开发 / 内网穿透
- 恢复由于国内网络不稳定造成的服务异常
- 前端资源访问加速 请勿用于非法网络访问。