声明:本文仅为方便绘画交流与学习,恕不提供 Pixiv 外其他网站指导!上次更新:2018.12.3

居然又更新了

网页版已完美恢复,附带访问加速效果。

2017年9月18日,「pixiv.net」遭遇 DNS 投毒,第二天我发布了这篇指南;
2018年9月13日,Great Firewall(GFW)升级封锁策略,从目前情况基本可以确定采用了新型的 SNI 阻断方法(几天前维基百科中文版也遭遇了同样形式的封锁)——判断依据是相关域名和 IP 能够 ping 通,但是浏览器中无法通过 HTTPS 访问——由此带来的后果是 hosts 大法和 DNS 大法失效。

这还不完全意味着 hosts 大法的死刑,因为 IP 本身并没有被封禁(事实上 P 站用的是日本雅虎 CDN 的 IP,这些 IP 是不能封禁的,否则会误伤其他无关网站),所以只要借由平时做网站常用反代理服务器 Nginx 即可以完美绕过 SNI 审查。因为是小白向的教程,所以不想写太多望而生畏的专业内容,这部分以后我会单独写文章作为技术性内容介绍的。

9/17 新方案(Nginx)更新:
1. 优化配置,P 站所有受影响子域名都已加入代理列表;
2. 利用 Nginx 负载均衡大大提升了 P 站的加载速度,比以前单纯改 hosts 的时候快多了;
3. 加入两个 Nginx 管理工具,推荐优先使用可视化工具,遇到问题时可通过调试脚本排查问题;
4. 顺手修复了一下维基百科 :)
5. 新增 WebSockets 反代,解决直播部分无法加载问题;
7. 解决无法登陆/注册问题。

12/3 新方案(Nginx)更新:
1. P 站又悄悄改 IP 了,请重新下载最新版(实际上只是改了一下 Nginx 的配置文件,证书无需重新安装)。

  • 因事发突然,来不及重新组织整篇文章的结构,所以叙述可能有一点凌乱,请先阅读以下直到「目录」前的内容,再按照目录查找所需内容。
  • 9月13日翻车当天我发的那段煽情话忘记就好喽,怎么可能有我白猫解决不了的问题?
  • 目前 Nginx 方法仅支持 PC,手机上除了使用 VPN 暂时没有别的办法了(教程除了最上方的 Nginx 方法外其他方法都已失效)。

广告加载失败了呢,你用了什么广告过滤插件是吧?QAQ *这是一则由 Google AdSense 自动推荐的广告,不代表本站立场

以下是9月13日后的新方法:

前排提醒

使用 Nginx 反代理的时候建议关闭各类全局代理,如各类 VPN 客户端、浏览器代理插件、某些 steam 代理工具、类似 ADSafe 这样的广告屏蔽软件,如果对 P 站的域名启用了代理,那么 hosts 就无法生效,所以请将他们暂时关闭或者把 P 站相关域名移出代理列表。

Windows 使用方法

下载(进去往下翻有下载说明的)并解压到电脑任意路径中不含中文、日文等非英文字符的位置,之后安装文件名为 ca.cer 的根证书文件,然后参考本文「I. 网页版修复」部分的方法修改 hosts(请使用压缩包里的hosts,因为每次更新都可能变的),最后通过可视化工具或者调试工具启动 Nginx 即可。Mashiro Internet Authority CA
* 参考:Chrome 浏览器证书安装方法FireFox 浏览器证书安装方法,按键具体位置因浏览器版本而异,可利用浏览器配置界面的搜索框快速查找;其他浏览器请自行寻找安装方法。务必确保 Mashiro Internet Authority CA 已经添加到了受信任机构列表中(如图),遇到浏览器安全提醒说明你一定还没有添加成功。注意:如果遇到浏览器显示网站不可信任,这时即使你点了信任,网页内的图片等内容还是可能被浏览器阻止,最好的解决办法是保证证书安装成功。
** 如果遇到 Nginx 启动失败,请先确保英文路径,建议尝试移动到各个磁盘的根目录处试试;自行查看错误日志,通常用搜索引擎直接检索日志里那行信息就可以找到一大堆解决方法了;如需反馈请附上logs/error.log中的日志(摘取出现错误时间点的片段即可,一般在文件最后几行,切勿在我这里发太长的日志)。
*** 可视化工具无法启动 Nginx,常见原因是端口被占用,解决方法
**** 很多人说图片显示不出来,请确认下载的是最新版的压缩包;如果仍然不行试试把 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 中的任意一个。

