转自:DRL@fireinice写的教程
************************************************************************************************************************

您从本文可以得到
1.如何在linux/windows下安装3proxy代理软件,并使用其开设代理
2.调整3proxy代理链,使用多个父代理联合上网
3.使用3proxy开设多个代理

3proxy是一个由俄罗斯人开发的多平台代理软件,支持http/https/ftp/socks4/socks5/socks4a/socks5a等多种代理方式。

之前由dRag0nMa介绍到drl,并由ccpp0兄写过一个简单的教程原文地址
我是因为要在linux下寻找一款同时支持http和socks的代理软件,由ccpp0兄介绍给我的,从那篇文章里获益良多。跟据自己的需要,阅读软件英文手册并在软件论坛上发帖询问后有了一些新的理解,特发此文

一、安装
在windows下安装:
在windows下安装其实十分简单:
可以下载已经编译好的二进制包,然后解压缩到一个文件中。bin文件夹下即是软件执行文件。

二、配置
对于windows系统来说要在bin文件夹下新建一个名为3proxy.cfg的文件。所有的配置信息都写在这里。
若为linux系统,则可新建一个3proxy.sh的文件。

我先粗略说明一下我的网络环境及想用3proxy实现哪些功能
我手头上有一个socks代理,我希望大部分网络连接通过这个代理,同时不想进行代理所需的身份验证。同时,我是一个tor用户,但从来没有用过privoxy的其它功能,只用tor来浏览网页,所以希望将tor转换为普通的http代理。
同时,我还需要开设一个代理给寝室中的同学使用。
做下假设:
我的父代理
socks代理为:192.168.0.1:8080,代理类型是socks5,用户名、密码是:usr/pwd
tor代理是:127.0.0.1:9050,代理类型是socks4a
我希望开设的代理:
用户有192.168.1.1和192.168.1.2以及我自己
共开设四个代理接口:
1234端口:这个端口进来的http请求全部转到192.168.0.1
1235端口:这个端口接受socks请求,并全部转到192.168.0.1
1236端口:这个端口希望能建起一个代理链,使用tor为一级代理,192.168.0.1做为二级代理
1237端口:这个端口没有父代理,提供给除我之外的用户使用。

