OpenVPN Roadwarrior TCP and UDP Server?

Hi, is it possible to run OpenVPN Roadwarrior with both TCP and UDP such that if a public network blocks UDP, one could switch to TCP? From this client side this is easy, but on the IPFire side I can only find very basic mentions of the need for a separate config (not within the GUI).

Can one use all the same parameters as the GUI (TCP), but implement a server also running on UDP? Can the existing OpenVPN subnet be reused, CA certs etc?

Would like this as I found when on holiday, a lot of public wifi would only allow TCP 80/443, but at the same time when on hotel Wifi (which was more open), UDP streaming video in the TCP VPN wasn’t great and seemed to cause a few buffering issues and drops on streaming video.

Thanks

The link below may be helpful

Regards

Hello Nicholas,

This was not possible until OpenVPN 2.7 where I read in the change log that there is a possibility to run both a TCP and a UDP server in the same instance meaning that the subnet, CA and so on would be shared.

I have however not tested this, but it would be a nice extension.

Regarding the real-world application, you are always doing way better using UDP. There is only one scenario to fall back to TCP - when UDP is entirely blocked. With QUIC, FaceTime & WhatsApp calls on the rise, I cannot see how a hotel WiFi would function if UDP is blocked.

Thanks Michael, looking at those notes further there are some changes here,

Might play around with this later today, do you think this can be done under the hood first just to test it works?

Despite it breaking stuff, I’ve come across a lot of free wifi providers that still run fairly classic configs of open tcp 80/443, and block everything else. My local gym has this setup so currently I use everything over TCP 80. Would be good to be able to choose as required (e.g. choose UDP profile, or TCP profile as available).

I was about to say that I didnt have any luck, but then noticed in the log 2.6.19. I assume you meant that openvpn would need to be upgraded to 2.7 before that could work?