MAC 使用方法

我没用过 MAC,而 MAC 上安装 Nginx 正好比较麻烦,参考这个教程,目前我仅能提供一点安装成功后的指导:安装后,将压缩包(进去往下翻有下载说明的)内配置文件中的  nginx.conf 文件移动到电脑 /usr/local/etc/nginx/ 目录下,替换同名原文件,将 ca 文件夹和 nginx.conf 文件放在一起(和压缩包里一样的层级关系),然后需要安装名为 ca.cer 根证书文件,安装方法参见这里。最后参考本文「I. 网页版修复」部分的方法修改 hosts(请使用压缩包里的hosts,因为每次更新都可能变的)。期待 MAC 用户的反馈,如果有兴趣帮忙完善该部分教程,可以留言给我申请本站作者权限。

Linux 使用方法

Nginx 配置文件目录为 /etc/nginx/,使用和 MAC 完全一致的配置文件和证书并替换配置文件即可,最后参考本文「I. 网页版修复」部分的方法修改 hosts(请使用压缩包里的hosts,因为每次更新都可能变的)。

Android 和 iOS

理论上应该同样可以运行 Nginx,正在研究。。
* 发现 Android 系统限制,无 root 权限的情况下应用程序无法使用3000以下的端口(我们需要443端口),所以即使 Nginx 能运行,暂时也还是实现不了反代 Pixiv 的。
** 有一个比较大胆的想法是,既然我们都已经装上反代理服务器了,那么何不弄个内网穿透,将各自电脑作为代理服务器使用,类似 BT 种子的 P2P 思路,这样移动设备就能在公网中访问另一电脑上的代理的网站了。
*** 为什么不直接搭建专门的反代理服务器?国内服务器带宽成本很高,所以我们才大费周折搭建本地代理。

关于证书

这是我自己签的证书,如果你信任我,那么直接安装即可;如果不信任,那么请自己签,工具:OpenSSL。
证书十年后到期,到时候记得来找我,haha。

其他

无法登陆/注册问题已经解决,实现方法是本地化了该界面原本无法加载的一个来自Google的脚本,如果你不需要这个功能,请将 hosts 中的 Google 域名删掉。

有热心的小伙伴为 Windows 32位版用户写了一个可视化工具,有需要可以试一试,注意这个软件相关的问题请发在这里,发我博客无法解答的哦。

大家不必担心 Nginx 占用 CPU/内存的,Nginx 作为一款高性能 web 服务器,在生产环境下能够轻松处理上万次并发请求,而仅仅用来本地反代这种事情简直太小儿科了,完全没有理由需要消耗系统资源,基本上可以忽略它的存在,这里是 Nginx 和 Chrome 浏览器的内存占用对比。

广告加载失败了呢,你用了什么广告过滤插件是吧?QAQ *这是一则由 Google AdSense 自动推荐的广告,不代表本站立场

目录

I. 网页版修复(修改hosts)
1. Windows
2. Mac
3. Linux Distributions
II. 客户端修复
1. Android(按推荐度排序)
· 方法一:修改hosts(无root权限版)
· 方法二:修改DNS(通过APP)
· 方法三:修改DNS(直接修改网络)
· 方法四:修改hosts(需root权限版)
2. iOS(按推荐度排序)
· 方法一:安装APP(需要海外Apple ID)
· 方法二:修改DNS
3. 手机通用方法:(随身WiFi,需配合电脑使用)
III. SS/SSR 拯救之道
附:无法登陆/注册问题

