yvesf / andiodine

Android VPN over DNS (no root required). Repo moved to gitlab
https://gitlab.com/andiodine/andiodine
149 stars 27 forks source link

How fast should iodine be? #23

Closed SudoHenk closed 7 years ago

SudoHenk commented 8 years ago

Hi,

I have iodine running on a 100MB/s server, and just tried it on my mobile phone (with andiodine, worked fine at once), but loading websites is slow, very slow.

Simple HTTP request (eg. http://api.ipify.org/?format=json) takes me 1 second. A website like reddit.com (HTTPS) takes well over 50 seconds to load.

Is this just a side effect of the conversion to DNS (being so inefficient), or is something else happening?

SudoHenk commented 8 years ago

I followed https://github.com/yarrick/iodine (all default parameters) and have a ping of 20ms.

Debug info:

MTU: 1130
DNS type NULL queries
Version OK protocol v 0x00000502
tunnel IP 10.0.0.1 (client is .2)
Skipping raw mode
Using ENS0 ext.
Uppercase, keeping upstream codec base32
No alternative downstream codec available using raw
switched to lazy mode

Then its autoprobing fragment size:
768 ok
1152 ok
1344 not ok
1248 not ok
1200 not ok
1176 ok
1188 ok

then it will use 1186 as fragment size (is this high?)

I notice that upstream is performing much better than downstream, How can I install a nother downstream codec? This might be the problem. Using latest version of iodine and latest version available of the Android app on F-droid.

SudoHenk commented 8 years ago

@yvesf any take on this?

yvesf commented 8 years ago

performance depend mainly on the specific network setup, means the dns relays involved.

I recommended you play a bit with iodine on a computer to find the best setup and just try to make the same settings in andione. Most commandline switches are already exposed in some way. Feel free to share you experience here.

If downstream is lower than upstream then most likely something is very wrong. The actual network-bandwidth of the server doesn't make a big difference. Obviously the performance will never be near native. Also in "raw mode" the overhead is huge.