I always found it annoying that you couldn't use the WiFi on planes for free. It turns out that they allow DNS traffic through (e.g. the domain you're trying to visit gets resolved to an IP address). So you can piggyback TCP off this DNS traffic and get free internet on planes. All you nede is a server (on the ground, with a static IP, always connected to the internet that you can tunnel to).

read more Resources and Instructions

Guide Link: http://mmaton.com/2013/01/dns-tunnelling-made-simple/

Server side notes:

Should need to point the domain to the server.

iodined -f -c -P [redacted] 10.0.0.1 tunnel.needtowrite.com

tcp-dns.sh
#one step necessary for server: 
#just need to run iodined -f -c -P [redacted] 10.0.0.1 tunnel.needtowrite.com

#four steps necessary for clients:

#1. Install Iodine (first time only)
#To install Iodine, you just run 'apt-get install iodine'. You'll need a real 
#TCP (internet) connection in order for this to work. 

#2. Start Iodine 
#Just run the command below
sudo iodine -f -P [redacted] tunnel.needtowrite.com

#3. Do some redirection shit/SSH tunnel/magic. 
#Just run the command below
sudo ssh -D 1080 -f -C -q -N root@10.0.0.1 -p 22
#preferably, exclude -f and -q. If you run into trouble with the host key
#and you're in a VM and can't get to the root folder to 
#delete the key, do sudo -i, then try getting to the hosts file. 

#4. Configure Firefox to direct all traffic through Iodine
#Open Firefox, go to the URL bar and type "about:config", 
#then proceed through the warning. Then search for the following 
#settings (left column) and change the value (right column) 
#to what's listed. 

# network.proxy.socks				127.0.0.1
# network.proxy.socks_port			1080
# network.proxy.socks_remote_dns	true
# network.proxy.socks_version		5
# network.proxy.type				1


#Now just try to load Google.com in Firefox!!!