如何使用 netcat 测试 socks5 服务器?

Posted

技术标签:

【中文标题】如何使用 netcat 测试 socks5 服务器?【英文标题】:how use netcat to test socks5 server? 【发布时间】:2018-09-27 06:13:13 【问题描述】:

在rfc1928中,首先,客户端必须向服务器发送消息:

           client send to server:

           +----+----------+----------+
           |VER | NMETHODS | METHODS  |
           +----+----------+----------+
           | 1  |    1     | 1 to 255 |
           +----+----------+----------+

然后服务器应该返回以下消息:

                 +----+--------+
                 |VER | METHOD |
                 +----+--------+
                 | 1  |   1    |
                 +----+--------+

所以我使用命令行来测试:

$ echo -e '0x01''0x01''0x01' | nc test.com 30

这个命令应该返回给我

0x01 0x01

但是什么都不给我留空白

【问题讨论】:

【参考方案1】:

出现在数据包格式图中的十进制数字表示相应字段的长度,以八位字节为单位,而不是您应该使用的值。

socks5 代理的版本字段应该是0x05。 NMETHODS 和 METHODS 的值取决于您要检查的方法。

最后,响应消息的原始输出包含不可打印的字符,因此即使它存在,您通常也无法看到它,显然您需要使用 CR- 结束 netcat 的输入LF 或永远等待,以便它实际发送消息。

总而言之,要检查方法 0x00(无身份验证),您可以执行类似的操作

printf "\x05\x01\x00\r\n" | nc test.com 30 | hd

得到

00000000  05 00                                             |..|
00000002

成功。

【讨论】:

以上是关于如何使用 netcat 测试 socks5 服务器?的主要内容,如果未能解决你的问题,请参考以下文章

如何正确认识socks5代理ip

如何在Linux下配置socks5代理

如何在Linux下配置socks5代理

如何让 netcat 接受来自 LAN 外部的连接?

如何使用SOCKS5代理服务器?

Qt WebEngine设置socks5代理