反代p站的教程抄袭并修改自神代綺凜大佬的[Pixiv] Nginx 真·反代P站一文。
简单且必要的准备工作
- 准备一台没有被p站封锁的境外vps
- 注册一个域名
域名解析部分
可以使用新域名,也可以使用二级域名,没有很大区别。这里用二级域名pixiv.imoe.men做演示。分别解析pixiv.imoe.men,pixiv.imoe.men,pximg.pixiv.imoe.men到vps上。
宝塔面板部分
添加网站
添加两个站点。
第一个域名的第一行填写pixiv.imoe.men,第二行填写*.pixiv.imoe.men,其他不变,保存。
第二个域名的第一行填写pximg.pixiv.imoe.men,第二行填写*.pximg.pixiv.imoe.men,其他不变,保存。
申请证书(如果套CF,略过此步)
由于需要申请证书的域名里有通配符,因此宝塔的一键申请无法使用。这里我们选择DNS验证-手动解析。按照提示框到dns解析服务商添加txt记录即可。
站点配置文件修改
pixiv.imoe.men站点配置文件修改内容:
server_name ~^([^.]+)\.pixiv.imoe\.men$;
set $domain $1;
resolver 8.8.8.8;
location ~ .*
{
proxy_set_header Host $domain.pixiv.net;
proxy_set_header Referer "https://www.pixiv.net";
proxy_cookie_domain pixiv.net pixiv.imoe.men;
proxy_pass https://$domain.pixiv.net;
proxy_ssl_server_name on;
proxy_set_header Accept-Encoding "";
proxy_redirect https://accounts.pixiv.net/ https://accounts.pixiv.imoe.men/;
sub_filter "i-cf.pximg.net" "i.pixiv.imoe.men";
sub_filter "pixiv.net" "pixiv.imoe.men";
sub_filter "pximg.net" "pximg.pixiv.imoe.men";
sub_filter_once off;
sub_filter_types *;
}
请将代码块里的第一行修改为自己的域名后,替换原配置文件的server_name一行。将代码块第一行下的所有内容修改后复制到 “#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则”的上一行(这个位置不能弄错了,很重要,一般是第7行),如下图(红框为修改部分,绿框为增加部分)。
pximg.pixiv.imoe.men站点配置文件修改内容:
server_name ~^([^.]+)\.pximg\.pixiv.imoe\.men$;
set $domain $1;
resolver 8.8.8.8;
location ~ .*
{
proxy_set_header Host $domain.pximg.net;
proxy_set_header Referer "https://www.pixiv.net";
proxy_pass https://$domain.pximg.net;
proxy_ssl_server_name on;
proxy_set_header Accept-Encoding "";
sub_filter "i-cf.pximg.net" "i.pixiv.imoe.men";
sub_filter "pixiv.net" "pixiv.imoe.men";
sub_filter "pximg.net" "pximg.pixiv.imoe.men";
sub_filter_once off;
sub_filter_types *;
}
请将代码块里的第一行修改为自己的域名后,替换原配置文件的server_name一行。将代码块第一行下的所有内容修改后复制到 “#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则”的上一行,如下图。
额外可选配置
防止搜索引擎收录
在 Nginx 配置中向每个 server 添加此句
if ($http_user_agent ~* "qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot|^$") {
return 403;
}
注意:请在set $domain $1;这一句后添加
禁止大陆外ip访问
详见教程原文
不过如果想一劳永逸,还是套cloudflare吧。这里给出常用的一部分p站子域名:
- www.pixiv.net
- accounts.pixiv.net
- source.pixiv.net
- imp.pixiv.net
- i.pximg.net
- s.pximg.net
- pixiv.pximg.net
- dic.pixiv.net
- comic.pixiv.net
- factory.pixiv.net
- payment.pixiv.net
- sensei.pixiv.net
- sketch.pixiv.net
其实应该还有,可惜我找不到懒得找了
局限性
- 不能使用绑定的社交账号的登录方式
- 帐号可能会出现需要 reCAPTCHA 验证导致无法登录,无解,只能自己将原站已登录的 cookie 导出,替换域名,然后导入反代站来进行登录
- 可能存在尚未发现的问题
结语
请勿将搭建的反代站公布于众,另外,可以将第一个站点两个域名中的主域名删除(如下图)。这个域名可以在dns解析上处设置跳转到https://www.你的域名。当然,你也可以把这个域名用做说明介绍或者伪装。
Comments | 8 条评论
牛逼
哇!感觉还挺方便的
什么时候来个反代理github
文章写的不错,加油~
赞!混个脸熟,博客真好看
很奇怪,我配置好后一直显示502 Bad Gateway
为什么我搭建后访问显示宝塔为绑定 而且不是HTTPS
是HTTPS后又莫名其妙跳到了主站 能解答一下吗。。。
@桜 打错字了 是未 ..