1. 故事背景

如果你并非身处大陆,可以Pass

最近听说Google要回来了,让我高兴地小酌了一打麒麟啤酒

清醒后,我总不能等到TA回来了再学K8s啊

开始翻阅官网,一顿操作猛如虎

发现全屏404,这个熟悉的状态码,难倒了多少英雄好汉

如果你也是,以下可以一阅

2. 提前准备

  • 本次试验是在CentOS 7系统,root用户下进行
  • 一台可以让你看到200的服务器(一般在美帝)
  • 搭建好Shadowsocks

注:以上我都没有,双手打字表示清白

3. 安装Shadowsocks及相关

安装epel源、pip包管理、shadowsocks

sudo yum -y install epel-release
sudo yum -y install python-pip
sudo pip install shadowsocks

新建配置文件、默认不存在

sudo mkdir /etc/shadowsocks
sudo vi /etc/shadowsocks/shadowsocks.json

文件/etc/shadowsocks/shadowsocks.json具体配置

# 注释版
{
    "server":"xx.xx.xx.xx",  # Shadowsocks服务器地址
    "server_port":4433,  # Shadowsocks服务器端口
    "local_address": "127.0.0.1", # 本地IP
    "local_port":1080,  # 本地端口
    "password":"xxxxxxxxx", # Shadowsocks连接密码
    "timeout":300,  # 等待超时时间
    "method":"aes-256-cfb",  # 加密方式
    "fast_open": false,  # true或false。开启fast_open以降低延迟,但要求Linux内核在3.7+
    "workers": 1  #工作线程数 
}

# 没有注释版,方便复制使用
{
    "server":"xx.xx.xx.xx",
    "server_port":4433,
    "local_address": "127.0.0.1",
    "local_port":1080,
    "password":"xxxxxxxxx",
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open": false,
    "workers": 1
}

配置自启动,新建启动脚本文件/etc/systemd/system/shadowsocks.service,内容如下:

[Unit]
Description=Shadowsocks
[Service]
TimeoutStartSec=0
ExecStart=/usr/bin/sslocal -c /etc/shadowsocks/shadowsocks.json
[Install]
WantedBy=multi-user.target

启动Shadowsocks服务

systemctl enable shadowsocks.service
systemctl start shadowsocks.service
systemctl status shadowsocks.service

验证Shadowsocks客户端服务是否正常运行

curl --socks5 127.0.0.1:1080 http://httpbin.org/ip

4. 安装配置Privoxy

通过Privoxy把Shadowsocks的socks5服务转成http服务

安装

yum install privoxy -y
systemctl enable privoxy
systemctl start privoxy
systemctl status privoxy

配置privoxy,修改配置文件/etc/privoxy/config

listen-address 127.0.0.1:8118 # 8118 是默认端口,不用改
forward-socks5t / 127.0.0.1:1080 . #转发到本地端口,注意最后有个点

设置http、https代理,在/etc/profile文件最后添加如下信息

PROXY_HOST=127.0.0.1
export http_proxy=http://$PROXY_HOST:8118
export https_proxy=http://$PROXY_HOST:8118

5. 测试

重载环境变量

source /etc/profile

验证

curl google.com

取消代理(我承认这个方法很挫)

# 把配置文件/etc/profile在上面加入的配置全注释了,重载此文件,并执行下面取消此环境变量
while read var; do unset $var; done < <(env | grep -i proxy | awk -F= '{print $1}')