Socks5代理协议很强大,不光可以实现HTTP/HTTPS代理的TCP隧道代理功能,类似connect,还可以实现HTTP代理不能做到的UDP代理功能。
要知道UDP代理的重要过程,以方便我们排查错误,我们还需要了解Socks5协议对UDP代理方式的流程规定,百度到一篇讲的很好的文章,大家可以参考。
https://blog.csdn.net/whatday/article/details/40183555
我们先来仔细看一下这个过程
首先,我们可以看到,Socks5代理服务器一般只开放一个TCP端口,所以我们在代理服务器上,使用netstat命令是看不到其开放了UDP端口的。因为Socks5服务端通过TCP端口接收客户端发送的代理请求指令,然后分配一个UDP的端口,再通过刚才TCP的连接把这个UDP的IP和端口发送给客户端。客户端下一步只需将UDP包加上特制包头,向这个UDP的端口发送即可。
如果我们做一个原生支持Socks5代理的程序,了解这个过程就可以了,但是如果再工作中遇到第三方的程序,本身不支持UDP代理的,而我们又在公司内网,断了互联网连接,只能通过一个Socks5服务器上网的,该怎么办呢?
UDP协议应用场景不是很多,一般是DNS,音视频聊天,游戏信令等场合。加入我们在内网使用qq或钉钉,虽然其可以配置socks5代理,但是这些软件本身