SOCKS5协议

SOCKS5协议连接过程

SOCKS5服务器默认监听的端口是1080端口

  1. 连接到服务器:SOCKS5客户端会通过TCP三次握手与SOCKS5服务器建立连接
  2. 协商过程:首先SOCKS5客户端会发送一个请求到服务器。告诉服务器自己支持什么方法。并带有一个方法列表(例如:A,B,C)。然后SOCKS5服务端会返回一个请求,告诉客户端要使用的方法(例如:B) 然后客户端就会用过服务器选定的方法来验证。验证通过之后就会开始请求代理访问了
  3. 请求访问:客户端首先会向SOCKS5服务器发送一个请求。 告诉SOCKS5服务器自己想要发送的请求(例如: 想要通过TCP连接baidu.com443端口)。然后SOCKS5服务器会向baidu.com443端口发送一个请求连接。将SOCKS5请求的内容原封不动的发送给目标。 然后再将目标的返回包原封不动的发送给SOCKS客户端
  4. 断开连接: 当客户端不再需要通过SOCKS5代理访问目标服务器时,会向SOCKS5服务器发送一个断开连接的请求。此请求通常是一个简单的命令,告知服务器关闭当前的连接会话。SOCKS5服务器收到断开请求后,会终止与目标服务器之间的连接,并且返回一个确认的响应给客户端,表示连接已经成功断开。

协商过程中客户端首次给服务器发送的请求包含1个byte的版本号 1个byte的支持的方法数 可变长的byte的具体的方法列表

VERSIONMETHODSMETHODS
111 to 255

支持的身份验证方法列表

  • X‘00’ :无认证
  • X’01’:GASSAPI身份验证
  • X’02’:用户/密码身份验证
  • X’03’: 帐号令牌身份验证

SOCKS5服务器返回给SOCKS5客户端的包中包含了1个byte的版本号 1个byte的要采用的方法

VERMETHOD
11

请求过程中客户端向服务端中发送的请求中包含1个byte的版本号 1个版本的命令 1个byte的RSV 1个byte的ATYP 可变byte的目的地址 2个byte的端口

VERCMDRSVATYPDST.ADDRDST.PORT
11X’00’1Variable2

VER:协议版本号,固定值 X’05’,表示 SOCKS5 协议

CMD常见的命令类型

  • X’01’:连接 (CONNECT)
  • X’02’:绑定 (BIND)
  • X’03’:代理 (UDP ASSOCIATE)

RSV:保留字段,固定值 X’00’

ATYP:地址类型,表示目标地址的类型:

  • X’01’: IPv4 地址
  • X’03’: 域名地址
  • X’04’: IPv6 地址

DST.ADDR:目标地址,根据 ATYP 类型而变化:

  • 如果 ATYP 为 X’01’,DST.ADDR 为 4 字节的 IPv4 地址
  • 如果 ATYP 为 X’03’,DST.ADDR 为 域名字符串
  • 如果 ATYP 为 X’04’,DST.ADDR 为 16 字节的 IPv6 地址

DST.PORT:目标端口,使用网络字节序表示

SOCKS5服务端给客户端返回的包中会包含1个byte的版本号 1个byte的REP 1个byte的RSV 1个byte的ATYP 可变BYTE的绑定地址 2byte的绑定端口

VERREPRSVATYPBND.ADDRBND.PORT
11X’00’1Variable2

REP:响应结果,表示连接是否成功:

  • X’00’: 成功
  • X’01’: 连接到目标地址失败
  • X’02’:拒绝连接
  • X’03’:目标网络不可达
  • X’04’:目标主机不可达
  • X’05’:连接被拒绝
  • X’06’:目的主机不可达

其他的值与请求中的一一对应

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/59451.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Perforce《2024游戏技术现状报告》Part2:游戏引擎、版本控制、IDE及项目管理等多种开发工具的应用分析

游戏开发者一直处于创新前沿。他们的实践、工具和技术受到各行各业的广泛关注,正在改变着组织进行数字创作的方式。 近期,Perforce发布了《2024游戏技术现状报告》,通过收集来自游戏、媒体与娱乐、汽车和制造业等高增长行业的从业者、管理人…