注:本贴相关评论请提交至本文末的评论区,提问前请确认已认真读完教程。无论选择哪一种方法,都需要通过 https 访问,而通过 http 访问照样会翻车
举个栗子,请访问 https://www.pixiv.net,而不要访问 http://www.pixiv.net。

前言

昨天下午突然发现PIXIV的网页打不开了,一开始还没想到是被墙了,直到看到pixiv官方微博的一句「中国からpixivが見れないようです。調査中です。。 」

本来不应该怕被ban这种事,但是不想我的服务器IP被PIXIV禁了,所以我无法通过VPN访问。被禁的原因很多,不过我猜测这和Vultr脱不了干系。用服务器ping了pixiv.net,能ping通,但是没有返回,所以基本的判断是被pixiv拒绝访问。为什么?一个可能是因为我这个IP之前被人用过,而且用于攻击Pixiv或其关联网站,因此被禁;另一个可能是Vultr的IP段都被禁了,因为我不止一次看到Vultr的服务器被用来做肉鸡,另外不排除Vultr的主机上部署有大量爬虫,所以被禁。

* 2018.12.3 补充:经过大量测试,Pixiv 实际上只封禁了 Vultr 45打头的 IP,如果你运气好拿到了其他 IP 段,那就可以正常代理访问 P 站啦~45 IP 段主要出现在日本和新加坡,所以不妨试试欧洲线路,其中法兰克福和阿姆斯特丹速度和东京不相上下的哦。

总之VPN用不成,只能想别的办法了。

以下是正文,小白都能看得懂的教程

I. 网页版恢复教程

因防火墙升级,目前此方法直接使用还不行的,请先阅读文章开头部分的新方法。

以下是针对Windows的改法,其他系统类似,可自己Google hosts文件的位置。MAC用户看这里。Linux各发行版:sudo nano /etc/hosts,原则上立即生效。

首先,用文本编辑器(比如记事本)打开 "C:\Windows\System32\drivers\etc\hosts" 文件(64位和32位系统都是这个路径,不熟悉的注意看下后面的补充及截图),最下方直接粘贴下面片段:
* 使用 Nginx 反代理方案的同学直接使用压缩包里的 hosts 文件即可,其与下方内容一致。

#Pixiv Start
127.0.0.1       pixiv.net 
127.0.0.1       www.pixiv.net 
127.0.0.1       ssl.pixiv.net
127.0.0.1       accounts.pixiv.net 
127.0.0.1       touch.pixiv.net
127.0.0.1       oauth.secure.pixiv.net
127.0.0.1       dic.pixiv.net
127.0.0.1       en-dic.pixiv.net 
127.0.0.1       sketch.pixiv.net
127.0.0.1       payment.pixiv.net
127.0.0.1       factory.pixiv.net 
127.0.0.1       comic.pixiv.net  
127.0.0.1       novel.pixiv.net 
127.0.0.1       imgaz.pixiv.net 
127.0.0.1       sensei.pixiv.net
127.0.0.1       fanbox.pixiv.net
127.0.0.1       i.pximg.net
210.140.131.145 source.pixiv.net
210.129.120.50  app-api.pixiv.net  
74.120.148.207  g-client-proxy.pixiv.net 
210.140.131.145 i1.pixiv.net 
210.140.131.145 i2.pixiv.net 
210.140.131.145 i3.pixiv.net 
210.140.131.145 i4.pixiv.net 
210.140.131.159 d.pixiv.org 
210.140.92.135  pixiv.pximg.net  
210.140.92.134  s.pximg.net
#Pixiv End

