如何使用 Nginx 搭一个私有 Google 镜像站(附完整配置)

站长文章13分钟前更新 小编
1 0 0

背景:为什么我要搭 Google 镜像?

很多开发者或研究人员日常离不开 Google 搜索、Google Scholar 等服务。但在某些办公网络环境下,Google 经常“抽风”——要么打不开,要么加载慢得像蜗牛。与其干等,不如自己动手,用一台境外 VPS + Nginx 快速搭个轻量级 Google 镜像站。

重点来了:这不是爬虫,也不是缓存代理,而是通过反向代理+内容替换,把 Google 的页面“伪装”成你自己的域名,从而绕过部分网络限制。


准备工作

  • 服务器:推荐使用搬瓦工(BandwagonHost)等常见 VPS,IP 能正常访问 Google 即可
  • 系统:Ubuntu 18.04(其他 Linux 发行版操作类似)
  • 域名:一个你拥有的域名(比如 mygoogle.example.com),用于绑定解析
  • 基础技能:会用 SSH、能编辑 Nginx 配置文件即可,小白也能上手

第一步:安装 Nginx

登录你的服务器,执行以下命令安装 Nginx:

ad

站长导航

优网导航旗下汇集全网优质站长工具,一站式站长工具大全导航网站

sudo apt update
sudo apt install nginx -y

安装完成后,Nginx 默认会启动。你可以通过 systemctl status nginx 检查状态。


第二步:编写 Google 镜像配置文件

/etc/nginx/sites-enabled/ 目录下新建一个配置文件,比如叫 google.conf

sudo nano /etc/nginx/sites-enabled/google.conf

然后填入以下内容(注意:把 www.example.com 替换成你自己的域名!):

server {
    # 替换为你自己的域名
    server_name www.example.com;

    location / {
        # 核心:将请求代理到 Google 官方站点
        proxy_pass https://www.google.com/;

        # 处理重定向,避免跳回 google.com
        proxy_redirect https://www.google.com/ /;

        # 修改 Cookie 域名,防止浏览器拒绝跨域 Cookie
        proxy_cookie_domain google.com www.example.com;

        # 透传用户 UA,让 Google 以为是普通浏览器访问
        proxy_set_header User-Agent $http_user_agent;

        # 注入一个预设的 Google PREF Cookie
        # 这个 Cookie 能减少 302 跳转(比如跳到 country-specific 域名)
        proxy_set_header Cookie "PREF=ID=047808f19f6de346:U=0f62f33dd8549d11:FF=2:LD=zh-CN:NW=1:TM=1325338577:LM=1332142444:GM=1:SG=2:S=rE0SyJh2W1IQ-Maw";

        # 传递真实 IP,方便调试(非必需但建议保留)
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        # 关键!替换页面中所有指向 google.com 的链接为你的域名
        # 注意:这里假设你的镜像站用 HTTP(若用 HTTPS 需同步修改)
        subs_filter http://www.google.com http://www.example.com;
        subs_filter https://www.google.com http://www.example.com;
    }
}

💡 说明

ad

AI 工具导航

优网导航旗下AI工具导航,精选全球千款优质 AI 工具集

  • subs_filter 是 Nginx 的第三方模块(需编译时启用 ngx_http_sub_module)。如果你用的是 Ubuntu 官方源安装的 Nginx,默认可能不支持。
  • 解决方案:改用 nginx-extras 包(sudo apt install nginx-extras),它包含更多模块。

第三步:重载 Nginx 配置

保存文件后,执行以下命令让配置生效:

sudo nginx -s reload

如果提示 nginx: [emerg] unknown directive "subs_filter",说明你的 Nginx 不支持该模块,请按上面提示安装 nginx-extras


第四步:配置 DNS 解析

登录你的域名服务商后台(如 Cloudflare、阿里云、GoDaddy 等),添加一条 A 记录

  • 主机记录:www(或你自定义的子域名)
  • 记录值:你的服务器公网 IP

等待 DNS 生效(通常几分钟到几小时),然后在浏览器访问 http://your-domain.com,应该就能看到 Google 首页了!


加个密码锁:防止被滥用(Basic Auth)

如果你不想让全世界都能用你的镜像站,强烈建议加上 HTTP Basic 认证

ad

免费在线工具导航

优网导航旗下整合全网优质免费、免注册的在线工具导航大全

1. 生成密码文件

运行以下命令(替换 your_usernameyour_password):

printf "your_username:$(openssl passwd -crypt your_password)\n" >> /etc/nginx/conf.d/passwd

这会在 /etc/nginx/conf.d/passwd 中生成一行加密后的凭证。

2. 修改 Nginx 配置

编辑刚才的 google.conf,在 location / 块中加入两行:

location / {
    # 新增:启用 Basic Auth
    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/conf.d/passwd;

    # 原有配置保持不变...
    proxy_pass https://www.google.com/;
    proxy_redirect https://www.google.com/ /;
    proxy_cookie_domain google.com www.example.com;
    proxy_set_header User-Agent $http_user_agent;
    proxy_set_header Cookie "PREF=ID=047808f19f6de346:U=0f62f33dd8549d11:FF=2:LD=zh-CN:NW=1:TM=1325338577:LM=1332142444:GM=1:SG=2:S=rE0SyJh2W1IQ-Maw";
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    subs_filter http://www.google.com http://www.example.com;
    subs_filter https://www.google.com http://www.example.com;
}

3. 重载 Nginx

sudo nginx -s reload

现在再访问你的镜像站,就会弹出登录框啦!


常见问题 & 小贴士

❓ 为什么搜索后会跳回 google.com?

这是 Google 的 302 重定向机制在作怪。解决方法:

  • 确保 proxy_redirectsubs_filter 配置正确
  • 检查 Cookie 是否生效(尤其是 PREF 字段)
  • 如果仍不行,可尝试更复杂的方案(如 zmirror

❓ 能不能用 HTTPS?

可以!但你需要:

  1. 申请 SSL 证书(Let’s Encrypt 免费)
  2. subs_filter 中的 http:// 改为 https://
  3. 确保所有资源(JS/CSS)都走 HTTPS,否则浏览器会拦截

不过对纯搜索用途来说,HTTP 已足够,省事又高效。

❓ 虚拟主机/宝塔面板能用吗?

理论上可以,但要确认:

  • 面板是否支持 subs_filter 模块
  • 能否自定义 Nginx 配置(有些虚拟主机限制较多)

建议直接用纯净 VPS,自由度更高。


总结

用 Nginx 搭 Google 镜像站,核心就三点:

  1. 反向代理:把请求转发给 Google
  2. 内容替换:把页面里的 google.com 换成你的域名
  3. Cookie 伪装:避免跳转和地域限制

整个过程不到 10 分钟,成本几乎为零。对于团队内部使用、临时应急都非常实用。

🚀 友情提醒:此方案仅用于合法合规的个人/团队学习研究,请勿用于商业分发或大规模公开服务。

 

如需进一步优化(比如支持 Google Scholar、自动处理 HTTPS、集成搜索框等),欢迎留言交流!

© 版权声明

相关文章

暂无评论

暂无评论...