美国历任总统特征数据-多个字段(1789-2024年)

数据简介:美国历任总统数据集是一个涵盖了从美国建国以来所有总统的详细信息的综合性数据集。该数据集不仅包含了每位总统的基本信息(如姓名、任期、党派等),还涵盖了他们在任期间的重要政策、经济指标、国内外事件等关键数据。通…

视频QoE测量学习笔记(二)

A Survey on Bitrate Adaptation Schemes for Streaming Media Over HTTP论文学习笔记 自适应比特率(ABH或ABS) 是一种旨在通过 HTTP 网络有效地流式传输文件的技术。向用户的视频播放器提供多个相同内容、不同大小文件的文件,然后客户端选…

HTML 基础标签——文本内容标签 <ul>、<ol>、<blockquote> 、<code> 等标签的用法详解

文章目录 1. 标题标签2. 段落标签3. 文本格式化标签4. 列表标签4.1 无序列表 `<ul>`4.2 有序列表 `<ol>`5. 引用标签5.1 块引用 `<blockquote>`5.2 行内引用 `<q>`5.3 作品引用 `<cite>`6. 代码和预格式文本标签6.1 代码标签 `<code>`6.2 …

论文阅读笔记-Get To The Point: Summarization with Pointer-Generator Networks

前言 最近看2021ACL的文章&#xff0c;碰到了Copying Mechanism和Coverage mechanism两种技巧&#xff0c;甚是感兴趣的翻阅了原文进行阅读&#xff0c;Copying Mechanism的模型CopyNet已经进行阅读并写了阅读笔记&#xff0c;如下&#xff1a; 论文阅读笔记&#xff1a;Copyi…

PDF多功能工具箱 PDF Shaper v14.6

如今对PDF处理的软件很多都是只是单一的功能。PDF Shaper给你完全不同的体验&#xff0c;因为PDF Shaper是一款免费的PDF工具集合的软件。有了PDF Shaper&#xff0c;你以后再也不用下载其他处理PDF的软件了。PDF Shaper的功能有&#xff1a;合并&#xff0c;分割&#xff0c;加…

【算法】(Python)贪心算法

贪心算法&#xff1a; 又称贪婪算法&#xff0c;greedy algorithm。贪心地追求局部最优解&#xff0c;即每一步当前状态下最优选择。试图通过各局部最优解达到最终全局最优解。但不从整体最优上考虑&#xff0c;不一定全局最优解。步骤&#xff1a;从初始状态拆分成一步一步的…

vue常见题型(1-10)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 2.2双向绑定的原理是什么vue框架采用的是数据双向绑定的方式&#xff0c;由三个重要部分构成2.2.1.ViewModel2.2.2 双向绑定2.2.3.1.编译Compile2.2.3.2.依赖收集 3…

论文阅读:人工智能赋能源网荷储协同互动的应用及展望

论文阅读&#xff1a;人工智能赋能源网荷储协同互动的应用及展望 [1]王继业.人工智能赋能源网荷储协同互动的应用及展望[J].中国电机工程学报,2022,42(21):7667-7682.DOI:10.13334/j.0258-8013.pcsee.220538. 文章目录 论文阅读&#xff1a;人工智能赋能源网荷储协同互动的应用…

虚幻引擎5(UE5)学习教程

虚幻引擎5&#xff08;UE5&#xff09;学习教程 引言 虚幻引擎5&#xff08;Unreal Engine 5&#xff0c;简称UE5&#xff09;是Epic Games开发的一款强大的游戏引擎&#xff0c;广泛应用于游戏开发、影视制作、建筑可视化等多个领域。UE5引入了许多先进的技术&#xff0c;如…

Golang | Leetcode Golang题解之第543题二叉树的直径

题目&#xff1a; 题解&#xff1a; func diameterOfBinaryTree(root *TreeNode) int {var (dfs func(node *TreeNode) int // node节点深度ans int)dfs func(node *TreeNode) int {//边界if node nil {return -1}//求左右子树深度leftDepth : dfs(node.Left)rightDepth : d…

【TS】九天学会TS语法——3.TypeScript 函数

今天学习 TypeScript 的函数&#xff0c;包括函数类型、可选参数、默认参数、剩余参数。 函数声明和表达式函数类型可选参数和默认参数剩余参数 在 TypeScript 中&#xff0c;函数是编程的核心概念之一。它们允许我们将代码组织成可重用的块&#xff0c;并提供了强大的抽象能力…

解决程序因缺少xinput1_3.dll无法运行的有效方法,有效修复丢失xinput1_3.dll

如果你的电脑在运行某些应用程序或游戏时提示“xinput1_3.dll丢失”或“找不到xinput1_3.dll”的错误消息&#xff0c;那么很可能是因为你的系统中缺少这个重要的DLL文件而导致的问题。那么电脑出现xinput1_3.dll丢失的问题时有哪些方法进行修复呢&#xff1f; 如何确定电脑是否…

Golang--面向对象

Golang语言面向对象编程说明&#xff1a; Golang也支持面向对象编程(OOP)&#xff0c;但是和传统的面向对象编程有区别&#xff0c;并不是纯粹的面向对象语言。所以我们说Golang支持面向对象编程特性是比较准确的。Golang没有类(class)&#xff0c;Go语言的结构体(struct)和其…

语音识别中的RPM技术:原理、应用与发展趋势

目录 引言1. RPM技术的基本原理2. RPM的应用领域3. RPM技术的挑战与发展趋势4. 总结 引言 在语音识别和音频处理领域&#xff0c;RPM&#xff08;Recurrent Phase Model&#xff0c;递归相位模型&#xff09;技术正逐渐崭露头角。它作为一种创新的信号处理方法&#xff0c;通过…

IntelliJ Idea设置自定义快捷键

我IDEA的快捷键是自己修改成了和Eclipse相似&#xff0c;然后想要跳转到某个方法的上层抽象方法没有对应的快捷键&#xff0c;IDEA默认的是Ctrl U &#xff08;Windows/Linux 系统&#xff09; 或 Command U &#xff08;Mac 系统&#xff09;&#xff0c;但是我的不起作用&a…

深入探讨钉钉与金蝶云星空的数据集成技术

钉钉报销数据集成到金蝶云星空的技术案例分享 在企业日常运营中&#xff0c;行政报销流程的高效管理至关重要。为了实现这一目标&#xff0c;我们采用了轻易云数据集成平台&#xff0c;将钉钉的行政报销数据无缝对接到金蝶云星空的付款单系统。本次案例将重点介绍如何通过API接…

Python 数据结构对比:列表与数组的选择指南

文章目录 &#x1f4af;前言&#x1f4af;Python中的列表&#xff08;list&#xff09;和数组&#xff08;array&#xff09;的详细对比1. 数据类型的灵活性2. 性能与效率3. 功能与操作4. 使用场景5. 数据结构选择的考量6. 实际应用案例7. 结论 &#x1f4af;小结 &#x1f4af…

ML 系列:机器学习和深度学习的深层次总结( 19)— PMF、PDF、平均值、方差、标准差

一、说明 在概率和统计学中&#xff0c;了解结果是如何量化的至关重要。概率质量函数 &#xff08;PMF&#xff09; 和概率密度函数 &#xff08;PDF&#xff09; 是实现此目的的基本工具&#xff0c;每个函数都提供不同类型的数据&#xff1a;离散和连续数据。 二、PMF 的定义…

string模拟实现插入+删除

个人主页&#xff1a;Jason_from_China-CSDN博客 所属栏目&#xff1a;C系统性学习_Jason_from_China的博客-CSDN博客 所属栏目&#xff1a;C知识点的补充_Jason_from_China的博客-CSDN博客 string模拟实现reserve 这里实现的是扩容 扩容这里是可以实现缩容&#xff0c;可以实现…