【带你去你不知道的地方】之五:Google 反代站(镜像站)—— 轻轻松松上谷歌

上一篇文章中,我们提到了一个匿名即时通信网站,而在本篇文章中将为您解答 —— 如何在不使用 VPN 的前提下轻轻松松上谷歌。

什么是反代站?

反代站,顾名思义就是反向代理站点的意思。在文章开始之前先来说说正向代理和反向代理的区别。

正向代理和反向代理

正向代理和反向代理
正向代理和反向代理

正向代理通过上面的图理解其实就是用户想从服务器拿资源数据,但是只能通过 proxy 服务器才能拿到,所以用户 A 只能去访问 proxy 服务器然后通过 proxy 服务器去后端服务器拿数据,这种情况用户是明确知道你要访问的是谁,在我们生活中最典型的案例就是 “ f翻v@x墙 “ 了,也是通过访问代理服务器最后访问外网的。

反向代理其实就是客户端去访问服务器时,他并不知道会访问哪一台,感觉就是客户端访问了 proxy 一样,而实则就是当 proxy 服务器拿到用户请求的时候会转发到代理服务器中的随机(也可由相关负载均衡算法决定)某一台。而在用户看来,他只是访问了 proxy 服务器而已,典型的例子就是负载均衡了。

正常情况下,正向代理用于 VPN “ q番(c-墙z ”,反向代理用于负载均衡。但从宏观来说他们都是代理技术,反向代理技术可否用于 “ 1翻%一4嫱z ” 呢?答案是:能。

欢迎食用

Google 反代站:https://google.makesky.net(短域名:http://g.makesky.net

账号:makesky,密码:google20190517( 注意 :密码不定期更新 )
google.makesky.net
google.makesky.net

如何搭建?

0 、搭建前准备工作:
  • 您需要一台位于中国大陆地区以外的 CentOS Linux 6 / 7 服务器,如香港、日本、新加坡和美国等地(各云主机厂商均可租赁,但小心实名制监管,推荐使用在国内被封掉的搬瓦工);
  • 既然是要做网站,您还需要注册一个域名(域名可去阿里云注册;但阿里云是实名制的,小心监管,不过目前查一个人还是很容易的),本篇文章将以 google.makesky.net 为例;
  • 为了增强安全性,您还需要申请一张 https 证书( https 证书可去阿里云或者 FreeSSL 申请,您也可以使用自动化申请和更新 https 证书的脚本 acme.sh )。
1 、安装 Nginx :

本篇文章介绍的安装步骤仅用于快速(或最小化)搭建 Google 反代站;关于 Nginx 详细的编译安装和使用介绍,请点击这里

在安装 Nginx 前请先升级一下 CentOS ,并通过 yum 源来安装一些依赖包:

[root@host ~]# yum -y update
[root@host ~]# yum -y install pcre pcre-devel zlib zlib-devel gcc openssl openssl-devel

前往 Nginx 官网获取最新版本的 Nginx 的下载链接( 当前最新版本为 1.15.12 ),使用 wget 命令下载到 CentOS 并编译安装:

[root@host ~]# cd /tmp
[root@host tmp]# yum -y install wget
[root@host tmp]# wget http://nginx.org/download/nginx-1.15.12.tar.gz
[root@host tmp]# tar -zxvf nginx-1.15.12.tar.gz
[root@host tmp]# cd nginx-1.15.12/
[root@host nginx-1.15.12]# ./configure --with-http_ssl_module
[root@host nginx-1.15.12]# make && make install

接着修改 Nginx 配置文件,先删除原先的配置文件 nginx.conf ,然后再创建一个新的 nginx.conf :

[root@host nginx-1.15.12]# rm -f /usr/local/nginx/conf/nginx.conf
[root@host nginx-1.15.12]# vi /usr/local/nginx/conf/nginx.conf

接着键入小写字母 i ,进入编辑模式,将以下配置复制粘贴进去(请根据实际需要进行相应地修改):

user nobody nobody;
worker_processes auto;
error_log logs/error.log crit;

pid logs/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;

events
{
    use epoll;
    worker_connections 51200;
}

http
{
    include mime.types;
    default_type application/octet-stream;
    server_tokens off;
    server_names_hash_bucket_size 128;
    client_header_buffer_size 32k;
    large_client_header_buffers 4 32k;
    client_max_body_size 8m;

    sendfile on;
    tcp_nopush on;
    keepalive_timeout 30;
    tcp_nodelay on;

    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types text/plain application/x-javascript text/css application/xml;
    gzip_vary on;
    #limit_zone crawler $binary_remote_addr 10m;
    log_format default '$remote_addr - $remote_user [$time_local] "$request" '
        '$status $body_bytes_sent "$http_referer" '
        '"$http_user_agent" -- "$http_cookie" $http_x_forwarded_for "$proxy_add_x_forwarded_for" "$request_time"';

    server {
        listen       80;
        server_name  google.makesky.net;

        location / {
                rewrite "^/(.*)" https://$host/$1 redirect;
        }
    }

    server {
        listen 443 ssl;
        ssl_certificate   cert/google.makesky.net.pem;
        ssl_certificate_key  cert/google.makesky.net.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;

        server_name  google.makesky.net;
        add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
        access_log logs/access.log default;

        location / {
                proxy_pass https://www.google.com;
        }

    }

}

按一次 ESC 键退出编辑模式,然后键入 “ :wq ” 保存并退出。

其中 cert/google.makesky.net.pem 和 cert/google.makesky.net.key 为域名 google.makesky.net 的 https 证书文件,存放路径位于 /usr/local/nginx/conf/cert/ 。

现在使用如下命令启动 Nginx 即可:

[root@host nginx-1.15.12]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
2 、启用 Nginx 认证(可选):

如果您不希望任何人都可以访问您的网站,那么需要启用 Nginx 认证,仅登录成功后才可访问该网站(如下图所示)。

启用 Nginx 认证
启用 Nginx 认证

通过 yum 源来安装依赖包 httpd :

[root@host ~]# yum -y install httpd

生成密码文件:

[root@host ~]# mkdir /usr/local/nginx/conf/auth
[root@host ~]# htpasswd -b -c -m /usr/local/nginx/conf/auth/htpasswd makesky 123456

其中 makesky 为账号,123456 为密码,请根据实际需要进行相应地修改。

修改配置文件 nginx.conf ,在相关位置添加如下两行即可:

    server {
        listen 443 ssl;
        ssl_certificate   cert/google.makesky.net.pem;
        ssl_certificate_key  cert/google.makesky.net.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;

        server_name  google.makesky.net;
        add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
        access_log logs/access.log default;
        auth_basic "login";
        auth_basic_user_file /usr/local/nginx/conf/auth/htpasswd;

        location / {
                proxy_pass https://www.google.com;
        }

    }

现在使用如下命令让 Nginx 重新加载配置文件即可:

[root@host ~]# /usr/local/nginx/sbin/nginx -s reload

至此,反代站部署完成。

反代站 1.0 有何优缺点?

优点:

  1. 无需安装客户端即可直接使用。

缺点:

  1. 不能反代所有站点(您可以打开 https://google.makesky.net ,然后搜索 facebook ,在搜索结果中打开 facebook 的首页,您会发现 facebook 的首页是打不开的,因为 www.facebook.com 这个网站没有做反向代理);
  2. 隐蔽性不强,一个自定义域名(如:google.makesky.net )完全对应一个被代理的站点(如:www.google.com )。

关于反代站 2.0

这篇文章将为您说明什么是反代站 2.0 ,反代站 2.0 将在一定程度上解决掉反代站 1.0 的缺点。

 

本篇文章欢迎转载,转载无需注明出处。

如有疑问,欢迎在下方留言;如本文有什么错误,欢迎在下方留言指正,谢谢。

打赏 赞(3)
微信
支付宝
微信二维码图片

微信扫描二维码打赏

支付宝二维码图片

支付宝扫描二维码打赏

Was this article helpful?

Related Articles

Leave A Comment?

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据