什么是反向代理?为什么用它?

反向代理 的工作方式是:你访问的不是 Google 的真实服务器,而是你自己的服务器,你的服务器接收到请求后,再替你去访问 Google,获取数据,然后再返回给你。

反向代理google 网站
(图片来源网络,侵删)

这样做的好处:

  1. 突破网络限制:这是最主要的目的,你的代理服务器可以部署在能够自由访问 Google 的网络环境中(例如一台海外的 VPS)。
  2. 隐藏真实客户端:对于 Google 所有访问请求都来自你的代理服务器 IP,而不是你的真实 IP。
  3. 缓存加速:代理服务器可以缓存 Google 的静态资源(如图片、JS、CSS 文件),当你或其他人再次访问时,可以直接从代理服务器获取,速度更快,也减轻了 Google 服务器的压力。
  4. 统一入口和安全管理:所有访问都通过代理服务器,可以方便地进行统一的访问控制、日志记录和加密(HTTPS)。

准备工作

在开始之前,你需要准备以下几样东西:

  1. 一台海外 VPS (Virtual Private Server)

    • 操作系统:推荐使用 Linux,如 Ubuntu 22.04 或 CentOS 7/8,本教程将以 Ubuntu 为例。
    • 配置:入门级配置(如 1 核 CPU, 1GB 内存, 20GB SSD)通常足够。
    • 地区:选择一个网络对你来说延迟较低、且能稳定访问 Google 的地区,如香港、日本、新加坡、美国西海岸等。
    • 购买 VPS:你可以从 Vultr, DigitalOcean, Linode, BandwagonWagon (搬瓦工), 阿里云/腾讯云国际版 等服务商购买。
  2. 一个域名

    反向代理google 网站
    (图片来源网络,侵删)
    • 虽然不是绝对必需,但强烈推荐,域名可以让你的代理服务更稳定、更安全(可以配置免费 SSL 证书)。
    • 购买一个域名,并将域名的 DNS 解析指向你的 VPS 的 IP 地址。
  3. 基本的 Linux 命令操作能力

    你需要会通过 SSH 连接到你的 VPS,并执行一些基本的命令。


搭建方案选择

有几种非常成熟的开源工具可以用来搭建反向代理,各有优劣:

方案 优点 缺点 适合人群
Nginx 性能极高、稳定、配置灵活、资源占用低,配置相对复杂一些,需要手动处理 SSL 证书。 喜欢折腾、追求极致性能和自定义的用户。 有一定 Linux 基础,希望完全掌控服务器的用户。
Caddy 极其简单!自动配置 HTTPS (Let's Encrypt),配置文件非常简洁。 相比 Nginx,在处理复杂规则时可能稍弱。 新手首选!希望快速、零配置搭建一个稳定、安全的 HTTPS 代理。
naïveproxy 使用 Google 的代理技术,抗检测能力强,不易被封锁。 配置相对复杂,需要配合浏览器客户端(如 SwitchyOmega)。 对“反封锁”有极高要求,不介意在浏览器上做额外配置的用户。

使用 Caddy (最简单推荐)

Caddy 是目前最简单、最省心的方案,尤其适合新手。

反向代理google 网站
(图片来源网络,侵删)

第 1 步:连接 VPS 并更新系统

# SSH 登录到你的 VPS
ssh root@your_vps_ip
# 更新软件包列表
sudo apt update && sudo apt upgrade -y

第 2 步:安装 Caddy

Caddy 官方提供了方便的安装脚本。

# 官方一键安装脚本
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

第 3 步:配置 Caddy

Caddy 的配置文件非常简单,使用 JSON 或 Caddyfile 格式,这里我们使用更直观的 Caddyfile。

  1. 创建配置文件:

    nano /etc/caddy/Caddyfile
  2. 在文件中添加以下内容,将 your.domain.com 替换成你自己的域名。

    # 配置你的域名
    your.domain.com {
        # 反向代理到 Google 搜索
        reverse_proxy / https://www.google.com:443 {
            # 关闭 TLS 验证,因为 Google 的证书是给 google.com 的,不是给你的域名
            header_up Host {http.reverse_proxy.upstream.hostport}
            header_up X-Real-IP {http.request.remote_host}
            header_up X-Forwarded-For {http.request.remote_host}
            header_up X-Forwarded-Proto {http.request.scheme}
        }
        # 可选:你也可以代理其他 Google 服务,
        # path /drive/* {
        #     reverse_proxy https://drive.google.com:443
        # }
        # path /gmail/* {
        #     reverse_proxy https://mail.google.com:443
        # }
    }

    解释

    • your.domain.com:你的域名。
    • reverse_proxy / ...:将所有路径 () 的请求都转发到后面的地址。
    • https://www.google.com:443:目标服务器地址。
    • header_up ...:这些是设置请求头,告诉 Google 客户端的真实信息,避免 Google 页面显示异常。
  3. 保存并退出 nano (按 Ctrl+XYEnter)。

