1. nginx (forward)
nginx自己熟悉,经常用来做负载均衡的反向代理, 这里搭建一个正向代理(forward)
wget http://www.openssl.org/source/openssl-0.9.8zg.tar.gz
wget http://zlib.net/zlib-1.2.8.tar.gz
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.gz
wget http://nginx.org/download/nginx-1.8.0.tar.gz
cd penssl-1.0.1p
./configure & make & make install
cd ../
cd zlib-1.2.8
./configure & make & make install
cd ../
cd pcre-8.37
./configure & make & make install
cd ../
cd nginx-1.8.0
./configure --prefix=/data/nginx --with-http_ssl_module --with-pcre=../pcre-8.37 --with-zlib=../zlib-1.2.8 --with-openssl=../openssl-1.0.1p
make
make install
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
nginx/conf/nginx/nginx.conf
server {
resolver 8.8.8.8;
listen 9088;
access_log logs/proxy.log main;
location / {
proxy_pass http://$host$request_uri;
proxy_set_header Host $http_host;
proxy_buffers 256 4k;
proxy_max_temp_file_size 0k;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
对于http网站还行,但是https访问就不行了。作为 web server nginx 当然是可以处理 ssl 的,但作为 proxy 则是不行的。因为 nginx 不支持 CONNECT,收到 “CONNECT /:443 HTTP/1.1” 后会报一个包含“client sent invalid request while reading client request line,” 的错误。因为 CONNECT 是正向代理的特性,据说也没有计划支持。nginx作者建议使用squid。
2. squid
安装配置完成后,打开http端口即可,使用squid访问http网站也没问题,但是在配置https时没有成功,最后决定使用ss5。
REF:
http://www.cnblogs.com/mchina/p/3812190.html
3. ss5
yum -y install pam-devel openldap-devel openssl-devel
yum -y install gcc gcc-c++ automake make pam-devel openldap-devel cyrus-sasl-devel
#wget http://jaist.dl.sourceforge.net/project/ss5/ss5/3.8.9-6/ss5-3.8.9-6.tar.gz
wget http://jaist.dl.sourceforge.net/project/ss5/ss5/3.8.9-8/ss5-3.8.9-8.tar.gz
tar -xzvf ss5-3.8.9-6.tar.gz
cd ss5-3.8.9
./configure
make
make install
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
修改配置文件
vi /etc/opt/ss5/ss5.conf
auth 0.0.0.0/0 – -
改为
auth 0.0.0.0/0 – u
permit – 0.0.0.0/0 – 0.0.0.0/0 – – – – -
改成为
permit u 0.0.0.0/0 – 0.0.0.0/0 – – – – -
cat /etc/opt/ss5/ss5.passwd
#用户 密码
e.g:
`echo "myname a123456" > /etc/opt/ss5/ss5.passwd`
#启动socket 5
chmod u+x /etc/rc.d/init.d/ss5
chkconfig --add ss5 //可选
chkconfig ss5 on //可选
service ss5 start
#查看是否启动
netstat -lntp | grep ss5
然后在 aws 安全组管理中打开 1080 端口即可
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
使用ss5终于可以访问http+https了,但是有一个https网站访问不了,还没找到原因,然后换用了ss。
4. Apache Traffic Server
5. s(shadow)s(socks)
Debian / Ubuntu:
apt-get install python-pip python-m2crypt
pip install *
- 1
- 2
CentOS:
yum install m2crypto python-setuptools
easy_install pip
pip install *
pip list | grep sh
- 1
- 2
- 3
- 4
vi /etc/*.json
{
"server":"0.0.0.0",
"server_port":8388,
"local_address": "127.0.0.1",
"local_port":11080,
"password":"12651321",
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false,
"workers": 1
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
如果要在后台运行, 请使用 supervisor。
从 * 2.6 开始,你可以直接在后台运行 *,无需 Supervisor 。 这样省掉了 Supervisor 进程占用的内存。
ssserver -c /etc/*.json
ssserver -c /etc/*.json -d start
ssserver -c /etc/*.json -d stop
- 1
- 2
- 3
- 4
这个配置好后最后终于可以正常使用所有的http+https了,如果自己没有AWS机器搭建可以先使用 【免费的(有流量限制)】 , 下载地址:https://pypi.python.org/pypi/*/2.8.2, https://*.org/en/download/clients.html,文档:https://github.com/*/*/wiki, 在推荐个直接F(an)Q(aing)的:https://github.com/get*/forum
现在注册AWS可以获取12个月的免费低配置服务(EC2),作为代理使用足够了,不要注册AWS中国,而是切换成英文版本,注册英文的,然后选择非大陆区域(美国、新加坡、日本都可以),然后在新建ec2并安装ss服务端即可使用。
客户端:
Windows *-gui
iOS Mobile* (需要越狱) / *-iOS (一个自带代理的浏览器)
REF: