socks 5 协议解析

Posted xcw0754

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了socks 5 协议解析相关的知识,希望对你有一定的参考价值。

本文所列的表格通常长这样的:

┌────────┬────────┬────────┐
│ field1 │ field2 │ field3 │
├────────┼────────┼────────┤
│      1 │      2 │      3 │
└────────┴────────┴────────┘

其中field就是协议头的域,其下面的数字表示该域所占字节数量,而不是其表示内容

协议内容

  • client to server

    ┌─────┬──────────┬─────────┐
    │ VER │ NMETHODS │ METHODS │
    ├─────┼──────────┼─────────┤
    │   1 │        1 │ 1~255   │
    └─────┴──────────┴─────────┘

    用途:确立连接认证方法协商,client告知server其所支持的认证方法,server可从中挑选一个。其中
    ver socks协议的版本号,常用的是socks5版本的,故可以为0x05
    nmethods 后面的域methods有n个字节
    methods 每个字节即为一个认证方法,供server挑选

  • server to client

    ┌──────┬──────────┐
    │ VER  │  METHOD  │
    ├──────┼──────────┤
    │  1   │    1     │
    └──────┴──────────┘

    用途:告知client需要使用哪种认证方法进行认证。
    ver 版本,即0x05
    method 可以下面其中一项:
    o 0x00 NO AUTHENTICATION REQUIRED 无需认证
    o 0x01 GSSAPI
    o 0x02 USERNAME/PASSWORD 用户名/密码
    o 0x03 to 0x7F IANA ASSIGNED 由IANA指定
    o 0x80 to 0xFE RESERVED FOR PRIVATE METHODS 私人保留方法
    o 0xFF NO ACCEPTABLE METHODS 不接受

以上是关于socks 5 协议解析的主要内容,如果未能解决你的问题,请参考以下文章

socks是啥协议?

020 sock项目(单线程)

021 sock项目(多线程)

CentOS7下搭建socks 5代理

linux下配置socks 5代理

httpd Server not started: (13)Permission denied: make_sock: could not bind to address [::]:8888(代码片段