第 4 步:启动并检查 Caddy

Caddy 通常会自动启动,你可以检查其状态。

# 检查 Caddy 服务状态
sudo systemctl status caddy
# 如果没有运行,手动启动
sudo systemctl start caddy
sudo systemctl enable caddy # 设置开机自启

在你的浏览器中访问 http://your.domain.com,你应该就能看到 Google 的搜索页面了!Caddy 会自动为你申请并配置免费的 SSL 证书,所以你也可以直接使用 https://your.domain.com


使用 Nginx (更灵活)

Nginx 是功能更强大的 Web 服务器,配置稍复杂,但更灵活。

第 1 步:安装 Nginx 和 Certbot (用于 SSL)

# 安装 Nginx
sudo apt update
sudo apt install nginx -y
# 安装 Certbot (用于获取免费 SSL 证书)
sudo apt install certbot python3-certbot-nginx -y

第 2 步:获取 SSL 证书

# 替换 your.domain.com 为你的域名
sudo certbot --nginx -d your.domain.com

按照提示操作,Certbot 会自动获取证书并配置 Nginx 的 HTTPS,如果一切顺利,它会自动启用 HTTPS。

第 3 步:配置 Nginx 反向代理

  1. 创建新的 Nginx 配置文件:

    nano /etc/nginx/sites-available/google-proxy
  2. 添加以下配置:

    server {
        listen 80;
        server_name your.domain.com;
        # Certbot 没有自动重定向,可以加上这行
        return 301 https://$host$request_uri;
        # 如果你想同时监听 80 和 443,可以去掉上面的 return,并取消下面的 listen 注释
        # listen 443 ssl;
        # ssl_certificate /etc/letsencrypt/live/your.domain.com/fullchain.pem;
        # ssl_certificate_key /etc/letsencrypt/live/your.domain.com/privkey.pem;
    }
    server {
        listen 443 ssl http2;
        server_name your.domain.com;
        # SSL 配置 (Certbot 自动生成)
        ssl_certificate /etc/letsencrypt/live/your.domain.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/your.domain.com/privkey.pem;
        include /etc/letsencrypt/options-ssl-nginx.conf;
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
        # 反向代理配置
        location / {
            proxy_pass https://www.google.com;
            proxy_set_header Host "www.google.com";
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            # 解决一些网站可能被代理阻止的问题
            proxy_ssl_server_name on;
        }
    }
  3. 保存文件,然后创建一个符号链接来启用站点:

    sudo ln -s /etc/nginx/sites-available/google-proxy /etc/nginx/sites-enabled/
  4. 测试 Nginx 配置并重新加载:

    sudo nginx -t # 检查配置语法
    sudo systemctl reload nginx # 重新加载配置

现在访问 https://your.domain.com,你应该也能看到 Google 了。


重要注意事项

  1. 隐私问题:所有你的 Google 搜索和登录行为都会通过你的代理服务器,请确保你信任你的 VPS 服务商,或者使用自己搭建的服务器。
  2. 流量成本:代理 Google 会产生大量的网络流量,请确保你的 VPS 带宽足够,并且了解服务商的流量计费政策。
  3. IP 封禁:如果你的代理服务器 IP 被大量用户滥用,可能会导致该 IP 被 Google 临时封禁(出现 "Checking your browser..." 或 "Our systems have detected unusual traffic" 等提示),如果是个人使用,风险较低。
  4. 稳定性:免费或廉价的 VPS 可能不稳定,如果代理服务无法访问,可能是 VPS 本身的问题。
  5. 仅用于学习/合法用途:请确保你使用反向代理的目的是合法合规的。

对于绝大多数用户来说,使用 Caddy 是最简单、最快捷的方案,你只需要一台 VPS 和一个域名,按照上述步骤操作,十几分钟就能搭建好一个稳定、安全的 Google 反向代理。

如果你对服务器配置非常熟悉,并且有更复杂的需求(如代理多个网站、自定义缓存规则等),Nginx 会是更好的选择。