在大陆使用 Google Scholar

使用 shadowsocks 科学上网时, Google 和其他很多网站都能正常访问, 唯独 Google Scholar 会提示下面的错误, 而且没有 CAPTCHA 来验证自己不是电脑.

We’re sorry… but your computer or network may be sending automated queries. To protect our users, we can’t process your request right now.

之前我为了检索论文, 只好自己买 VPN. 这个月到期之后决定不买 VPN 了, 因为我自己就有 shadowsocks, 为什么不解决这个问题. 据说是因为服务器的同一 IP 服务段有人使用爬虫, 所以 Google 限制访问了, 需要使用 ipv6 访问 Google. 我尝试了一下, 现在也终于能正常访问了.

Enable ipv6

要使用 ipv6 访问 Google, 首先需要先保证 ss 的服务器开启了 ipv6 的. 开启 ipv6 的部份可以参考 How To Enable IPv6 for DigitalOcean Droplets. 在确保了服务器已经开启 ipv6 后, 再进行以下配置.

修改 shadowsocks 配置

打开 shadowsocks 的配置:

sudo vim /etc/shadowsocks.json

修改第一行的 "server":"ipadress""server": "::", 保证 shadowsocks 不仅仅使用 ipv4.

{
    "server":"::",
    "server_port":8388,
    "local_address": "127.0.0.1",
    "local_port":1080,
    "password":"mypassword",
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open": false
}

上面是可行解法, 另外我尝试过 ss github issue 中提到的设置方法 改为 "server":["[::0]", "0.0.0.0"] 并不可行, 只能依照上面代码设置为 "server": "::".

修改 hosts

ssh 到服务器, 修改 hosts 文件, 手动设定 scholar.google.com 网站的服务网址:

打开 hosts 文件:

sudo vim /etc/hosts

在文件末尾加上:

# google scholar
2404:6800:4008:c06::be scholar.google.com
2404:6800:4008:c06::be scholar.google.com.hk
2404:6800:4008:c06::be scholar.google.com.tw
2401:3800:4001:10::101f scholar.google.cn
2404:6800:4008:c06::be scholar.google.com.sg

最后重启 shadowsocks 的服务:

sudo ssserver -c /etc/shadowsocks.json -d restart

ipv6 地址变动

需要注意的是, scholar.google.com 的 ipv6 的地址更换过, 因为早一点的教程, 会告诉你把 hosts 改成:

2607:f8b0:4007:805::100f scholar.google.com

但是这些 2607 的 ipv6 地址根本没法连接, 上面的 2404 的才是现在2018年5月4日能使用的. 以后变动的话, 还要搜索新 ipv6 地址, 再做更改. 更改的地址可以参考 这个 hosts 文件.

感受

在国内总有一种被强奸的感觉, 一个很好的网站, 说不让你连接, 就不让你连接. 我今天花了一上午研究如何绕过长城, 整个人都很暴躁. 时间都浪费在争取那些应该能自由获取的东西, 这个政权还在投入大量人力物力阻碍信息的流动.

参考

Related