标签:
3proxy
的官网在:https://3proxy.ru/ ,3proxy
可以用来设置各种协议的代理,比如说http
,socks
等,关于3proxy的详细介绍可以通过搜索来了解,这里就不说了。
3proxy
的代码代管在github
上面,地址是:https://github.com/z3APA3A/3proxy
安装步骤如下:
git clone https://github.com/z3APA3A/3proxy.git
,直接通过git
把代码复制到本地(注意我用的是Linux操作系统centos)。cd 3proxy
,进入3proxy
文件夹make -f Makefile.Linux
,编译3proxy
,如果你的系统没有gcc
,你需求先安装gcc
。make -f Makefile.Linux install
,安装3proxy
。至此,你就可以使用3proxy
软件了。
这里有一个小插曲,你使用3proxy
指令的时候,想要用-h
选项查看帮助,但它提示你:
Please read license agreement in ‘copying’ file.
You may not use this program without accepting license agreement
但我并没有找到哪个地方可以同意
它的证书。然而虽然这样,还是不影响我们的使用。
3proxy
的配置可以参考官网还有配置案例,有了配置文件后,我们通过3proxy path/to/3proxy.cfg
打开3proxy
就可以直接使用代理了。
当然,不得吐槽的是,它的文档和配置案例讲得很烂,比如说它在配置的时候可以使用allow * * * *
,但我不知道它那4个*
分别代表什么,于是去查文档,但我找不到相关的信息。3proxy
的作者是一个俄罗斯人,文档里也有俄罗斯版本,也许里面有吧?我在初次配置的时候花了比较多时间。当然,我现在提供一个案例来简单讲一下,会比较容易理解一点。
#!/usr/local/bin/3proxy
timeouts 1 5 30 60 180 1800 15 60
users awayisblue:CL:awayisblue
service
log /etc/3proxy/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
rotate 30
internal 102.224.164.98
auth strong
allow awayisblue
proxy -a -p1984
这是一个可以用的例子,我们需要关注和修改的地方是:
users awayisblue:CL:awayisblue
,这是创建用户的地方,你可以通过空格来指定多个用户,比如说: users user1:CL:password1 user2:CL:password2
,这样,我们就创建了两个用户了。用户名和密码中间的CL
是明文密码类型,你也可以指定加密方式,具体可以到官网去查。internal 102.224.164.98
这个里面的102.224.164.98
是你服务器的ip地址,你把这个ip地址修改你服务器的ip。allow awayisblue
,指定允许的用户,用户是前面创建的用户,你也可以以指定ip的方式,具体可以查文档。proxy -a -p1984
这个打开了http
代理方式,你也可以使用socks
打开socks
代理。而-a
代表匿名代理,-p
代表监听的端口。假设我们把配置文件保存在/root/3proxy/3proxy.cfg
当中,我们就可以用以下的方式找开3proxy
并应用该配置了:
3proxy /root/3proxy/3proxy.cfg
也可以用
3proxy /root/3proxy/3proxy.cfg &
让其直接运行在后台。
服务器代理打开后,我们可以使用客户端连接代理。我这里使用node.js
的superagent-proxy来演示一下,主要说明了使用http proxy
的格式问题。
var request = require(‘superagent‘);
// extend with Request#proxy()
require(‘superagent-proxy‘)(request);
// HTTP, HTTPS, or SOCKS proxy to use
var proxy = ‘http://awayisblue:awayisblue@102.224.164.98:1984‘;
request
.get(‘https://encrypted.google.com/‘)
.proxy(proxy)
.end(onresponse);
function onresponse (err, res) {
if (err) {
console.log(err);
} else {
console.log(res.status, res.headers);
console.log(res.body);
}
}
重点在于前面的var proxy = ‘http://awayisblue:awayisblue@102.224.164.98:1984‘;
这一句,通过这种形式的连接,我们就可以使用3proxy
的代理了。
关于3proxy的比较好的资料是:
1. http://linux.die.net/man/3/3proxy.cfg
2. https://github.com/z3APA3A/3proxy/wiki
标签:
原文地址:http://blog.csdn.net/u010093140/article/details/51372492