搭建自己的代理服务 proxy nginx squid ss5 s(shadow)s(socks)
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 shadowsocks
- 1
- 2
CentOS:
yum install m2crypto python-setuptools
easy_install pip
pip install shadowsocks
pip list | grep sh
- 1
- 2
- 3
- 4
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
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
如果要在后台运行, 请使用 supervisor。
从 Shadowsocks 2.6 开始,你可以直接在后台运行 Shadowsocks,无需 Supervisor 。 这样省掉了 Supervisor 进程占用的内存。
ssserver -c /etc/shadowsocks.json
ssserver -c /etc/shadowsocks.json -d start
ssserver -c /etc/shadowsocks.json -d stop
- 1
- 2
- 3
- 4
这个配置好后最后终于可以正常使用所有的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服务端即可使用。
OS X ShadowsocksX / GoAgentX / shadowsocks-gui
iOS MobileShadowSocks (需要越狱) / shadowsocks-iOS (一个自带代理的浏览器)
OpenWRT shadowsocks-libev / shadowsocks-tiny
REF:
搭建自己的代理服务 proxy nginx squid ss5 s(shadow)s(socks)的更多相关文章
- 用Docker搭建一个支持https的nginx代理服务
用Docker搭建一个支持https的nginx代理服务 说明:本文所提的服务只是作者平常测试使用,可能含有未知bug或不成熟的解决方案,仅供参考,请不要用于正式环境,当然,使用过程中有任何问题欢迎提 ...
- centos7 下 apache nginx squid https正向代理 代理服务器
apache yum install httpd mod_ssl -y vim /etc/httpd/conf.d/ssl.conf Listen https <VirtualHost *:&g ...
- python服务器环境搭建Flask,uwsgi和nginx
python服务器环境搭建Flask,uwsgi和nginx 环境配置 服务器配置 [部署系统环境Ubuntu] 使用python的Flask框架搭建好网页后台后,便要开始将网站部署到服务器平台了. ...
- 【转载】vue-cli搭建的环境,用nginx做代理服务器,访问时显示:Invalid Host header
来源:https://blog.csdn.net/Cookysurongbin/article/details/86077241 vue-cli搭建的环境,用nginx做代理服务器,访问时显示:Inv ...
- 用Nginx搭建CDN服务器方法-开启Nginx缓存与镜像,自建图片服务器
利用Nginx的proxy_cache搭建缓存服务器一:编译ngx_cache_purge1.Nginx的Proxy_cache是根据Key值md5哈希存储缓存,支持任意的Key,例如你可以根据”域名 ...
- 正向代理 forward proxy、反向代理 reverse proxy、透明代理 transparent proxy nginx反向代理原理和配置讲解 防止外部客户机获取内部内容服务器的重定向 URL 缓存命中
[大型网站技术实践]初级篇:借助Nginx搭建反向代理服务器 - Edison Chou - 博客园http://www.cnblogs.com/edisonchou/p/4126742.html 图 ...
- linux搭建一个配置简单的nginx反向代理服务器 2个tomcat
1.我们只要实现访问nginx服务器能跳转到不同的服务器即可,我本地测试是这样的, 在nginx服务器里面搭建了2个tomcat,2个tomcat端口分别是8080和8081,当我输入我nginx服务 ...
- miya--图片上传--搭建分布式文件服务器(FastDFS+Nginx)
资料获取(FastDFS+Nginx): 链接:https://pan.baidu.com/s/1kUI5WH5 密码:kzfd 安装rz,sz功能: yum install lrzsz 主攻: 利用 ...
- 在CentOS上搭建最^1024基本的Nginx反向服务器
昨天有过去的同事突然问我,他在CentOS7上试验搭建反向服务器死活不成功.现将最简单的搭建步骤分享下: 0. 环境介绍 本次搭建的集群包括以下服务器 192.168.1.107:nginx反向服务器 ...
随机推荐
- Kubernetes K8s
1 Kubernetes入门及概念介绍 Kubernetes(K8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展.开源将Docker 看成Kubernetes内部使用的低级别组 ...
- js高级-作用域链
作用域链存放的就是 VO AO 参数 变量 等
- yii基础控制器安全验证
- struts原理图
n the diagram, an initial request goes to the Servlet container (such as Jetty or Resin) which is pa ...
- SQL Server - 使用 Merge 语句实现表数据之间的对比同步
表数据之间的同步有很多种实现方式,比如删除然后重新 INSERT,或者写一些其它的分支条件判断再加以 INSERT 或者 UPDATE 等.包括在 SSIS Package 中也可以通过 Lookup ...
- 重工单001800020505在IN表IN_SFCHEADER被过滤 TEMP_REMOVED_ID_IN_DATA
select * from SAP_AFKO WHERE AUFNR='001800020505'; ---有数据SELECT * FROM IN_SFCHEADER WHERE MO_ID ='0 ...
- ncat的使用
由于netcat的缺陷,所以有了升级版ncat,弥补了netcat的一些不足. ncat是nmap工具包的一个工具. 服务器端 ncat -c bash --allow 192.168.1.119 - ...
- 【scrapy】爬虫的时候总在提示 KeyError: 'novelLabel'
调试的时候总是提示 KeyError: 'novelLabel'然后决定断点调试一下, 在def parse_book_list(self, response):方法下,添加print(respons ...
- 强制改变css样式优先级
.list{ left:20px!important; } css !important作用是提高指定CSS样式规则的应用优先权. !important是CSS1就定义的语法,作用是提高指定样式规则的 ...
- undefined reference to symbol' pthread_create@@GLIBC_2.2.5'
我在ubuntu16.04上迁移工程,遇到了这个错误. pthread库不是Linux系统默认的库,链接时需要添加-pthread参数. 这里注意是链接那一步添加-pthread,而不是编译选项.