以上内容填入 hosts 文件后保存(遇到权限问题无法保存看这里),之后就应该已经可以正常访问了。如果仍然无法访问,请按下 + R 键,输入 cmd,回车,进入 cmd 后输入 ipconfig /flushdns,回车执行以刷新DNS缓存,若还不行请尝试清理浏览器缓存、Cookie、停用所有浏览器插件并重启电脑。

另外,建议不要使用国产浏览器!诸如360浏览器等的云端加速功能,因为其代理服务器是在国内的,开启了加速功能流量实际就得经过国内的服务器,那样等于白改hosts了。建议使用 Mozilla Firefox FireFoxGoogle Chrome Chrome、Microsoft Edge 等正经一点儿的浏览器。

补充:

请注意: hosts文件无后缀,无后缀,无后缀! 同时 hosts 文件中不能有 http/https 等开头和斜杠 /

文件位置如下:

hosts 文件位置

需要粘贴的如下:

hosts 文件

如果你嫌上面的操作太麻烦了,或者极少数电脑原本就没有hosts文件,那么我已经上传了现成的hosts文件,下载后覆盖原文件或放到以上指定的路径就行了:下载

若出现站内某些按钮点击后无法打开,可尝试将跳转后无法加载的子域名加入hosts列表,按 210.129.120.41 xxx.xxx.xxx 这样的格式,将xxx.xxx.xxx换成对应的子域名,而 IP 部分则需要通过境外服务器的 ping 指令来获取,所以如果发现某个域名无法访问欢迎留言告诉我

相对于使用vpn,这个办法更彻底一些而且方便得多。同时,如果你了解基础的网络原理,你会知道hosts解析是永远优先于DNS解析的,对于DNS污染,修改hosts当然是最有效也最彻底的方法。

IMPORTANT: Windows当然也可像目录上所列的各手机系统一样通过修改网络DNS访问,但我个人非常不建议使用,故未列在目录中。如果一定要尝试请看这里:Windows 修改 DNS,注意里面提供的 1.1.1.1 DNS 在大陆并不能访问 Pixiv,DNS 信息应参照以下手机的填写,提醒一定记住默认配置并确保自己有能力改回来,然后不必要的时候尽量改回默认(否则可能影响网速、延时)。

II. 客户端恢复教程

上方的 hosts 目前暂时不适合手机使用,等我找到手机上运行 Nginx 的方法就 OK 了。目前手机据说还可以用第二组 DNS,不过最好的方法依然是 VPN。此处可以获取旧版 hosts 文件,虽然不知道还有什么用。

(1) Android

方法一

此方法强烈推荐。安装 Virtual Hosts (下载),然后再到这里下载基础版hosts文件。

启动Virtual Hosts,添加刚刚下载的hosts文件(Android系统默认下载位置为Download文件夹,其他浏览器下载位置请自行百度,hosts文件就叫hosts,没有文件类型后缀,如下载后出现后缀请自行删除),然后首页开关启动即可。

方法二

非常简单,下载 DNS Changer,按照以下截图配置(截图上的DNS已失效,请更换),启用后即可直接通过客户端访问。

公共DNS随时可能失效,截图下方留下了多组DNS以作备用(横向看,DNS1+DNS2为一组DNS)。

DNS Changer

DNS 1DNS 2Provider
101.132.183.99193.112.15.186PdoMo-DNS
123.207.56.160留空即可unknown
111.230.37.44留空即可unknown
106.14.152.170留空即可BAI DNS
202.141.178.13202.141.162.123USTC
119.23.248.241111.231.199.82FUN DNS
115.159.146.99123.206.21.48AIXYZ DNS
123.207.137.88115.159.220.214Pure DNS

如以上DNS均不可用,请尝试其他方法,或自行寻找/搭建可用DNS。

Android较低版本用户可以试试这个(支持Android4.0.3+,不过似乎有广告)。

我的建议是通过APP设置DNS,不需的时候关闭。因为DNS服务器带宽有限,如果你直接修改了WiFI的DNS,那么网络拥挤时可能会严重影响其他网站的正常访问速度。如果仍要直接修改请继续看。

