socke5 使用curl 测试_HttpClient/Curl使用SOCKS5代理数据包分析

本文介绍了SOCKS5协议的特点,并通过curl和Apache HttpClient展示了如何使用SOCKS5代理。分析了在启用SOCKS5代理时,连接池是否仍然有效,以及连接复用的情况。实验表明,即使在SOCKS5客户端与服务器IDLE超时后,HttpClient仍能感知并重新建立连接,保证了连接池的正常使用。
摘要由CSDN通过智能技术生成

SOCKS5标准在《RFC1928》中进行了概要的说明。SOCKS5位于应用层和传输层之间,因此不能支持网络层的协议(如ICMP);与SOCKS4相比,SOCKS5:

1、同时支持TCP和UDP;

2、支持强身份验证;

3、支持域名寻址;

4、支持IPv6;

Netty原生支持SOCKS5,下面通过curl观察SOCKS5协议的通信。使用形如:

curl --socks5 socks-server-ip:socks-server-port http://www.meilongkui.com

的命令可以让curl使用SOCKS5代理进行访问:

curl命令使用SOCKS5代理

此时,可以在Netty端看到如下的日志:

Netty的SOCKS5服务器日志

这里面比较让人迷茫的地方有几点:

1、CONNECT命令成功后,SOCKS客户端是否后续就直接向SOCKS服务器发送裸数据数据了?从Netty输出的日志看,是的。

2、curl每次执行完HTTP请求后就立即关闭了到SOCKS服务器的连接,从而使得SOCKS服务器也立即关闭了到远程服务器的连接。那么,如果SOCKS客户端与SOCKS服务器每次都要建立连接、SOCKS服务器每次都要和远程服务器建立连接是否性能方面会有比较大的开销?

我们用Apache HttpClient进行一下验证,首先不用代理判断一下连接池能够启用:</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值