• 4090

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

http://ss5.sourceforge.net/

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

文档在官网,很详尽: 
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
  • 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服务端即可使用。

客户端: 
Windows shadowsocks-gui

OS X ShadowsocksX / GoAgentX / shadowsocks-gui

iOS MobileShadowSocks (需要越狱) / shadowsocks-iOS (一个自带代理的浏览器)

Android shadowsocks-android

OpenWRT shadowsocks-libev / shadowsocks-tiny

REF:

版权声明:本文为博主原创文章,未经博主允许不得转载。

搭建自己的代理服务 proxy nginx squid ss5 s(shadow)s(socks)的更多相关文章

  1. 用Docker搭建一个支持https的nginx代理服务

    用Docker搭建一个支持https的nginx代理服务 说明:本文所提的服务只是作者平常测试使用,可能含有未知bug或不成熟的解决方案,仅供参考,请不要用于正式环境,当然,使用过程中有任何问题欢迎提 ...

  2. centos7 下 apache nginx squid https正向代理 代理服务器

    apache yum install httpd mod_ssl -y vim /etc/httpd/conf.d/ssl.conf Listen https <VirtualHost *:&g ...

  3. python服务器环境搭建Flask,uwsgi和nginx

    python服务器环境搭建Flask,uwsgi和nginx 环境配置 服务器配置  [部署系统环境Ubuntu] 使用python的Flask框架搭建好网页后台后,便要开始将网站部署到服务器平台了. ...

  4. 【转载】vue-cli搭建的环境,用nginx做代理服务器,访问时显示:Invalid Host header

    来源:https://blog.csdn.net/Cookysurongbin/article/details/86077241 vue-cli搭建的环境,用nginx做代理服务器,访问时显示:Inv ...

  5. 用Nginx搭建CDN服务器方法-开启Nginx缓存与镜像,自建图片服务器

    利用Nginx的proxy_cache搭建缓存服务器一:编译ngx_cache_purge1.Nginx的Proxy_cache是根据Key值md5哈希存储缓存,支持任意的Key,例如你可以根据”域名 ...

  6. 正向代理 forward proxy、反向代理 reverse proxy、透明代理 transparent proxy nginx反向代理原理和配置讲解 防止外部客户机获取内部内容服务器的重定向 URL 缓存命中

    [大型网站技术实践]初级篇:借助Nginx搭建反向代理服务器 - Edison Chou - 博客园http://www.cnblogs.com/edisonchou/p/4126742.html 图 ...

  7. linux搭建一个配置简单的nginx反向代理服务器 2个tomcat

    1.我们只要实现访问nginx服务器能跳转到不同的服务器即可,我本地测试是这样的, 在nginx服务器里面搭建了2个tomcat,2个tomcat端口分别是8080和8081,当我输入我nginx服务 ...

  8. miya--图片上传--搭建分布式文件服务器(FastDFS+Nginx)

    资料获取(FastDFS+Nginx): 链接:https://pan.baidu.com/s/1kUI5WH5 密码:kzfd 安装rz,sz功能: yum install lrzsz 主攻: 利用 ...

  9. 在CentOS上搭建最^1024基本的Nginx反向服务器

    昨天有过去的同事突然问我,他在CentOS7上试验搭建反向服务器死活不成功.现将最简单的搭建步骤分享下: 0. 环境介绍 本次搭建的集群包括以下服务器 192.168.1.107:nginx反向服务器 ...

随机推荐

  1. Android开发最佳实践《IT蓝豹》

    Android开发最佳实践   移动开发Android经验分享应用GoogleMaterial Design 摘要:前 段时间,Google公布了Android开发最佳实践的一系列课程,涉及到一些平时 ...

  2. SSM商城项目(三)

    1. 学习计划 1.商品类目选择 2.图片上传 a) 图片服务器FastDFS b) 图片上传功能实现 3.富文本编辑器的使用KindEditor 2. 商品类目选择 2.1. 原型 2.2. 功能分 ...

  3. 转载一篇必须超级好的JVM配置实战

    不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM.GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java ...

  4. jquery val() text() html()的区别

    value()主要用在表单元素上,如果其他的元素获取value是通过attract()的方法,text()是获取元素的纯文本,如果text(“content”)就会更改元素的文本内容:html()获取 ...

  5. mysql攻防之写入漏洞

    因为被别人利用mysql攻击,所以想在这里帮助大家提高一下自身mysql的安全.避免成为别人的肉鸡. show global variables like '%secure%'; 如果是这样则黑客可以 ...

  6. Java中构造函数传参数在基本数据类型和引用类型之间的区别

    Java中构造函数传参数在基本数据类型和引用类型的区别 如果构造函数中穿的参数为基本数据类型,如果在函数中没有返回值,在调用的时候不会发生改变:而如果是引用类型,改变的是存储的位置,所有不管有没有返回 ...

  7. Python __init__ 特殊方法

    在Python中有很多以双下划线开头且以双下划线结尾的固定方法.他们会在特定的时机被触发执行. __init__ 就是其中之一,它会在实例化之后自动被调用.以完成实例的初始化. >>> ...

  8. Linux 学习总结(一)

    一.Linux系统有7个运行级别(runlevel) 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆 运行 ...

  9. npm run dev 自动打开浏览器

    修改配置: config - index.js - autoOpenBrowser: true

  10. as3.0 在数组中找个找个,并且替换

    var arr:Array=[1,2,7,9,3,5,6]; var findNum:Number =5//想要找到的数字 var replaceNum:Object =3//想要替换的数字 var ...