方法三

如以上方法不成功请按照这里修改 DNS,正如里面说的安卓改 DNS 确实很麻烦的。另外修改 DNS 可能对需要网页登陆的公共 WIFI 产生影响,不建议对此类 WIFI 使用,如遇无法登陆请先选择“忘记此 WIFI”后再重新登陆。

方法四

不同于方法一,如果你有能力修改Android的hosts,那么可以参考以上的电脑教程(Android的hosts文件格式与Windows略有不同,请不要直接覆盖)。

好像有人下载不到pixiv的客户端?到这里下吧https://m.apkpure.com/pixiv/jp.pxv.android(Google Play 版官方客户端)。

另外推荐一个不错的第三方客户端 Pivision

(2) iOS

方法一

iOS客户端修复原理与Android原理一致,推荐一个APP:DNS Override

方法二

iOS也可按照这个方法手动修改DNS:修改DNS的方法,注意里面提供的 1.1.1.1 DNS 在大陆并不能访问 Pixiv,请使用上面表格里的 DNS。另该法可能对需要网页登陆的公共WIFI产生影响,不建议对此类WIFI使用。

本人无iOS设备测试,有相应设备的志愿者测试后可以反馈给我一下。

@Dariolife 说:“iOS可以在无线局域网设置里直接修改DNS,不用下载app(主要是DNS override大陆苹果商店里没有,要切换海外账号才找到)。”

@BCTV 同学还给了一个方法,类似 Android 的方法一,详情可以艾特TA~
@BCTV 同学的方法

(3) 万能方法

适用于所有移动设备——直接分享电脑网络给移动设备使用。

如图,Windows 10 网络设置下可以分享网络作为移动热点使用,按照前文的方法修改了 hosts,这里手机连上就能直接访问 pixiv 了。

Windows 10 网络设置

如果你的电脑没有这个功能,不妨试试这个:购买地址利益无关,不是广告

III. SS/SSR 拯救之道

SSR 配置方法如前言所说我的 SSR 代理 IP 被 Pixiv 封禁了,那么是不是代理完全没用了呢?今天发现并不是。

下面以 Android 为例(其他系统可以参考这里):

SSR 客户端中(SS 也有一个使用远程 DNS 的选项,与此一致),找到 UDP 转发选项并启用,同时按照图中设置使用 Google DNS 8.8.8.8,最后路由(Route)一项选择自定义 ACL 文件,使用我定制的 ACL 源(copy 链接的地址上去就行了)。

这样一来访问 pixiv 的请求都借由代理服务器使用 Google DNS 完成解析,而本质上流量却没有经由代理服务器,所以原则上和上面修改 DNS 的方法工作机理完全一样,不过 Google DNS 无论是安全性还是稳定性当然都比私有 DNS 高喽。

无法登陆/注册问题

修改 hosts 或 DNS 后都无法通过网页版登陆/注册,原因是 pixiv 登陆/注册页使用了一个 Google 的 API,于是如果你无法访问 Google 将导致整个页面都无法加载:
注册页

所以登陆/注册需保证你能够访问这个地址,点进去能看到几行代码就对了。

如何访问呢?不同于 Pixiv,Google 是 IP 完全被墙的状态,无法通过修改 host 或 DNS 访问,所以唯一的方法是 Shadowsocks/ShadowsocksR 等各种代理工具。但是如前面说的,部分代理无法访问 Pixiv,所以此时你不能使用全局代理,以 SSR 为例请使用 PAC/ACL 模式,同时 PAC/ACL 文件中应包含 Google 但不包含 Pixiv,可以使用我的 PAC/ACL 文件

没有代理怎么办呢?
在文章开头的 Nginx 方法中,已经通过本地化脚本解决了这个问题,记得在 hosts 中加一行:127.0.0.1 www.google.com

转载请注明出处: https://2heng.xin/2017/09/19/pixiv/

Q.E.D.