type
status
date
slug
summary
tags
category
icon
password
目前已经有比较成熟的转发方案如gost,ip桌子等,但多少都有些美中不足或不符合个人需求
因此想使用nginx来配置一个专属的反代了CF的反代ip当作优选ip,优点是配置灵活不会被盗流量不会被墙并且全程仅需一个nginx
安装nginx
以下全文以Debian 11默认的v1.18.0版本nginx为例
配置nginx
HTTP转发
- 在
/etc/nginx/conf.d目录创建一个cloudflare_ips.conf配置文件,内容为cf的ip段
- 然后在
/etc/nginx/sites-available目录创建一个proxy_http.conf配置文件,内容如下
这个配置将本机的6666端口的流量转发到cf的80端口并验证sni是否为
cili.gay或其子域名,如果是则正常使用否则返回403防止盗用.cf ip可以选一个适合本机的来提高速度降低延迟 (由于cf任播,不改也行)
需要自行修改检查SNI验证结果的代码,比如需要让example.com通过验证则改为
- 创建一个软链接
- 检查配置无误后重载
重载成功之后cili.gay域名即可将该机器的ip和6666端口作为优选ip使用
该配置为HTTP,需要关闭TLS或将tls设置为false
HTTPS转发
同样需要先在在
/etc/nginx/conf.d 目录创建一个cloudflare_ips.conf 配置文件,内容为cf的ip段,参考上面HTTP转发的第一步,已经有了可以跳过这步- 获取CF的15年自签证书
进入cloudflare,选择侧边栏的 SSL/TLS — 源服务器 ,点击 创建证书 —> 创建 ,然后就可以得到源证书和私钥
- 保存证书
创建一个证书存放目录
mkdir -p /etc/nginx/certs 然后将上一步得到的源证书复制内容并保存为
fullchain.pem 私钥复制并保存为
privkey.pem - 然后在
/etc/nginx/sites-available目录创建一个proxy_https.conf配置文件,内容如下
这个配置将8888端口的流量转发到cf的443端口并限制仅允许证书所对应的域名使用,没什么特别需要修改的地方
- 创建一个软链接
- 检查配置无误后重载
- 可能需要的设置
如果cf上的域名默认SSL加密模式是灵活,重载成功之后证书对应的域名即可将该机器的ip和8888端口作为优选ip使用
如果不是灵活并且不愿意为了个别子域名而设置灵活,可以添加一个 规则—Configuration Rules—创建规则 ,编辑表达式如下,自行替换“a.example.com”为自己的域名
如果需要配置多个子域名,加个or即可,比如
然后拉到下面,将SSL加密模式设置为灵活,部署即可。
该配置为HTTPS,需要开启TLS或将tls设置为false并且将跳过证书验证设置为true
