I just had the pleasure of trying to figure out why my OpenVPN based VPN didn’t let me do anything when connected to it. Checking out code from internal repositories didn’t work, downloading large files only worked for the first 60 kilobytes.
There are many variables in this, with borked MTU sizes, fragmentation and underlying network errors.
But this time it was an error with the tun driver in the Linux 3.14 kernel versions. There is a severe bug in those. Either revert or use 3.15 or newer.
I wish I knew that before i wasted 2 days figuring this out.
Solution is to revert to a pre-3.14 kernel. There is a kernel bug that affects TCP performance over TUN devices. A patch has been issued and should land upstream with kernel 3.15.