首页

nginx 反向代理 google 搜索

kkcode
2023-07-28  阅读 282

为了能够正常访问 google 进行搜索,之前一直用的 ssh 转 socks 代理。

为了能够正常访问 google 进行搜索,之前一直用的 ssh 转 socks 代理。后来觉得如果 s2 主机只用来做代理,有点浪费了。于是就想了干脆反向代理一个 google 搜索。网上相关的文章比较多,随便搜索一下就可以找到相关的代码。基于 nginx 的主要配置代码如下:

proxy_cache_path /tmp/accounts levels=1:2 keys_zone=cache:10m max_size=10g inactive=60m use_temp_path=off;
server {
        server_name h4ck.ws;
        location / {
      proxy_redirect off;
      proxy_cache cache;
      proxy_cache_valid   200 304 12h;
      proxy_cache_valid   any 10m;
      proxy_cookie_domain google.com h4ck.ws;
      proxy_pass https://www.google.com;
      proxy_connect_timeout 20s;
      proxy_read_timeout 600s;
      proxy_send_timeout 600s;

      proxy_set_header Host "www.google.com";
      proxy_set_header User-Agent $http_user_agent;
      proxy_set_header Referer https://www.google.com;
      proxy_set_header Accept-Encoding "";
      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 https;
      proxy_set_header Accept-Language "zh-CN";
#     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"; #这行代码可能会导致google监测到流量异常
      sub_filter https://www.google.com https://h4ck.ws;
      sub_filter https://www.google.co.jp https://h4ck.ws;
      sub_filter_once off;
      addition_types *;
  }
}复制代码
# 我自己服务器的配置,已经关闭(根据中国法律规定,禁止私自建立国际信道)
location / {
      proxy_redirect off;
      proxy_cookie_domain google.com google.qdgithub.com;
      proxy_pass https://www.google.com;
      proxy_connect_timeout 20s;
      proxy_read_timeout 600s;
      proxy_send_timeout 600s;

      proxy_set_header Host "www.google.com";
      proxy_set_header User-Agent $http_user_agent;
      proxy_set_header Referer https://www.google.com;
      proxy_set_header Accept-Encoding "";
      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 https;
      proxy_set_header Accept-Language "zh-CN";
#     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"; #这行代码可能会导致google监测到流量异常
      sub_filter https://www.google.com https://google.qdgithub.com;
      sub_filter https://www.google.co.jp https://google.qdgithub.com;
      sub_filter_once off;
      addition_types *;
  }复制代码

不过今天在使用的时候发现搜索按钮不好使了,又跳回到了 google 的连接。一直没想明白问题出在什么地方,知道晚上开了代理之后发现跳转的连接是流量异常被检测到限制了 (我们的系统检测到您的计算机网络中存在异常流量。此网页用于确认这些请求是由您而不是自动程序发出的。为什么会这样?):

猜测是因为上面的代码设置了 cookie 导致的,如下一行:

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"复制代码

搜索了一下发现有人说传这个是为了防止 “# 传固定的 cookie 给谷歌,是为了禁止即时搜索,因为开启即时搜索无法替换内容”。但是具体看一下这个 cookie 的内容就会发现 1325338577 这个 unix 对应的时间是 2011-12-31 21:36:17。一个是时间比较久远,另外一个是网上所有的 google 代理 可能用的都是这个 cookie。我直接禁用之后搜索就正常了。

如果要想更高级一点可以通过配置 nginx 的 upstream 实现负载均衡等,配置信息如下:

upstream www.google.com {
    server 216.58.221.68:443 weight=6;
    server 74.125.23.99:443 weight=5;
    #日本东京都东京 google.com
    server 172.217.25.68:443 weight=4;
    #日本东京都东京 google.com
    server 216.58.200.196:443 weight=4;
    #日本大阪府大阪 google.com
    server 216.58.197.4:443 weight=3;
    #新加坡 google.com
    server 74.125.130.147:443 weight=2;
    #美国 google.com
    server 74.125.28.104:443 weight=1;
    #美国 google.com
    server 74.125.28.147:443 weight=1;
    #美国华盛顿州西雅图 google.com
    server 172.217.3.196:443 weight=1;
    }复制代码

这个只是个样本,建议根据自己的服务器所在的国家,通过 nslookup 或者 ping 命令之类的查询当前国家的 google 返回的地址进行替换。网上的文章很多代码出处都是一样的,但是在使用的时候最好变通一下,之前的代码或者随着时间变化很多内容可能不一样了。

全部的配置教程可以参考这篇文章:https://zvv.me/mip/1785.html

☆文章版权声明☆


本文为作者原创文章,转载无需和我联系,但请注明转载链接。 【前端黑猫】