Socks v5 及其相关协议

2024-06-14 17:18
文章标签 协议 相关 socks v5

本文主要是介绍Socks v5 及其相关协议,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Socks v5 及其相关协议

  • SOCKS Protocol Version 5
      • 1. 简介
      • 2. 现有的协议
      • 3. 基于 TCP 的客户端
      • 4. 请求
      • 5. 地址
      • 6. 应答
      • 7. 基于 UDP 的客户端
      • 8. 安全性
      • 9. 参考
  • GSS-API Authentication for SOCKS V5
  • Username/Password Authentication for SOCKS V5
      • 1. 简介
      • 2. 协商
      • 3. 安全性
  • Socks 服务器参考实现
      • 1. 协商
      • 2. 请求及处理
      • 3. 转发


SOCKS Protocol Version 5

参考自 RFC1928 SOCKS Protocol Version 5。

1. 简介

  在愈来愈多的网络系统中,可以使用防火墙将内部网络从外部网络(如因特网)中脱离隔绝。这种防火墙一般以应用层网关的形式工作在两网络之间,并能提供应用层协议的访问;但随着愈来愈常见的、愈来愈复杂的应用层协议的到来,有必要提供一个通用框架使得这些应用层协议能穿透防火墙。

  这个框架(指 Socks)是为了 TCP/UDP 应用程序更方便地使用防火墙服务而设计的。它在概念上是处于应用层与传输层之间的“中介层”,因此其并不提供网络层等的相关服务(如 ICMP)。

2. 现有的协议

  目前,已存在一个 Socks v4 协议,但它为应用程序所提供的防火墙穿透是不安全的。Socks v5 扩展了旧的协议,增加了 UDP 转发、IPv6 等的支持。

  若无特别说明,所有出现在“消息格式表格”中的十进制数字均代表相应的字段的长度(以字节为单位);而某个字段的值以“X’hh’”十六进制的方式进行表示;文字“可变”则表示该字段的(值,或内容)长度是可变长的,或该长度是由数据类型字段决定的。

3. 基于 TCP 的客户端

  (基于TCP的)客户端要与防火墙外的终端进行通信之前,需要先与 Socks 服务器(默认端口:1080)建立一个 TCP 连接。建立连接后:客户端与服务端握手(Negotiation,协商)——即选择认证方式并进行验证,并以此决定接受或拒绝该连接。

  客户端连接到服务器后,需要立即发送“协商版本”与“认证方式”:

VersionN_MethodMethods
1字节1字节1~255字节

  在该版本中,Version 字段总是为 X'05;N_Method 字段表明了 Methods 字段的长度(以字节为单位)。服务器需要在 Methods 字段中选一个方法并返回以下消息给客户端。

VersionMethod
1字节1字节

  若服务器返回的 Method 是 X'FF',则客户端必须关闭该连接(这表明服务端不支持客户端所列出的所有方法)。

  其中,当前已定义的方法有:

  • X'00':无需认证;
  • X'01':GSSAPI;
  • X'02':用户名/密码;
  • X'03' ~ X'7F':由IANA所分配的;
  • X'80' ~ X'FE':为私人方法所保留的;
  • X'FF':没有可支持的方法;

  之后,客户端与服务端将根据所选定的验证方法进入一个“子协商过程(Sub-Negotiation)”。符合标准的 Socks v5 实现必须支持 GSSAPI 方式验证,并应支持用户名/密码方式认证。

4. 请求

  一旦子协商过程结束后,客户端就要发送详细的请求信息。

  Socks v5 的请求格式如下:

VersionCommandReserveAddressTypeDestinationAddressDestinationPort
1字节1字节1字节,总为 X'00'1字节可变长度2字节

  其中:

  • Version:

这篇关于Socks v5 及其相关协议的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1061026

相关文章

sqlite3 相关知识

WAL 模式 VS 回滚模式 特性WAL 模式回滚模式(Rollback Journal)定义使用写前日志来记录变更。使用回滚日志来记录事务的所有修改。特点更高的并发性和性能;支持多读者和单写者。支持安全的事务回滚,但并发性较低。性能写入性能更好,尤其是读多写少的场景。写操作会造成较大的性能开销,尤其是在事务开始时。写入流程数据首先写入 WAL 文件,然后才从 WAL 刷新到主数据库。数据在开始

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。

两个月冲刺软考——访问位与修改位的题型(淘汰哪一页);内聚的类型;关于码制的知识点;地址映射的相关内容

1.访问位与修改位的题型(淘汰哪一页) 访问位:为1时表示在内存期间被访问过,为0时表示未被访问;修改位:为1时表示该页面自从被装入内存后被修改过,为0时表示未修改过。 置换页面时,最先置换访问位和修改位为00的,其次是01(没被访问但被修改过)的,之后是10(被访问了但没被修改过),最后是11。 2.内聚的类型 功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。 顺序内聚:

log4j2相关配置说明以及${sys:catalina.home}应用

${sys:catalina.home} 等价于 System.getProperty("catalina.home") 就是Tomcat的根目录:  C:\apache-tomcat-7.0.77 <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" /> 2017-08-10

Node Linux相关安装

下载经编译好的文件cd /optwget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.gztar -xvf node-v10.15.3-linux-x64.tar.gzln -s /opt/node-v10.15.3-linux-x64/bin/npm /usr/local/bin/ln -s /opt/nod

git ssh key相关

step1、进入.ssh文件夹   (windows下 下载git客户端)   cd ~/.ssh(windows mkdir ~/.ssh) step2、配置name和email git config --global user.name "你的名称"git config --global user.email "你的邮箱" step3、生成key ssh-keygen

zookeeper相关面试题

zk的数据同步原理?zk的集群会出现脑裂的问题吗?zk的watch机制实现原理?zk是如何保证一致性的?zk的快速选举leader原理?zk的典型应用场景zk中一个客户端修改了数据之后,其他客户端能够马上获取到最新的数据吗?zk对事物的支持? 1. zk的数据同步原理? zk的数据同步过程中,通过以下三个参数来选择对应的数据同步方式 peerLastZxid:Learner服务器(Follo

【Go】go连接clickhouse使用TCP协议

离开你是傻是对是错 是看破是软弱 这结果是爱是恨或者是什么 如果是种解脱 怎么会还有眷恋在我心窝 那么爱你为什么                      🎵 黄品源/莫文蔚《那么爱你为什么》 package mainimport ("context""fmt""log""time""github.com/ClickHouse/clickhouse-go/v2")func main(

2024.9.8 TCP/IP协议学习笔记

1.所谓的层就是数据交换的深度,电脑点对点就是单层,物理层,加上集线器还是物理层,加上交换机就变成链路层了,有地址表,路由器就到了第三层网络层,每个端口都有一个mac地址 2.A 给 C 发数据包,怎么知道是否要通过路由器转发呢?答案:子网 3.将源 IP 与目的 IP 分别同这个子网掩码进行与运算****,相等则是在一个子网,不相等就是在不同子网 4.A 如何知道,哪个设备是路由器?答案:在 A

rtmp流媒体编程相关整理2013(crtmpserver,rtmpdump,x264,faac)

转自:http://blog.163.com/zhujiatc@126/blog/static/1834638201392335213119/ 相关资料在线版(不定时更新,其实也不会很多,也许一两个月也不会改) http://www.zhujiatc.esy.es/crtmpserver/index.htm 去年在这进行rtmp相关整理,其实内容早有了,只是整理一下看着方