最近在做3D模型下载时发现本地可以运行的代码放到服务器就跑不动了,抓包发现是服务器端无法访问三方接口,所以想到使用代理访问,同时记录下整个代理搭建过程。
安装
- 下载: http://sourceforge.net/projects/ss5/files/
1
2
3
4
5tar zxvf ss5-3.8.9-8.tar.gz
cd ss5-3.8.9-8
./configure //默认是1080端口,如果想改端口的话,./configure --with-defaultport=10900
make
make install
默认安装目录在:/etc/opt/ss5
若出现报错:
configure: error: * Some of the headers weren’t found *
则 需要安装:
1 | yum -y install pam-devel |
如果出现报错:
SS5OpenLdap.c:29:18: fatal error: ldap.h: No such file or directory
安装
1 | yum -y install openldap-devel |
- 修改配置
/etc/opt/ss5/ss5.conf内容全部删除,仅添加内容:
1 | auth 0.0.0.0/0 - u |
- 添加账户
/etc/opt/ss5/ss5.passwd中添加用户名与密码:
1 | ss5 pass |
- 启动socks5
默认情况ss5文件没有执行权限,如果觉得使用sh来启动麻烦,那么按如下方法:
1 | chmod u+x /etc/rc.d/init.d/ss5 |
注意:如果你服务器开了防火墙不要忘了关掉,或者iptables里做下策略
使用
通用规则: curl -x [schema]://[user]:[pass]@[host]:[post] [URI] (-v 查询执行过程)
- crul 版本 >= 7.21.7 时使用命令:
1 | curl -x socks5h://localhost:10800 http://www.google.com/ |
- crul 版本 >= 7.18.0 时使用命令:
1 | curl --socks5-hostname localhost:10800 http://www.google.com/ |
许多工具在内部使用libcurl,或者在安装程序脚本中使用curl命令。如果很难修改命令行本身,可以使用环境变量设置代理。
1 | env ALL_PROXY=socks5h://localhost:10800 PROGRAM [OPTION]... |
如果你想覆盖系统代理设置,你可能还需要设置两个额外的变量:
1 | env http_proxy=socks5h://localhost:10800 HTTPS_PROXY=socks5h://localhost:10800 ALL_PROXY=socks5h://localhost:10800 PROGRAM [OPTION]... |
注意: http_proxy
是小写的,其他两个是大写的。
在代码中使用:
1 | function http_post($sUrl, $aData, $aHeader = null, $proxy = false) |