Você tem controle total sobre o cliente, isso é bom. Você não menciona quanto controle você tem sobre o servidor SSH. Se você controlar o lado do servidor, você poderá iniciar um proxy UDP-para-TCP no seu cliente, conforme indicado aqui :
socat -T15 udp4-recvfrom:53,reuseaddr,fork tcp:localhost:5353
Em seguida, encaminhe a conexão TCP via SSH para o seu servidor, onde você inicia um daemon TCP-para-UDP:
socat tcp4-listen:5353,reuseaddr,fork UDP:nameserver:53
existe SSHuttle (por exemplo, mencionado aqui ). Existe um patch para encaminhar consultas DNS facilmente.
YMMV, mas Eu tive sucesso com o seguinte :
#!/bin/bash
# Taken from http://stackoverflow.com/questions/4594319/shell-replace-cr-lf-by-comma
DNSSERVERS=$(nmcli d show | grep DNS | awk '{print $2}' | sed -e 'H;${x;s/\n/,/g;s/^,//;p;};d' )
sshuttle \
-vvv \
--dns-hosts ${DNSSERVERS} \
-r server \
254.254.254.254/32