今早起来发现自己开发用的主机被 GFW 屏蔽了,一般来说只会屏蔽一些端口,但是这次直接把IP给block了。
直接ssh连接的话会给我一个无情的 Connection timed out ,但是突然想起来自己的主机上装有 bt 面板,于是决定曲线救国——利用 cloudflare 套一层 CDN 通过面板来 ssh 。
Complete your nameserver setup xxx.com is not yet active on Cloudflare.
Determine your registrar via WHOIS.
Remove old nameservers.
Nameserver 1
coby.ns.cloudflare.com
Click to copy Nameserver 2
jacqueline.ns.cloudflare.com
点击 DNS 配置,Name 写二级域名,IPv4 address 填写 VPS IP,这时务必把云朵点灰,然后选择 Add Record 来添加解析记录。
将 Cloudflare 的 Crypto 选项卡的 SSL 设置为 Full
随后在 Origin Server 选项卡创建为期15年的根域名自建证书。
最后在 DNS 选项卡那里,点击云朵图标为亮色状态。
云朵图标务必为橙色状态,即是 DNS and HTTP proxy(CDN)
这一步可以先在另外的海外服务器上 ssh 到被 block 的机器,然后修改配置域名文件,这里我不赘述。
此时域名已经可以正常访问被屏蔽的主机。
在这一步可以开启强制 https 访问,以保证安全性。
在 ngnix 的面板域名中增加如下设置:
#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/
注释: ****为面板端口号
此时便可以像网页一样正常访问面板。
本文主要用于以下技术的研究: