3proxy使用方法
转自: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 -p1236flush
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使用方法的更多相关文章
- javaSE27天复习总结
JAVA学习总结 2 第一天 2 1:计算机概述(了解) 2 (1)计算机 2 (2)计算机硬件 2 (3)计算机软件 2 (4)软件开发(理解) 2 (5) ...
- 3proxy代理软件文档说明
官方英文原版说明:http://www.3proxy.ru/howtoe.asp 配置文件的简要说明:如果你的英文理解力好,可以试着研究一下他的手册. 以实例说明吧 nscache 65536域名解析 ...
- mapreduce多文件输出的两方法
mapreduce多文件输出的两方法 package duogemap; import java.io.IOException; import org.apache.hadoop.conf ...
- 【.net 深呼吸】细说CodeDom(6):方法参数
本文老周就给大伙伴们介绍一下方法参数代码的生成. 在开始之前,先补充一下上一篇烂文的内容.在上一篇文章中,老周检讨了 MemberAttributes 枚举的用法,老周此前误以为该枚举不能进行按位操作 ...
- IE6、7下html标签间存在空白符,导致渲染后占用多余空白位置的原因及解决方法
直接上图:原因:该div包含的内容是靠后台进行print操作,输出的.如果没有输出任何内容,浏览器会默认给该空白区域添加空白符.在IE6.7下,浏览器解析渲染时,会认为空白符也是占位置的,默认其具有字 ...
- 多线程爬坑之路-Thread和Runable源码解析之基本方法的运用实例
前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面 ...
- [C#] C# 基础回顾 - 匿名方法
C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...
- ArcGIS 10.0紧凑型切片读写方法
首先介绍一下ArcGIS10.0的缓存机制: 切片方案 切片方案包括缓存的比例级别.切片尺寸和切片原点.这些属性定义缓存边界的存在位置,在某些客户端中叠加缓存时匹配这些属性十分重要.图像格式和抗锯齿等 ...
- [BOT] 一种android中实现“圆角矩形”的方法
内容简介 文章介绍ImageView(方法也可以应用到其它View)圆角矩形(包括圆形)的一种实现方式,四个角可以分别指定为圆角.思路是利用"Xfermode + Path"来进行 ...
随机推荐
- vue 之 .sync 修饰符
在一些情况下,我们可能会需要对一个 prop (父子组件传递数据的属性) 进行“双向绑定”. 在vue 1.x 中的 .sync 修饰符所提供的功能.当一个子组件改变了一个带 .sync 的prop的 ...
- Lingo求解线性规划案例4——下料问题
凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 造纸厂接到定单,所需卷纸的宽度和长度如表 卷纸的宽度 长度 5 7 9 10000 30000 20000 工 ...
- Django 中的 日志处理
日志处理: 上线后必须使用 便于以后的 维护 管理 根据日志 处理 BUG 在 项目中 定义一个 存放日志的 文件夹 log 存放所有 等级 的 日志 配置: 将下面的日志的 配置 写入 django ...
- python之常用模块(续)
time模块 random模块 sys模块 os模块 序列化模块 time模块 有三种方式表示 在Python中,通常有三种方式来表示时间:时间戳.元组(struct_time).格式化的时间字符串 ...
- sqlserver 2000数据压缩解决方法
--sqlserver 2000数据压缩解决方法. /************************************************************************* ...
- RocketMQ实现事务消息
在RocketMQ4.3.0版本后,开放了事务消息这一特性,对于分布式事务而言,最常说的还是二阶段提交协议,那么RocketMQ的事务消息又是怎么一回事呢,这里主要带着以下几个问题来探究一下Rocke ...
- 【转】VMware 14 Pro安装mac os 10.12
一.准备工作 [1]资源下载 VMware Workstation Pro 14 已安装或自行安装 Unlocker (链接: https://pan.baidu.com/s/1dG5jkuH 密码: ...
- day25 Python __setattr__
#__getattr__只有在使用点调用属性且属性不存在的时候才会触发 class Foo: x=1 def __init__(self,y): self.y=y def __getattr__(se ...
- day22 Pythonpython 本文xml模块
一.xml介绍 xml是实现不同语言或者程序直接进行数据交换的协议,跟json差不多,单json使用起来更简单.不过现在还有很多传统公司的接口主要是xml xml跟html都是标签语言 我们主要学习的 ...
- Uncaught ReferenceError: layer is not defined
错误详细信息,如下: Uncaught ReferenceError: layer is not defined' 关键词就是not defined 未定义,那么解决方案就是给它定义. 原来的问题代码 ...