声明:本文仅为方便绘画交流与学习,恕不提供 Pixiv 外其他网站指导!上次更新:2019.9.9
目录
I.Nginx 本地代理(PC适用)
II.Android 第三方客户端
III.镜像站
前言
自从 2017 年末,Pixiv 的网页和 APP 始终无法直接打开,但是检测发现其 IP 本身并没有被封禁,所以只要一点小把戏,并借助平时做网站常用反代理服务器 Nginx 即可以完美绕过针对 SNI 审查,整个代理过程在用户自己的电脑上完成,并不涉及任何第三方服务,因此理论上是完全合法的个人行为。鉴于是小白向的指南,所以不想写太多望而生畏(其实业内并不复杂)内容,如果要问原理请看这里。
- 个人精力有限无法为大家一一作出指导,可以到 QQ 群咨询其他大佬,一群:905209253,二群:901311039,三群:681759820,四群:1038688540,验证问题的答案是
Sakura
。 请低调使用此教程和工具,不建议广泛传播。
Nginx 本地代理
Windows 使用方法
从 Github 或者国内镜像下载,并解压到电脑任意路径中不含中文、日文等非英文字符的位置,之后安装文件名为 ca.cer
的根证书文件,然后参考下方「hosts 修改方法」部分修改 hosts(请使用压缩包里的hosts,因为每次更新都可能变的),最后通过可视化工具或者调试工具启动 Nginx 即可。
重要提醒:使用 Nginx 反代理的时候建议关闭各类全局代理,如各类 VPN 客户端、浏览器代理插件、某些 steam 代理工具、类似 ADSafe 这样的广告屏蔽软件,如果对 P 站的域名启用了代理,那么 hosts 就无法生效,所以请将他们暂时关闭或者把 P 站相关域名移出代理列表。
说明:
① Chrome 浏览器证书安装方法、FireFox 浏览器证书安装方法,按键具体位置因浏览器版本而异,可利用浏览器配置界面的搜索框快速查找;其他浏览器请自行寻找安装方法。务必确保 Mashiro Internet Fake Authority CA 已经添加到了受信任机构列表中(如图),遇到浏览器安全提醒说明你一定还没有添加成功。注意:如果遇到浏览器显示网站不可信任,这时即使你点了信任,网页内的图片等内容还是可能被浏览器阻止,最好的解决办法是保证证书安装成功。
② 如果遇到 Nginx 启动失败,首先请确保路径为全英文,可将解压出来的整个文件夹移动到各个磁盘的根目录处;其次自行查看错误日志,通常用搜索引擎直接检索日志里那行信息就可以找到一大堆解决方法了;如需反馈请附上logs/error.log
中的日志(摘取出现错误时间点的片段即可,一般在文件最后几行,切勿在我这里发太长的日志)。
③ 无法启动 Nginx,常见原因是端口被占用(80 或 443 端口,建议先看一下日志),参考端口占用的解决方法。
④ 很多人说图片显示不出来,可依次尝试把 hosts 中 i.pximg.net
的 IP 改成 210.140.92.140、210.140.92.141、210.140.92.134、210.140.92.135、210.140.92.139、210.140.92.143、210.140.92.137、210.140.92.138 中的任意一个。
⑤ 可视化工具仅支持 Windows 64 位版,32 位版请尝试通过调试脚本启动,如果都不行请看用 cmd 管理 Nginx
。
MAC 使用方法
MAC 上同样可以使用 Nginx,详细的 MAC 配置方法请看这篇文章。
Linux 使用方法
Nginx 配置文件目录为 /etc/nginx/
,使用和 MAC 完全一致的配置文件和证书并替换配置文件即可,最后参考下方「hosts 修改方法」部分的方法修改 hosts(请使用压缩包里的hosts,因为每次更新都可能变的)。
hosts 修改方法
以下是针对 Windows 的改法,其他系统类似,可自行百度 hosts 文件的位置。MAC用户看这里。Linux各发行版:sudo nano /etc/hosts
,原则上立即生效。
用文本编辑器(比如 Notepad++)打开 "C:\Windows\System32\drivers\etc\hosts"
文件(64位和32位系统都是这个路径,不熟悉的注意看下后面的补充及截图),最下方直接粘贴压缩包内 hosts 文件中的内容后保存(遇到权限问题无法保存看这里),这时应该就可以正常访问了。如果仍然无法访问,请按下 + R 键,输入 cmd
,回车,进入 cmd 后输入 ipconfig /flushdns
,回车执行以刷新DNS缓存,若还不行请尝试清理浏览器缓存、Cookie、停用所有浏览器插件并重启电脑。
请注意: hosts文件无后缀,无后缀,无后缀! 同时 hosts 文件中不能有 http://
、https://
等开头和斜杠 /
。
hosts 文件位置如下:
hosts 文件粘贴示例(实际粘贴的内容与图中不完全一致):
如果你嫌上面的操作太麻烦了,或者极少数电脑原本就没有 hosts 文件,可直接用压缩包内的 hosts 文件覆盖原文件或放到以上 hosts 文件的路径就行了。
Android 代理方案
在第三方客户端 Pivision 基础上更换了代理接口、修复了 OAuth 登陆问题,重新打的包改名 PivisionS,这里下载。
PivisionS 更新记录:
发布时间 | 版本号 | 更新内容 |
---|---|---|
2019-09-09 06:30 | 1.0 | 修复大陆无法使用的“bug”;更新 OAuth 登陆接口 |
2019-09-09 20:00 | 5.0.1 | 更新代理源 |
做这个纯属举手之劳,并且能力也有限,如果嫌慢、功能少请自购 VPN 吧。
此外也有不少优秀的 Pixiv 第三方客户端可以选择,它们基于类似前文的域前置方法实现了直链访问。比较优秀的两个是 Shaft 和 Pix-EzViewer,这两个 APP 的安装包可以在文章开头的群文件里获取。
iOS 代理方案
抱歉,iOS 客户端除了 VPN 暂时没有更好的办法了(其实像上面 Android 那样做个客户端也不难,几个简单的接口改一下就行了)。
镜像站
如果你有自己的服务器的话,可以搭建镜像站,虽然难度不大,但是都有自己服务器了何不直接自建 VPN 呢?而且这显然是不合法的,自己悄悄用就好了。
相关教程:https://moe.best/technology/pixiv-proxy.html
常见问题
无法登陆/注册
登陆问题在最新版 Nginx 本地代理工具包中解决了,注册的话,可以加文章开头的 QQ 群,找管理员免费代注册。
关于证书
这是我自己签的证书,如果你信任我,那么直接安装即可;如果不信任,那么请自己签,自签证书教程。
证书十年后到期,到时候记得来找我,haha。
关于维基百科和 Steam
Wikipedia、Steam Community 的封锁情况与 P 站完全一致,所以在 mashirozx/Pixiv-Nginx 中都顺便反代了,相应地增加以下 hosts 即可:
# Wikipedia Start
# 维基百科语言众多,其他语言参照下面添加 xx.wikipedia.org 及 xx.m.wikipedia.org 的记录即可
127.0.0.1 en.wikipedia.org #英文维基百科桌面版
127.0.0.1 zh.wikipedia.org #中文维基百科桌面版
127.0.0.1 en.m.wikipedia.org #英文维基百科移动版
127.0.0.1 zh.m.wikipedia.org #中文维基百科移动版
127.0.0.1 zh-yue.wikipedia.org #粤文维基百科桌面版
127.0.0.1 wuu.wikipedia.org #吴语维基百科桌面版
127.0.0.1 ug.wikipedia.org #维吾尔文维基百科桌面版
127.0.0.1 ja.wikipedia.org #日文维基百科桌面版
# Wikipedia End
# Steam Community
127.0.0.1 store.steampowered.com
127.0.0.1 steamcommunity.com
# Steam Community End
法律适用
《国际联网暂行规定》第六条规定:“计算机信息网络直接进行国际联网,必须使用邮电部国家公用电信网提供的国际出入口信道。任何单位和个人不得自行建立或者使用其他信道进行国际联网。”Nginx 本地代理和服务器代理(代理服务器位于广州)使用的都是“公用电信网提供的国际出入口信道”,从日本 Pixiv 服务器到国内用户电脑/代理服务器的流量,使用的是正常流量通道,其间未对流量进行任何额外加密(仅有网页原有的 SSL 加密,用户和代理人并不掌握该 SSL 密钥,区别于 VPN 的流量加密),而 Nginx 获取到网页数据之后发生的整个代理过程完全在国内,不再适用国际互联网相关之规定。
其他
如果嫌每次手动开启 Nginx 麻烦,可以在确保无端口占用的情况下,将 nginx.exe
的添加到开机启动项中,方法可自行查找,不再赘述。
转载请注明出处: https://2heng.xin/2017/09/19/pixiv/
「樱花庄的白猫」原创文章:《PIXIV网页版及客户端访问恢复指南》,转载请保留出处!https://2heng.xin/2017/09/19/pixiv/
Q.E.D.
Comments | 2,600 条评论
博主 空之星星
就是安装openssl环境不会搞,下好了解压完毕cmd里输出openssl没反应
博主 ShioMile
@空之星星 请设置系统环境变量,https://github.com/ShioMile/Pixiv-Nginx/wiki/%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95#%E7%B3%BB%E7%BB%9F%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E9%87%8D%E8%A6%81
博主 allen8848
顺便说一句,关于tigerzhou100800的github帐号发言记录攻击该项目的这两句,可能是专门来破坏和分化翻墙社区的党国五毛。
博主还是学生吧,就这点五毛的污言秽语被气到关闭项目,心理承受能力还需锻炼,不然未来进社会比这更大更残酷的压力和竞争该怎么办?
博主 沉迷学习
用了楼主的ca导入pix和nyaa表站都能正常进了,但是nyaa里站却是502,有没有大神指点下?
博主 allen8848
@沉迷学习 nyaa的里站IP已经变更了,与表站不是一个IP,自己改
博主 沉迷学习
@allen8848 具体改哪里呢?host文件?还是其他啥地方?博主给的host看了眼里面都是一片127.0.0.1 和以前的改法都不一样,一片迷茫中
博主 allen8848
@沉迷学习 服了,是在pixiv.conf里改,自己钻研一下
博主 YoRHa-A2
我有个问题,我开启nginx之后,南+就显示此网站哪无法提供安全链接了,关了以后重装证书还是一样,请问有什么解决办法吗
博主 Филе бобина хикару
好伤心,库就这样存档了
博主 zioklone
试着用这个解决熊猫站的问题,打开是能打开,但每次只能打开3张图,然后就会全显示不出来,之后要过一会儿刷新又能打开3张,这是什么原因呢。
博主 tigerzhou100800
作者大佬,关于CDN那段话是错的,而且是正好相反。
你的这个避开SNI阻断的方法连不了CDN。
SNI阻断所说的SNI是指(Server Name Indication) 服务器名字指示,也就是域名。
因为这个部份没有被https加密,所以GFW可以检查这个知道是否访问的是黑名单里的网站。
这个Pixiv-Nginx用编译参数设置成旧式没有SNI支持。
TLS SNI support disabled
这样和被SNI阻断的网站进行HTTPS连接时没有SNI站名,不会被GFW的SNI检查发现。
但是像Pixiv用的CDN是多个网站共用一个CDN作镜像加速,CDN服务器需要你发SNI区分想访问的是哪个网站。
这个可以查Pixiv.net哪些地址用了CDN用橙色云图标表示,没使用CDN的用灰色云图标表示:
https://subdomainfinder.c99.nl/scans/2020-11-30/pixiv.net
现在 Pixiv 的无污染DNS结果里:
210.140.131.* 地址段是不经过CDN的直接服务器本机IP
其他 104.18.31.* 和 104.18.30.* 段就是经过CDN的IP。
210.140.131.* 地址段 可以用删HTTPS里SNI信息避开SNI阻断和Pixiv直连。
104.18.31.* 和 104.18.30.* 段只能是用代理才可以连通,
删SNI的手段,因为CDN无法区分你要访问它负责的哪个网站,所以会连接出错。
所以那句“(事实上 P 站用的是日本雅虎 CDN 的 IP,这些 IP 是不能封禁的,否则会误伤其他无关网站)”
这是不成立的,而且正正好是相反。
只要用SNI阻断封了Pixiv的CDN,再把Pixiv的服务器本尊210.140.131.* 地址段给封了,完全无法直连,
而且一个误伤也不会有。
不要写那个 这些IP是不能封禁的, 现在有脑残的被误导以为这种避开SNI阻断的方式
有免死金牌,到处去写傻瓜式教程,传到各个网站、帖吧、微博。
不要这么高调,而且不要在封锁升级后马上到处传破解方法,
招来封锁升级马上把Nginx.conf里的IP给封了,所有这些都用不成,
大家一起倒霉。别传了,教程和下传也暂时隐藏一阵吧。
博主 setsuna
为了解决e站的私密捣鼓了半天 结果e站没弄好p站也加载不出来了 已经不知道怎么解决了
博主 捂脸
[notice] 10648#3584: signal process started 话说闪退,但是进程里面有~这是成功了吗?
话说昨天倒是进去了。但是不怎么稳定。一个刷新就页面无法访问。在一个刷新就又正常了。。今天就再也进不去了
博主 Ka Yau
p站和nyaa都能上,熊猫却上不了是为什么啊,而且好像nginx一打开就消失,只能用可视化工具打开
博主 Urakawa
访问store.steampowered.com的时候会报
Access Denied
You don’t have permission to access “/D/10476/296433/000/store.steampowered.com/” on this server.
Reference #18.aca43617.1607754381.74f2463
但是访问社区还是正常的
博主 Haru
谢谢茄子。
关于新版的熊猫什么的无法连接,我姑且有一个不知道能不能行的解决方法。
1.把相关的证书都删掉,用傻瓜文件夹里按照清理→重签→生成点bat
2.hosts填上(感觉是废话)
3.刷新DNS缓存,清除浏览器缓存,cookie什么的不用清除。
4.运行Nginx,用ping刷一下想要进的网站看看,如果是回转本机的127.0.0.1就行了。
5.如果进入提示有私密链接,点击左下角的高级,继续前往,大概就好了?
其实,大概只要运行后面三步就行了?这样的感觉。反正我也不太懂这个。
博主 德赛
下载了Nginx,安装了里面的CA证书,添加到了受信任区域,HOST修改为博主提供的IP,打开可视化工具调用也成功,但是在连接网络时还是出现了“不是私密连接”的错误,请教问题出在了哪?网址左边警告提醒是证书无效,好奇怪啊
博主 dody
貌似看不了动图,打开动图不会动的
博主 hhydra
我遇到了一个巨大的麻烦,之前导入的失效证书根本找不到在哪,能删的证书都删掉了,可是访问pixiv依然会报红错“不是私密链接”,而给出的失效证书还是那个颁发者Mashiro…有效期20.10.17到30.10.15的旧证书。
我删除了“个人”和“本地计算机”含的所有这种证书,还能藏在哪里呢?
博主 RUA
@hhydra 我也遇到这个问题了,不过是熊猫出现了这问题
(-_-#)
现在我感觉我越弄越麻烦了
博主 fufusako
@RUA 我已经知道怎么搞了,其实证书就在nginx/conf/ca里(what the……),需要把ca里的东西全部替换成自己签发的新证书
博主 RUA
尝试弄更新版的,结果Chrome上熊猫提示链接错误NET::ERR_CERT_COMMON_NAME_INVALID怎么办