2023年12月5日发(作者:年事已高)
SOCKS 5代理 使用手册
一.简单介绍
SOCKS5代理,在网络传输的过程中充当中间传递者的角色,并且以它速度快、传输协议广泛和易用性获得了多方面的认可,例如LeapFTP、FlashGat、QQ等各个类型网络软件都支持SOCKS5代理就是最好的证明。
在实际应用中最常用的功能有2方面:
1、伪装来源
大家都知道当“客户”组件与“服务器”组件建立连接的时候,服务器是可以取回客户的连接地址的,有时候为了某种原因大家可能会不想让服务器知道客户的地址,那么可以通过SOCKS5代理连接“服务器”组件,这样在“服务器”组建那里得到的客户地址就是SOCKS5代理服务器的地址,从而达到隐藏真实地址的目的。
2、局域网通信
在网络飞速发展的今天,局域网内多机公用一个IP地址的实际组网结构已经是司空见惯了,但是这给网络通信带来了巨大的困难,局域网内部与外部的连接、不同局域网之间的连接,已经成了很扰人的一件事,而通过SOCKS5代理就是一种理想的解决方法。
如果要使用SOCKS5代理就需要1台支持SOCKS5代理的服务器,可以是从网络上寻找的免费代理,也可以自己架设个SOCKS5代理服务器。如果该服务器是需要身份验证的,那么你就需要从管理员那里的得到用户名、密码才可以正常的使用。
架设SOCKS5代理服务器的软件有:Ccproxy。
SOCKS5 的基本通信过程,假设现在需要使A机通过代理服务器连接B机,在连接的时候先用A连接代理服务器,然后让代理服务器再连接B机,当连接成功以后,A、B机就可以正常的通信了,但是无论数据是A机发向B机还是B机发向A机都是通过代理服务器转发的。
代理服务器
A机 B机
所以数据传输的流畅性很大程度上取决于您选择的代理服务器的性能优良。
二.认识SOCKS5协议
如果您的机器具有一个合法的Internet IP地址,或者您利用自己机器上的调制解调器拨号上网,可以自由和Internet上任何主机沟通,那么您通常不必关心 SOCKS5 协议。
SOCKS5协议对于处在内部网络中的机器,需要透过网络中某些可以联通外部 Internet 的机器访问外部时有用。
SOCKS5是一个代理协议,它在使用 TCP/IP协议通讯的前端机器和服务器机器之间扮演一个中介角色,使得内部网中的前端机器变得能够访问Internet网中的服务器,或者使通讯更加安全。
SOCKS5 服务器通过将前端发来的请求转发给真正的目标服务器, 模拟了一个前端的行为。在这里,前端和SOCKS5之间也是通过TCP/IP协议进行通讯,前端将原本要发送给真正服务器的请求发送给SOCKS5服务器,然后SOCKS5服务器将请求转发给真正的服务器。SOCKS5服务器在将通讯请求发送给真正服务器的过程中,对于请求数据包本身不加任何改变。SOCKS5服务器接收到真正服务器的响应后,也原样转发给前端。
因此,SOCKS5 协议是一种代理协议,对于各种基于 TCP/IP的应用层协议都能够适应,几乎是万能的。它虽然不能理解自己转发的数据的内部结构,但是它能够忠实地转发通讯包,完成协议本来要完成的功能。
与SOCKS5协议不同,HTTP代理是通过HTTP协议进行的,HTTP代理服务器软件了解通讯包的内部结构,在转发过程中还要对通讯进行某种程序的修改和转换。和HTTP代理协议不同,SOCKS5实际上是一个传输层的代理协议。
可以想象,如果每个具体的应用层协议都要设计对应的代理协议表达办法,一个特定的代理服务器无论如何也支持不过来那么多新出现的协议。因此,可以说SOCKS5的出现缓解了各种具体协议需要专门设计代理协议的困难局面。
不过,并不是凡是使用基于TCP/IP协议的应用协议的软件,都可以无条件地透过SOCKS5服务器进行通讯,还要求前端软件本身具有SOCKS5的接口,才能利用SOCKS5代理服务器。
一个支持SOCKS5协议的前端,通常具有两种运行状态:
1、直接通讯状态,不使用SOCKS5接口。这时的通讯是针对最终服务器进行的。
2、SOCKS5状态。使用 SOCKS5 接口将本来要发送给最终服务器的请求发送给 SOCKS5
服务器。在前端和 SOCKS5 服务器进行初始化会话的时候,前端告诉了 SOCKS5 服务器关于最终服务器的 IP 地址和端口信息,所以 SOCKS5服务器能够忠实按照前端的要求启动和最终服务器的通讯过程。
应用实例如下:
·用SOCKS代理上QQ,可隐藏真实IP地址,方法如下:
1.启动QQ,登陆后右击下方开始菜单处的QQ小图标,选择“系统参数”→“网络设置”
2.在服务器地址与端口处填QQ服务器地址,最好数字的。如5202.104.129.2515端口:8000
3.在“使用SOCKS5代理服务器”前打上勾,在“代理服务器地址”与“端口号”处,(QQ代理的端口号一般为1080)分别填上最新SOCKS代理(SOCKS4也可用)。
4.在“校验用户名”与“校验用户密码”处全部删空,然后点“测试”,如能通过,则说明代理服务器工作正常,否则换一个。
5.按“确定”,点击任务栏的QQ小图标,先离线再上线即可。
·在FTP软件中我们可以使用SOCKS4/SOCKS5代理服务器,常见的FTP工具中的代理设置方法如下:
1.FlashFXP3.0以前版本中设置代理:菜单栏“选项”→参数设置→代理和防火墙,然后在“代理服务器”项中选择代理类型,填写代理。
2.FlashFXP3.0以后版本中设置代理:菜单栏“选项”→参数设置→连接,然后在“代理服务器”项中选择代理类型,填写代理。
3.CuteFTP XP 5.0.2 中文版中设置代理:菜单栏“编辑”→设置→连接→SOCKS→选择代理类型,如SOCKS4或者SOCKS5,并填写代理
4.LeapFtp中设置代理:菜单栏“选项”→参数设置→常规→代理,将“使用代理”前面的方框钩上,然后填写代理,并将下面的SOCKS防火墙钩上。
三.向导的使用
步骤1:这是欢迎界面,概要的说明SOCKS5代理,单击“下一步”。
步骤2:选择一种代理模式,如果在您的程序里是第一次本向导,请选中“创建SOCKS代理窗口”,如果在程序里已经创建过就不需要选中。
关于代理方式,可以多选,也可以单选。
步骤3:设置代理服务器,请根据您找到的代理填写数据,如果您的代理服务器需要用户名与密码,请选中“需要身份验证”并填写用户名和密码,如果您手里没有现成的代理服务器,可以按“寻找免费的SOCKS5代理”按钮,可以在网上寻找到免费的代理,不过这些代理天南地北的哪里都有不是很稳定,所以如果想做实用软件,请您自己建立个代理服务器。
如果您暂时不填写也可以在 向导创建出的“SOCKS5代理窗口”里设置也可以。
注意:在程序的执行过程中可以通过更改“SOCKS5代理窗口”里的属性来达到动态连接不同代理服务器的目的。
步骤4:完成向导,如果是第一次使用可以选中“打开例程”。
四.使用例程
用本向导完成设置以后(请使用“打开例程”),就可以使用SOCKS5 代理了,生成的程序使用了类模块+数组变量的方法,当每次新建一个连接的时候实际上就是新建了一个数组成员,他们之间会互不干预的完成好自己的工作,您只需要了解,怎么用他们发送数据和接收数据就可以了。
当您同时使用了3种模式以后,大家看看自己的程序里会有哪些变化。如下图所示:
从上图可以看出新加了以下:3个类、3个全局变量、一个代理窗口,根据你选择的不同代理模式也会有所不同。
在使用之前您需要设置一下SOCKS5代理服务器的地址和端口,如果需要的话还需要输入用户名和密码(如果在向导已经设置 此步骤可以跳过)。
下面通过使用连接模式的实例看看到底怎样使用SOCKS代理。
先用向导创建带例程的代码。
·连接模式
现在来看看如何连接,双击“新建连接”看看需要做什么:
代码如下:
大家可以清楚地看到,只有3行代码,分别解释如下:
第一行:这里先用个局部变量连接,参数表如下:
子程序名:连接
参数<1>的名称为“处理子程序”,类型为“子程序指针”。注明:参见本子程序内部的注释部分,需要一个文本型参数。这里用这个子程序来处理各种事件,例如:收到数据、连接成功、连接错误等等。
参数<2>的名称为“目的服务器地址”,类型为“文本型”。注明:可以为域名或ip地址。
参数<3>的名称为“目的服务器端口”,类型为“整数型”。
第二行:把这个局部变量加入到全局变量,注意这一步是非常必要的,只有加入到全局变量程序才可以正常的运行。
第三行:显示一下现在多少个连接数。
下面着重介绍一下:“处理子程序”。通过这个子程序,大家可以了解许多东西,注意这个子程序有个文本型参数,这个参数由2部分组成,第一位文本表示的是这个事件的类型,除第一位以外的文本表示的是数组成员编号,为了简单的取得“第一位文本”和“剩下的文本”,程序中分别做了两个子程序来方便处理,代码是:
<整数型>取指令标记(参数)
<整数型>取指令数组标志(参数)
下面是一个用户自定义子程序,主要是显示了各种消息,大家可以参考看看:
大家可以看到,根据“取指令标记(参数)”返回的不同,得到的信息也不一样,其具体意义表示:
' 0:实际数据 可用 取回数据() 返回实际数据
' 1:未知的连接方式(除无身份验证和用户名/密码方式以外的)
' 2:用户名或密码错误
' 3:连接目标服务器时错误
' 4:连接成功
' 9:连接断开
例如当程序收到“4”以后就说明连接成功了,如果以后收到“0”则表明收到了数据,可以用以下代码:
代理服务器_TCP_客户 [取指令数组标志 (参数)].取回数据 ()
取回数据。直到返回“9”说明连接断开。
下面看看如何发送数据,双击代理测试窗口中的“发送”按钮来看看代码: 这里需要注意,程序是通过全局变量的数组成员来发送数据,所以需要知道到底用哪个数组。所以这里需要验证一下是否数组越界。
这样程序中连接模式的功能就全部介绍完了,大家可以实际演练一下,过程是:新建一个易程序,然后新建个空白窗口放入如下组件:服务器、按钮、标签、编辑框。然后输入代码,让标签显示服务器进入的客户地址,让按钮把编辑框的内容发送出去,如下图所示:
大家发现没有,程序虽然是通过代理服务器和这个服务器组件来连接的,但是和普通的客户组件直接连接没有任何的区别。
现在大家一起运行2个程序,因为是本机连接自己,所以在地址栏中输入本机的地址和端口,然后按“新建连接”。
当提示“连接成功”以后表示连接成功。
注意:红矩形内显示1 ,因为刚才程序中新加入了个全局变量成员。
下面大家看看有服务器组件那个窗口,如下图所示:
注意:标签里显示的并不是实际的客户组件地址,是代理服务器的地址,表明已通过代理连接成功。现在两个程序相互发送数据看看。如下图所示:
现在为大家总结一下整个过程,当新连接的时候先用个局部变量连接并关联个处理的子程序,然后把这个局部变量加入到全局变量,此后所有的事件处理都在那个处理子程序内部完成。
·监听模式
这个模式以及下面的UDP模式都和连接模式的使用方法基本一样,都是先用局部变量连接并关联个子程序,然后再加入全局变量,然后通过那个子程序的获得各种消息,大家双击监听模式里的“连接”按钮来看看代码就明白了。
看看是不是和连接模式差不多呢?
大家再来看看这个连接的子程序:
大家可以看到,根据“取指令标记(参数)”返回的不同,得到的信息也不一样,其具体意义表示如下:
' 0:实际数据 可用 取回数据() 返回实际数据
' 1:未知的连接方式(除无身份验证和用户名/密码方式以外的)
' 2:用户名或密码错误
' 3:绑定失败
' 4:绑定成功 可采用 取回端口() 返回监听的窗口
' 5:客户进入 可采用 取回地址() 返回连接文本 和格式:“IP:端口”
' 9:连接断开
注意:并不是所有的代理服务器都支持这个模式,一般网上免费的代理都只支持连接模式,大家可以自己架设一个简易的代理平台,例如最常用的CCProxy就是个不错的代理服务器软件,大家可以找来看看,试用版只允许3个用户,但对于实验来说已经足够了。
由于现在是在代理的服务器上监听一个端口,所以这个端口也只能够有服务器分发,不 能自定义,服务器给你哪个,你就只能监听哪个,并且当一个客户进入以后就不能再有第二个客户连接了,否则会迫使客户与服务器断开连接,最好的解决办法就是新建个代理发送部分和连接模式一样。大家可以自行学习。
·UDP模式
这个模式和监听模式用法一样,大家就自行学习吧,不过需要注意端口冲突问题,每个成员都会占用你本机的1个端口。
注意:这个端口并不是代理服务器给你开的端口,致使你和代理服务器之间通信的端口,如果你不明白的话,就记住不要让这个端口被重复占用就可以了。
本文发布于:2023-12-05 17:32:41,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/zhishi/a/1701768761111932.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:SOCKS-5代理使用手册1.0教学文稿.doc
本文 PDF 下载地址:SOCKS-5代理使用手册1.0教学文稿.pdf
留言与评论(共有 0 条评论) |