3proxy配置参考
2020-05-24 17:53:11 阿炯

3proxy是一款开源的多功能代理软件,小巧、好用、灵活且富有特性,但其配置(3proxy.cfg)参考文档实在太少,本文收集了一些配置实例,仅供参考。

3proxy示例1

nserver 8.8.8.8
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
users user:CL:pass
daemon
log /var/log/3proxy/3proxy.log D
#logformat "- +_L%N.%p %E %U %C:%c %R:%r %O %I %h %T"
logformat "L%y-%m-%d %H:%M:%S %U %N %C:%c %R:%r %I %O %T"
rotate 99
setgid 65534
setuid 65534

auth iponly
flush
socks -i127.0.0.1 -p60000
proxy -i127.0.0.1 -p60001 -a

auth strong
flush
socks -i127.0.0.1 -p60010
proxy -i127.0.0.1 -p60011 -a

说明:
60000/60001 端口的为仅ip限制验证,默认允许所有,不过侦听在了127.0.0.1地址上。

60010/60011 端口启用了ip验证、用户验证,也是侦听在127.0.0.1地址上。

proxy或socks的-a参数为匿名proxy。

users user:CL:pass 定义了一个用户,用户名:user,密码:pass,CL表示使用了明文密码。

users freeoa:CL:freeoa,这是创建用户的地方,你可以通过空格来指定多个用户,比如说:
users user1:CL:password1 user2:CL:password2

这样就创建了两个用户。用户名和密码中间的CL是明文密码类型,可以指定加密方式,目前有如下几种方法:
No password type: use system authentication.
CL - cleartext password
CR - crypt password, only MD5 crypt passwords are supported
NT - NT-hashed (MD4) passwords in hex, as used in pwdump or SAMBA

allow freeoa,指定允许的用户使用,用户是前面创建的用户,也可以以指定ip的方式,具体可以查文档。

proxy -a -p1984 这个打开了http代理方式,也可以使用socks指令打开socks代理。-a表示匿名代理,-p代表监听的端口。

假设把配置文件保存在/etc/3proxy/3proxy.cfg当中,可以用以下的方式找开3proxy并应用该配置了:
3proxy /etc/3proxy/3proxy.cfg
也可以用
3proxy /etc/3proxy/3proxy.cfg &

让其直接运行在后台。


3proxy示例2


#成为后台守护进程,service对windows是必须的,它将会将3proxy安装为系统服务。
#对linux及非nt系统应替换为daemon,就可以保证在后台运行。
daemon
#DNS服务器
nserver 8.8.8.8
#DNS缓存
nscache 65536
#超时
timeouts 1 5 30 60 180 1800 15 60
#日志相关
log /var/log/3proxy.log
logformat "- +_L%t.%.  %N.%p %E %U %C:%c %R:%r %O %I %h %T"
rotate 30
#以上三行设置了日志文件的地址、格式及保存时长的记录
#这部分内容必须放到auth iponly之前,否则不能记录
#用户组中的CL为明文密码
users user1:CL:pwd user2:CL:pwd
#权限控制参数
#allow <userlist> <sourcelist> <targetlist> <targetportlist> <commandlist> <weekdaylist> <timeperiodlist>
#deny <userlist> <sourcelist> <targetlist> <weekdaylist> <timeperiodlist>
 
#开启socks和http代理,指定监听端口和出口IP
#开启ip与用户名组合验证
auth iponly strong
allow user1,user2
allow * 192.168.0.0/16 *
socks -p1080 -e192.168.1.1
socks -p1081 -e192.168.1.2
proxy -p8080 -e192.168.1.1
proxy -p8081 -e192.168.1.2
flush
 
#开启HTTP代理并用ip地址来认证,端口3128,轮换出口IP
auth iponly
allow *
parent 500 http 192.168.1.2 0
parent 500 http 192.168.1.1 0
proxy -p3128
flush
#使用flush清空服务列表,接下来就可以开设新的服务

#tor转换为普通的http代理,这里实现了一个代理链,所有的请求都将通过tor后再通过192.168.0.1
#tor本身是socks4a的代理,在设置文件中应该表示为socks4+
#但由于192.168.0.1不支持域名解析,所以标为socks4,否则会代理链出错
allow * 127.0.0.1 *
parent 1000 socks4 127.0.0.1 9050 #tor父一级代理,注意代理类型是socks4a
parent 1000 socks5 192.168.0.1 8080 user pwd #二级代理,对上级的代理使用了用户名和密码认证
proxy -a -p2367
flush
 
#开启上层代理,HTTP端口2345,轮换上层socks5代理
auth iponly
allow *
parent 500 socks5 192.168.1.1 7777
parent 500 socks5 192.168.1.1 7070
parent 500 connect 192.168.1.1 3128
proxy -p2345
flush


3proxy示例3

flush
external 11.11.22.22
internal 192.168.1.8

auth strong
deny * * 127.0.0.1,192.168.1.1
allow * * * 80-88,8080-8088,8001-8010 HTTP
allow * * * 443,8443,8001-8010 HTTPS
bandlimin 57600 * 192.168.10.16/32

internal 192.168.1.8这个是服务器的ip地址,可把这个ip地址修改具体的服务器ip。

bandlimin/bandlimout用于限制进出的速率,为那些用户或应用进行限制。单位:bits per second 1byte = 8bits,57600即为多年前的56k拨号上网的速率。

To manage filters bandlimin/bandlimout and nobandlimin/nobandlimout. 'in' means incoming and 'out' - outgoing traffic.

bandlimin <bitrate> <userlist> <sourcelist> <targetlist> <targetportlist> <commandlist>
nobandlimin <userlist> <sourcelist> <targetlist> <targetportlist> <commandlist>