好了,让我们看一下我的cfg文件是如何实现以上要求的(#后为注释):

timeouts 30 30 60 60 180 1800 60 120 

log D:/temp/3proxy.log D #注意在linux系统中的路径应改为其它形式。

logformat "L%d %H:%M %N-%p %C:%c %R:%r %O %I %h %T err:%E"

rotate 3
#以上三行设置了记录文件的地址、格式及保存几天的记录
#这部分内容必须放到auth iponly之前,否则不能记录

service
#这一行对windows是必须的,将会将3proxy安装为系统服务。
#对linux及非nt系统应替换为 daemon,以保证在后台运行。

auth iponly
#只使用ip进行用户印证
allow * 127.0.0.1 *
parent 1000 socks5 192.168.0.1 8080 usr pwd #父代理
proxy -a -p1234 #http代理
socks -a -p1235 #socks代理

flush
#使用flush清空服务列表,接下来就可以开设新的服务
allow * 127.0.0.1 *
parent 1000 socks4 127.0.0.1 9050 #tor父代理
parent 1000 socks5 192.168.0.1 8080 usr pwd
#这里实现了一个代理链,这部分原来的简单教程有一点错误。
#所有的请求都将通过tor后通过192.168.0.1,详细的解释可以参看后文
proxy -a -p1236

flush
allow * 222.205.4.245,127.0.0.1,10.214.32.121 *
proxy -a -p1237
#这是第四个代理端口,没有父代理

下面就两个问题深入说明一下:
1.tor本身是socks4a的代理,在设置文件中应该表示为socks4+,但由于192.168.0.1不支持域名解析,所以标为socks4,否则会代理链出错
2.代理链是这样的,由权重值(即1000)来分组,每组权重值相加必须为1000,一组即为一层
 使用手册中的例子:
 parent 1000 socks5 192.168.10.1 1080
 parent 1000 connect 192.168.20.1 3128
 parent 300 socks4 192.168.30.1 1080
 parent 700 socks5 192.168.40.1 1080
以上的代理链共分为三组,分别是第一层:192.168.10.1,第二层:192.168.20.1,第三层:30.1和40.1
当一个请求到达后,第一层和第二层是必须要经过的,在第三层中,有30%的机会通过30.1,70%的机会通过40.1
使用权重的时候注意保证每组权重和为1000

三、运行
在windows具有管理员权限的情况下,运行3proxy.exe --install就可以了,之后将会作为后台服务运行。
在linux下在文件的最前面加入
#!/usr/local/bin/3proxy/3proxy
之后
chmod +x 3proxy.sh,直接运行3proxy.sh就可以开设代理服务了。

3proxy使用方法的更多相关文章

  1. javaSE27天复习总结

    JAVA学习总结    2 第一天    2 1:计算机概述(了解)    2 (1)计算机    2 (2)计算机硬件    2 (3)计算机软件    2 (4)软件开发(理解)    2 (5) ...

  2. 3proxy代理软件文档说明

    官方英文原版说明:http://www.3proxy.ru/howtoe.asp 配置文件的简要说明:如果你的英文理解力好,可以试着研究一下他的手册. 以实例说明吧 nscache 65536域名解析 ...

  3. mapreduce多文件输出的两方法

    mapreduce多文件输出的两方法   package duogemap;   import java.io.IOException;   import org.apache.hadoop.conf ...

  4. 【.net 深呼吸】细说CodeDom(6):方法参数

    本文老周就给大伙伴们介绍一下方法参数代码的生成. 在开始之前,先补充一下上一篇烂文的内容.在上一篇文章中,老周检讨了 MemberAttributes 枚举的用法,老周此前误以为该枚举不能进行按位操作 ...

  5. IE6、7下html标签间存在空白符,导致渲染后占用多余空白位置的原因及解决方法

    直接上图:原因:该div包含的内容是靠后台进行print操作,输出的.如果没有输出任何内容,浏览器会默认给该空白区域添加空白符.在IE6.7下,浏览器解析渲染时,会认为空白符也是占位置的,默认其具有字 ...

  6. 多线程爬坑之路-Thread和Runable源码解析之基本方法的运用实例

    前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面 ...

  7. [C#] C# 基础回顾 - 匿名方法

    C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...

  8. ArcGIS 10.0紧凑型切片读写方法

    首先介绍一下ArcGIS10.0的缓存机制: 切片方案 切片方案包括缓存的比例级别.切片尺寸和切片原点.这些属性定义缓存边界的存在位置,在某些客户端中叠加缓存时匹配这些属性十分重要.图像格式和抗锯齿等 ...

  9. [BOT] 一种android中实现“圆角矩形”的方法

    内容简介 文章介绍ImageView(方法也可以应用到其它View)圆角矩形(包括圆形)的一种实现方式,四个角可以分别指定为圆角.思路是利用"Xfermode + Path"来进行 ...

随机推荐

  1. Windows 命令行

     1.d: 进入d盘  2.dir(directory)   显示当前文件夹下的所有内容  3.md (make directory) +文件夹名 在当前文件夹下创建文件夹  4.rd (remove ...

  2. java操作elasticsearch实现查询删除和查询所有

    后期博客本人都只给出代码,具体的说明在代码中也有注释. 1.查询删除 //查询删除:将查询到的数据进行删除 @Test public void test8() throws UnknownHostEx ...

  3. Cobalt Strike 服务器搭建及使用

    Cobalt Strike使用中的一些坑(一) http://www.cnblogs.com/miaodaren/articles/7829793.html cobaltstrike3.8服务器搭建及 ...

  4. Teradata的DBQL使用

    1.赋权 grant exec on DBC.DBQLAccessMacro to Sysdba with grant option; 2.刷新DBQL或TDWM缓存到磁盘,立即能在数据库中查询到刚刚 ...

  5. ES5-ES6-ES7_字符串与JOSN格式的数据相互转换以及深度克隆新对象

    这篇文章主要来讲HTML5中的新方法:parse()把字符串转换成josn格式的数据和stringify()把josn格式的数据转换成字符串 eval()方法的回顾 eval()方法可以将任何字符串解 ...

  6. WPF自定义控件(一)の控件分类

    一.什么是控件(Controls) 控件是指对数据和方法的封装.控件可以有自己的属性和方法,其中属性是控件数据的简单访问者,方法则是控件的一些简单而可见的功能.控件创建过程包括设计.开发.调试(就是所 ...

  7. [matlab] 4.M函数

    函数文件的编写 新建一个函数文件 函数的第一行的格式 :function [输出的参数] =函数名 (输入的参数) 输入和输出的参数可以有多个 保存函数文件的时候,注意文件名要和函数名一样 函数头和函 ...

  8. mysql锁2

    死锁: 指两个事务或者多个事务在同一资源上相互占用,并请求对方所占用的资源,从而造成恶性循环的现象. 出现死锁的原因: 系统资源不足: 进程运行推进的顺序不当: 资源分配不当. 产生死锁的四个必要条件 ...

  9. 在新建的python3环境下运行jupyter失败的原因

    在deeplearning中再运行jupyter notebook就出现了错误: (deeplearning) userdeMBP:~ user$ jupyter notebook -bash: ju ...

  10. face detection[FaceBoxes]

    该文来自<FaceBoxes: A CPU Real-time Face Detector with High Accuracy>.该文时间线是2018年1月 虽然人脸检测上随着深度学习的 ...