默认情况下,proxychains的DNS解析的请求也是走代理的,注释掉proxychains的proxy_dns,这样DNS的解析就不通过proxychains。
修改文件:/etc/proxychains.conf
#Proxy DNS requests - no leak for DNS data
#proxy_dns
配置使用其它DNS服务器。
默认情况下,proxychains使用4.2.2.2作为DNS服务器。配置位于:/usr/lib/proxychains3/proxyresolv:
#!/bin/sh
# This script is called by proxychains to resolve DNS names
# DNS server used to resolve names
DNS_SERVER=${PROXYRESOLV_DNS:-4.2.2.2}
if [ $# = 0 ] ; then
echo " usage:"
echo " proxyresolv "
exit
fi
export LD_PRELOAD=libproxychains.so.3
dig $1 @$DNS_SERVER +tcp | awk '/A.+[0-9]+\.[0-9]+\.[0-9]/{print $5;}'
因此,我们只要配置环境变量PROXYRESOLV_DNS为其它DNS服务器,就可以指定我们的DNS解析了。
同时,这个配置文件的最后一行也解释了proxychains是如何通过代理TCP来代理DNS解析了。
同时测试得出proxychains.conf配置文件中socks5设置只能是IP地址,不能是域名。
本来计划使用花生壳设置一个内网socks5映射出去时,得出的结论。