由于在某些特定场景下,我们的外网访问会受到限制,如果有一些访问需求的话就需要一个代理作为中转了。
首先需要一台机器作为中转的服务器,这时候当然要去阿里云买一台啦。操作系统一定要选Linux,我使用的是CentOS。
之后的主要目标是在这台机器上搭建一个http代理了。当然肯定不可能自己从头开始写,用现有的轮子就行。我使用的是Shadowsocks+Privoxy实现socks5代理转http代理。
1.连接到这台机器上,推荐使用secureCRT。输入机器的ip,端口是22,再把用户名密码输进去就行了。
2.安装shadowsocks,参考https://github.com/shadowsocks/shadowsocks/wiki/Shadowsocks-%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E
- yum install python-setuptools && easy_install pip
- pip install shadowsocks
安装之后后台运行即可,监听443端口
- sudo ssserver -p 443 -k password -m rc4-md5 --user nobody -d start
3.安装Privoxy,不同系统指令有差别,下面是centos:
- yum install privoxy
4.修改文件/etc/privoxy/config ,修改如下属性值:
- listen-address :8118
- enable-remote-toggle 1
然后在文件末尾添加:
- forward-socks5 / 127.0.0.1:443
修改文件可以使用vi指令,也可以使用FIllZilla直接拉下来文件再覆盖上去(我就是这么用的)。
5.启动Privoxy即可开启http代理。
- service privoxy restart
到此就可以直接使用这台机器作为http代理了,端口号为8118
除此之外,可以用另一种方法配置http代理服务器,见下链接
http://www.piaoyi.org/network/Linux-Squid-HTTP-ip.html
这种方法可以配置用户名和密码。需要注意的是由于Squid版本不同,一些配置的路径可能稍有变化,配置的时候注意一下:
- auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/squid_passwd
- auth_param basic children 5
- auth_param basic realm Squid proxy-caching web server
- auth_param basic credentialsttl 2 hours
- auth_param basic casesensitive off
- #
- # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
- #
- acl ncsaauth proxy_auth REQUIRED
- http_access allow ncsaauth