加密SOCKS5信道中防DNS泄露
本文从纯粹的技术原理角度简介加密SOCKS5信道中防DNS泄露的问题,不涉及其它。
初代SOCKS5协议本身不包含加密机制,但现实世界中有许多加密SOCKS5实现。现代浏览器及相应Proxy插件普遍支持远程DNS解析,DNS泄露得到相当程度的阻止。但是,这样不足以彻底阻止DNS泄露。比较理想的状态是本机所有DNS解析请求都走加密SOCKS5信道,对此至少有两种现成的开源实现,Tor-DNS与DNS2SOCKS,自行放狗。
缺省情况下,Tor-DNS侦听53/UDP,收到DNS请求后做某种处理再发送到Tor SOCKS5 Proxy侦听的9050/TCP,由后者设法进行加密后的远程DNS解析,以此对付DNS泄露。
Tor-DNS用Go语言编写,第一次看Go代码,语法都不了解,全凭其他语言经验瞎猜。起初不想猜,让ChatGPT给我翻译成Python,未能如愿,后来硬着头皮看Go代码,大致看明白了。
