If you are still struggling with Google Scholar “Bot Verification” (Captcha) on your VPS, the 2018 method of manually editing /etc/hosts has become obsolete. The most reliable and low-maintenance solution today is leveraging Cloudflare WARP.
The Logic #
By installing the WARP client, you provide your VPS with a clean, high-reputation outbound IP address (dual-stack). Combined with modern routing tools like Xray or Sing-box, you can selectively route academic traffic through the WARP tunnel.
-
Install WARP Client Use the official Cloudflare repository for stability:
curl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg | gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ focal main" | tee /etc/apt/sources.list.d/cloudflare-client.list apt update && apt install cloudflare-warp -
Configure Split Routing (e.g., Sing-box) Force
scholar.google.comtraffic to use the WARP outbound, prioritizing IPv6 where available.{ "outbounds": [ { "type": "wireguard", "tag": "warp-out", ... } ], "route": { "rules": [ { "domain_suffix": [ "scholar.google.com", "scholar.google.com.hk" ], "outbound": "warp-out" } ] } }
Why this works? #
- Zero Maintenance: No need to manually update IPv6 addresses when Google’s CDN nodes rotate.
- High Reputation: WARP’s IP ranges are generally considered “clean” by Google, significantly reducing Captcha frequency.
Legacy Version (Just For Reference) #
Google Scholar blocked most of DigitalOcean VPS IP(IPv4), so you should use IPv6 to access Google Scholar instead.
via: https://github.com/shadowsocks/shadowsocks-libev/issues/113
OS: Ubuntu 16.04.3 LTS ss version: shadowsocks-libev 3.1.3
- Configure shadowsocks-libev
Edit
/etc/default/shadowsocks-libev:
# add '-6' to resolve hostname to IPv6 address first
DAEMON_ARGS="-u -6" - Enable IPv6 in config
Edit
/etc/shadowsocks-libev/config.json:
"dns_ipv6": true- Manual DNS Override
Edit
/etc/hosts:
## Scholar
## type 'host google.com' to get the correct ipv6 address
2607:f8b0:4005:804::200e scholar.google.com
2607:f8b0:4005:804::200e scholar.l.google.comsystemctl restart shadowsocks-libev