yarrick / iodine

Official git repo for iodine dns tunnel
https://code.kryo.se/iodine
ISC License
6.26k stars 508 forks source link

Performance increase with socks on server #50

Closed printfuck closed 3 years ago

printfuck commented 3 years ago

Hello there,

I recently have setup iodine similarly to situation 1 from the description in the readme. The performance was not the best but worked out for most of my needs - as always. I usually use a SSH Tunnel from iodine-client to iodine-server with the -D socks tunnel option, but this time I changed it up a bit.

I also have a VPN-client from nordvpn with sockd running on the server. So I passed -L7777:[sockd_Listening_IP]:port instead of -D7777 to the ssh command - just forwarding the traffic to the remote sockd on the server side instead of using the builtin socks proxy. The speed difference is truly amazing. I tested it at 30-40 MBit/s up- and download speed.

I verified it several times and the speed seemed to be limited only by the connection speed of my VPN provider. The documentation on the project site states, that speed should be limited at 1MBit/s, so now I'm wondering, if this is normal behaviour or special circumstance.

yarrick commented 3 years ago

It sounds like the connection is using raw mode, where the tunnel data is not encoded as valid DNS packets but instead sent directly across the network with a small header. You can disable this with -r flag on the client and get back to the slow mode (which is needed when only valid DNS packets are allowed through).

The client prefers using raw mode if possible and will automatically downgrade to DNS mode if raw connectivity is blocked.

printfuck commented 3 years ago

Thank you for your explanation.