Socks协议
来源:互联网 发布:java 实现 ping ip 编辑:程序博客网 时间:2024/06/05 03:13
一、基本概念
利用Socks协议,可以使得两个节点之间的连接通过一个中转节点中转,从而可以加密数据,穿越防火墙的限制。
Socks协议中有两种身份:Socks Client和Socks Server。
Socks协议工作在OSI七层体系的第5层——会话层。
二、基本原理
现在有A和B两个节点,A节点上运行Socks Client实现程序,B节点上运行Socks Server实现程序。
现在A想要请求网络服务,可以将该请求传递给A上的Socks Client,然后Socks Client与Socks Server建立数据连接,该连接可以使用选定的加密算法进行加密,接着Socks Client可以将A的网络服务请求传递给Socks Server,最后由Socks Server代为进行网络服务请求,并将得到的请求结果数据原路返回给A。
注意:在以上过程中,只有Socks Client和Socks Server之间的连接可以采用选定的加密算法进行加密
三、用途
正如基本概念中所述,使用Socks协议可以达到“加密数据,穿越防火墙”的目标。
比如有以下两个情形。
3.1、情形1
现在有A,B两个节点,另有防火墙C,A处于C内,B处于C外,C能够监听与A进行的连接,如果连接中出现特定的关键词,C能够将该连接断开。
现在A想要突破防火墙C的限制,使得可以与B进行连接,传输任意数据。
可以采用Socks协议。
具体方案如下:
另外搭设一个节点D,D必须在C外。
D上运行Socks Server实现程序,A上运行Socks Client实现程序。
现在A与B的连接通过D进行,具体是A对B的连接请求被传递给A上的Socks Client,然后Socks Client与D上的Socks Server连接,Socks Server再代为请求与B进行连接,由于A上的Socks Client与D上的Socks Server之间的连接可被Socks协议加密算法加密,因而防火墙C就不能够检查关键词是否存在,也就不能够断开A与D的连接,自然也就不能断开A与B通过D而得到的连接。
3.2、情形2
现在有A,B两个节点,另有防火墙C,A处于C内,B处于C外,C中把B加入了黑名单,使得在C内的A不能够访问B
现在A想要突破防火墙C的限制,使得可以与B进行连接。
可以采用Socks协议。
具体方案如下:
另外搭设一个节点D,D必须在C外,且要求满足D节点不在C的黑名单内。
D上运行Socks Server实现程序,A上运行Socks Client实现程序。
现在A与B的连接通过D进行,具体是A对B的连接请求被传递给A上的Socks Client,然后Socks Client与D上的Socks Server连接,Socks Server再代为请求与B进行连接,由于D不在C的黑名单内,A与D可进行连接。从而A就可通过D与B连接。
四、协议实现
4.1、Socks Server的实现程序
Antinat
Dante
Srelay
SS5
Sun Java System Web Proxy Server
WinGate
OpenSSH中的sshd实现程序
shadowsocks中的server实现程序
4.2、Socks Client的实现程序
OpenSSH中的ssh实现程序
Putty
利用Socks协议,可以使得两个节点之间的连接通过一个中转节点中转,从而可以加密数据,穿越防火墙的限制。
Socks协议中有两种身份:Socks Client和Socks Server。
Socks协议工作在OSI七层体系的第5层——会话层。
二、基本原理
现在有A和B两个节点,A节点上运行Socks Client实现程序,B节点上运行Socks Server实现程序。
现在A想要请求网络服务,可以将该请求传递给A上的Socks Client,然后Socks Client与Socks Server建立数据连接,该连接可以使用选定的加密算法进行加密,接着Socks Client可以将A的网络服务请求传递给Socks Server,最后由Socks Server代为进行网络服务请求,并将得到的请求结果数据原路返回给A。
注意:在以上过程中,只有Socks Client和Socks Server之间的连接可以采用选定的加密算法进行加密
三、用途
正如基本概念中所述,使用Socks协议可以达到“加密数据,穿越防火墙”的目标。
比如有以下两个情形。
3.1、情形1
现在有A,B两个节点,另有防火墙C,A处于C内,B处于C外,C能够监听与A进行的连接,如果连接中出现特定的关键词,C能够将该连接断开。
现在A想要突破防火墙C的限制,使得可以与B进行连接,传输任意数据。
可以采用Socks协议。
具体方案如下:
另外搭设一个节点D,D必须在C外。
D上运行Socks Server实现程序,A上运行Socks Client实现程序。
现在A与B的连接通过D进行,具体是A对B的连接请求被传递给A上的Socks Client,然后Socks Client与D上的Socks Server连接,Socks Server再代为请求与B进行连接,由于A上的Socks Client与D上的Socks Server之间的连接可被Socks协议加密算法加密,因而防火墙C就不能够检查关键词是否存在,也就不能够断开A与D的连接,自然也就不能断开A与B通过D而得到的连接。
3.2、情形2
现在有A,B两个节点,另有防火墙C,A处于C内,B处于C外,C中把B加入了黑名单,使得在C内的A不能够访问B
现在A想要突破防火墙C的限制,使得可以与B进行连接。
可以采用Socks协议。
具体方案如下:
另外搭设一个节点D,D必须在C外,且要求满足D节点不在C的黑名单内。
D上运行Socks Server实现程序,A上运行Socks Client实现程序。
现在A与B的连接通过D进行,具体是A对B的连接请求被传递给A上的Socks Client,然后Socks Client与D上的Socks Server连接,Socks Server再代为请求与B进行连接,由于D不在C的黑名单内,A与D可进行连接。从而A就可通过D与B连接。
四、协议实现
4.1、Socks Server的实现程序
Antinat
Dante
Srelay
SS5
Sun Java System Web Proxy Server
WinGate
OpenSSH中的sshd实现程序
shadowsocks中的server实现程序
4.2、Socks Client的实现程序
OpenSSH中的ssh实现程序
Putty
shadowsocks中的client实现程序
参考文献:
[1]https://en.wikipedia.org/wiki/SOCKS
0 0
- Socks协议
- Socks协议
- SOCKS 5协议详解
- SOCKS协议RFC
- SOCKS 5协议详解
- SOCKS 5协议详解
- SOCKS 5协议详解
- SOCKS 5协议详解
- SOCKS 5协议详解
- SOCKS 5协议详解
- Socks协议实现
- SOCKS 5协议详解
- SOCKS/HTTP代理协议解析
- Socks5代理协议 Socks V5
- socks代理服务器协议的说明
- 使用Socks协议穿越防火墙
- SOCKS v5 协议 工作流程
- socks代理服务器协议的说明
- android studio 导入源码
- 第五周第三天
- 更新表所有id的存储过程
- HDU-4762 Cut the Cake
- A,B两个整数集合,设计一个算法求他们的交集,尽可能的高效(牛客网)
- Socks协议
- Product of Array Except Self
- Spark-1.4.0单机部署(Hadoop-2.6.0采用伪分布式)【已测】
- Linux下如何搭建WEB服务器教程(apach)
- Python多进程编程
- MYSQL 字符集 & 校验规则
- 【HDU1698】【线段树成段更新】
- android中Intent的用法总结
- 遗传算法