Wondering when you're on the airport or Internet cafe with non-free wireless provider, they always redirect you to a page and force you to sign-up and buy their package for wireless access. WOW so disappointed!!!

Luckily on some network like that they are still allow DNS service to have some free to run. So I decide to search some solution about transfer data over tiny over DNS query.

Let Google with "DNS tunneling" and I  choiced the most common solution depend on the limited of the network provider.
  • First is using OpenVPN and configurate it listen on DNS service (UDP port 53) and connect VPN over that. The problem is some secured ISP force us to use their DNS system - they redirect all packet that connect to DNS service to thier server instead of allow it pass the Internet gateway - however this method provide more robust solution for all OS and device ( Ubuntu, Android, Windows ... ) and better performance.
  • The second solution is iodine, a portable-small-tiny and easy to configure DNS tunnel server. However Idoine speed quite limited, but in case of emergency it will help. I found myself that iodine more easy for me than OpenVPN and it can pass almost filter of ISP than OpenVPN tooooo. If you need tunnel for Android device use the Magic tunnel - the folk of Idoin.
Reference
OpenVPN: Big Long howto
      Iodine: Quick install guide , Magic tunnel