搭建自己的代理服务 proxy nginx squid ss5 s(shadow)s(socks)
来源:互联网 发布:日本剪发多少钱 知乎 编辑:程序博客网 时间:2024/06/14 05:51
1. nginx (forward)
nginx自己熟悉,经常用来做负载均衡的反向代理, 这里搭建一个正向代理(forward)
wget http://www.openssl.org/source/openssl-0.9.8zg.tar.gzwget http://zlib.net/zlib-1.2.8.tar.gzwget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.gzwget http://nginx.org/download/nginx-1.8.0.tar.gzcd penssl-1.0.1p./configure & make & make installcd ../cd zlib-1.2.8./configure & make & make installcd ../cd pcre-8.37./configure & make & make installcd ../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.1pmakemake install
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; } }
对于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
http://ss5.sourceforge.net/
yum -y install pam-devel openldap-devel openssl-develyum -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.gzwget http://jaist.dl.sourceforge.net/project/ss5/ss5/3.8.9-8/ss5-3.8.9-8.tar.gztar -xzvf ss5-3.8.9-6.tar.gzcd ss5-3.8.9./configuremakemake install
修改配置文件
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 端口即可
使用ss5终于可以访问http+https了,但是有一个https网站访问不了,还没找到原因,然后换用了ss。
4. Apache Traffic Server
文档在官网,很详尽:
https://docs.trafficserver.apache.org/en/latest/getting-started/index.en.html#configuring-a-forward-proxy
5. s(shadow)s(socks)
Debian / Ubuntu:
apt-get install python-pip python-m2crypt pip install shadowsocks
CentOS:
yum install m2crypto python-setuptools easy_install pip pip install shadowsockspip list | grep sh
vi /etc/shadowsocks.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 }
如果要在后台运行, 请使用 supervisor。
从 Shadowsocks 2.6 开始,你可以直接在后台运行 Shadowsocks,无需 Supervisor 。 这样省掉了 Supervisor 进程占用的内存。
ssserver -c /etc/shadowsocks.jsonssserver -c /etc/shadowsocks.json -d startssserver -c /etc/shadowsocks.json -d stop
这个配置好后最后终于可以正常使用所有的http+https了,如果自己没有AWS机器搭建可以先使用 【免费的(有流量限制)】 , 下载地址:https://pypi.python.org/pypi/shadowsocks/2.8.2, https://shadowsocks.org/en/download/clients.html,文档:https://github.com/shadowsocks/shadowsocks/wiki, 在推荐个直接F(an)Q(aing)的:https://github.com/getlantern/forum
现在注册AWS可以获取12个月的免费低配置服务(EC2),作为代理使用足够了,不要注册AWS中国,而是切换成英文版本,注册英文的,然后选择非大陆区域(美国、新加坡、日本都可以),然后在新建ec2并安装ss服务端即可使用。
客户端:
Windows shadowsocks-gui
OS X ShadowsocksX / GoAgentX / shadowsocks-gui
iOS MobileShadowSocks (需要越狱) / shadowsocks-iOS (一个自带代理的浏览器)
Android shadowsocks-android
OpenWRT shadowsocks-libev / shadowsocks-tiny
REF:
https://github.com/shadowsocks/shadowsocks/wiki/%E7%94%A8-Supervisor-%E8%BF%90%E8%A1%8C-Shadowsocks
http://www.switchysharp.com/shadowsocks.html
- 搭建自己的代理服务 proxy nginx squid ss5 s(shadow)s(socks)
- Setup SS5 Socks Proxy
- 如何搭建自己的Shadow socks服务器。
- Squid 搭建代理服务
- squid代理服务的配置
- squid的代理服务软件
- linux的squid代理服务
- KazaQ's Socks
- KazaQ's Socks
- HDU6043KazaQ's Socks
- KazaQ's Socks
- 1011.KazaQ's Socks
- hdu6043--KazaQ's Socks
- HDU6043-KazaQ's Socks
- KazaQ's Socks
- HDU-KazaQ's Socks
- KazaQ's Socks
- KazaQ's Socks
- DragonBoard 410c与MS IoT开发的准备工作
- Xcode升级最新版找不到*.dylib的解决办法
- LeetCode290——Word Pattern
- POJ 2409 Let it Bead ACM Polya
- [ios基础]ios面试--网络协议篇
- 搭建自己的代理服务 proxy nginx squid ss5 s(shadow)s(socks)
- ThinkPHP框架--邮箱激活功能
- xcode修改代码目录结构出现clang: error: no such file or directory 解决方法
- 基于Android系统的UPNP媒体播放器的实现步骤
- 005AutoCompleteView自动完成文本框 与Adapter 初步了解
- C++变量及初始化的总结
- LeetCode299——Bulls and Cows我的解法
- C++primer plus第六版课后编程练习答案8.5
- 使用new char[]遇到过的几个坑