iodine lets you tunnel IPv4 data through a DNS server.

I use Iodine, it’s super simple to set up! Say your VPS’s IP is 8.8.8.8, you set DNS as follows:

dns2.domain.com A 8.8.8.8
dns.domain.com NS dns2.domain.com

apt-get install iodine, or compile on other systems

On server run: screen iodined -fP ultrasecurepassword 10.0.0.1 dns.domain.com
On client run: iodine -fP ultrasecurepassword 8.8.8.8 dns.domain.com

You can then setup Squid or ziproxy with image compression to listen on tun0, and set the HTTP proxy for your client to 10.0.0.1. SSH tunneling with compression also works, not tried NAT

http://code.kryo.se/iodine/

iodine lets you tunnel IPv4 data through a DNS server. This can be usable in different situations where internet access is firewalled, but DNS queries are allowed.