Se você estiver usando a glibc, você pode usar a opção use-vc
não documentada (veja resolv/res_init.c
no código-fonte glib) que força o resolvedor da libc a sempre usar o TCP.
Configure globalmente no resolv.conf:
options use-vc
nameserver 1.2.3.4
Ou passe a opção no ambiente:
RES_OPTIONS=use-vc firefox
Ele não funcionará se o aplicativo implementar seu próprio suporte para DNS sem usar as funções libc res_init/res_query/…
. Está funcionando com o Firefox (provavelmente desde que você não esteja usando a opção "DNS remoto" nas configurações de proxy do SOCKS).