Note that the NS record routes the queries for the x0.example.com to the x0ns server.
where 192.168.99.1 can be any IP address that you don’t use, and x0.example.com is the NS record we just set. The -P option set the password for the DNS tunnel that will be required when the client tries to connect to the server through DNS requests.
If you are using Linux, you can install iodine just like installing it on the server with apt-get install iodine.
However, if you are using Windows, you should download the Windows version of iodine from the developer’s website.
You should see the ping returns result.
If you are using windows, you can use PuTTY to set up the proxy. First we will set up a way to forward the traffic through ssh to the server. Open PuTTY, in Session, set the Host Name to 192.168.99.1, and Connection Type to SSH. Then go to the category Connection - SSH - Tunnels, under Add new forwarded port, enter 5555 as the Source port, and choose Dynamic, then click Add. You should see under Forwarded port, it shows D5555.
Noted that at this stage, the client don’t need to have Internet access to connect to the server, because it can already communicate with the server using the “subnet” IP 192.168.99.1 through the DNS tunnel set up by iodine. Go ahead and login to the server in PuTTY.
If you are using Chrome, you can download the extension SwitchySharp, and create a SOCK5 proxy profile with the above information.
Then you should be able to access the Internet through the DNS tunnel.
P.S. It a rather sketchy turtorial. It’s mainly written for my future reference. I will talk about more about how the DNS tunnel works and add more details if I have the chance.