这篇文章我发在 B 站了,地址是 https://www.bilibili.com/read/cv1317348 。当然,这里我要讲细一点。

由于众所周知的原因, pixiv 不能正常上去,不过 IP 可以 ping 通,那么用 hosts 应用该可以。但最近 hosts 似乎也不行(由于 SNI 检测,导致 hosts 失效,但用反向代理可以解决这个问题),但仍然能够 ping 通,应该还有办法。我首先在贴吧里找到了一个解决方法(地址文末),我之前文章也提到过,但由于只针对 windows 系统,想要移到 Linux 上需要修改。

我个人日常用 Debian Testing,首先先把 Nginx 装上, Debian 仓库下的 deb 包由于设置的问题,直接安装容易于 Apache 起冲入,可以选择卸载 Apache,也可以选择修改 Nginx 的配置文件,方法是先安装 nginx-common 包,然后修改相应 confg 文件,将 server 文件的里端口修改为未经使用的端口,然后安装 nginx-full 包。

贴吧的这个方法就是使用反向代理,将 hosts 的地址改为自己的本地,然后用 nginx 代理,使得自己的电脑成为 pixiv 的服务器。简单理解一下反向代理,就像一个服务员,将客户需要什么菜报给厨师,把菜再端给客户。nginx 就是那个服务员。然后研究一波反向代理如何配置,括号里面重要的就是 server 和 location 那个,提出来其他可以去掉放在 conf 文件夹下。找到对应 windows 的配置文件做移植,就是在 conf 下, windows 和 linux 的位置完全不一样,找到 conf 下 nginx.conf 文件修改移植即可。但是效果不是很好,首先登录是有问题的,其次直播功能不能正常用。还好我有之前 cookie ,移植一下貌似还可以用。不过这样终究不完美。

于是我到了某种个不存在的搜索引擎上查找,希冀能找到更好的配置方案。然后我在 Github 上找到了(地址文末)。我先点开教程,三大操作系统都有,不错不错。于是我先将文件 clone 下来,然后把文件移动覆盖一下就好了,但我不想覆盖我原来的配置文件,于是在 conf 下创建了一个配置文件,将原文件中关键的配置部分提取了一下拿来用了。然后将证书正确移入,由于地址问题,所以我得将原配置文件地址进行修改。然后 sudo nginx -t 测试一下是否通过,显示 ok 就通过了,启动 Nginx 服务。

打开浏览器,输入 pixiv.net 显示 Apache 页面,首先,一定得用 https 。改一下 https://pixiv.net ,成功,不过显示了一个警报页面。由于我们没有导入证书,所以我们无法正常浏览。 chrome 和 firefox 的情况有所不同,教程里有该怎么弄我不再细说, linux 和 windows 下的界面下的操作是一样的。然后重新进入网页,发现仍然不行,原因是原来 github 上的 ip 有部分有修改。我重新修改了一下,能用了(文末附)。在刷新,可以用了。这些可以在查 ip 的网站查,比如 https://www.ipaddress.com/

github 上的这个用起来还是比较顺畅的,速度比贴吧那个快。不过,登录界面用了某 404 脚本,所以你可能还要挂个代理之类的,不过你也可以等,等一会儿儿儿儿就可以加载出来了,然后输入用户名密码点登录即可,速度挺快的。不过下面第三方登录不行,可以点开,不能登录。

这里有个问题,采用第三方的证书是很危险的,容易导致一些不安全的网站变得安全。其次,采用 Nginx 反向代理容易收到中间人攻击,要小心。如果你要挂在自己的服务器上的话,还是谨慎为好。

整体以上。

附: [1]: https://tieba.baidu.com/p/5882385726 [2]: https://github.com/mashirozx/Pixiv-Nginx 修改部分:

upstream www-pixiv-net {
   server 210.129.120.50:443;
   server 210.129.120.52:443;
   server 210.129.120.55:443;
}

upstream sketch-pixiv-net {
   server 210.140.174.37:443;
   server 210.140.170.179:443;
   server 210.140.175.130:443;
}

upstream imgaz-pixiv-net {
   server 210.140.131.145:443;
   server 210.140.131.144:443;
   server 210.140.131.147:443;
   server 210.140.131.153:443;
}

upstream i-pximg-net {
   server 210.140.92.134:443;
   server 210.140.92.135:443;
   server 210.140.92.136:443;
   server 210.140.92.137:443;
   server 210.140.92.138:443;
   server 210.140.92.139:443;
   server 210.140.92.140:443;
   server 210.140.92.141:443;
   server 210.140.92.142:443;
   server 210.140.92.143:443;
}

就是原来的 IP 不能用了。