1. 程式人生 > >socks 5 協議解析

socks 5 協議解析

class password 私人 sock 認證 private user strong cep

本文所列的表格通常長這樣的:

┌────────┬────────┬────────┐
│ 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 協議解析