Selfhosted Speedify Alternative?

Hey everyone,

I need a selfhosted solution similar to Speedify for Windows/Android/iOS

I have tested Speedify, and it did work pretty good. However, their lack of a Korean server, and the fact that I currently have loads of VPNs idling around (thanks @Ympker) is pushing me from actually buying their subscription.

The features I need is

  1. Ability to failover between networks (e.g. connected via Wi-Fi and failover to LTE/USB Tethering when Wi-Fi drops or gets unreliable)
  2. Network bonding when throughput is needed (nice to have, but not mandatory)
  3. Some kind of encryption between the server and client
  4. Selfhosted server (ability to install in AWS Lightsail)

If anyone knows any software that can do this, please let me know.

Thanks!

Comments

  • "Network bonding when throughput is needed" just need this on pc too

    Thanked by (1)sanvit
  • Some features (automatic failover, bandwidth aggregation of multiple internet connections) are mentioned here:

    https://mlvpn.readthedocs.io/en/latest/what_is_mlvpn.html#features

    Thanked by (1)sanvit
  • failover and bonding needs to be set up client-side
    for encryption any self-hosted VPN will do

    Thanked by (1)sanvit
  • @verd said:
    Some features (automatic failover, bandwidth aggregation of multiple internet connections) are mentioned here:

    https://mlvpn.readthedocs.io/en/latest/what_is_mlvpn.html#features

    Thanks! That looks quite good on first sight! I'll re read the docs when I get home :)

    @comi said:
    failover and bonding needs to be set up client-side
    for encryption any self-hosted VPN will do

    What do you mean by 'client-side'? I haven't seen any network bonding option on any of the OSes, and the defauly failover sucks at best. :(

  • virtual bonding interface - ip address here
    - slave physical interface one
    - slave physical interface two
    

    that's in principle how bonding works (bonding naturaly provides failover btw)

    that's what speedify client must be doing under the hood on your machine.
    VPN is extra here

    bonding exists on all (mainstream) OS kernels, it definitely exists on Windows Server, but I'm not sure what's up with Windows workstation OSes - it may not be included by defaul or w/e.

    @sanvit said: defauly failover sucks at best

    works fine on my machine (tm)

    I don't know about Windows, here it looks like this:

    # ip route
    default via 192.168.1.1 dev enp3s0 proto dhcp src 192.168.1.2 metric 202
    default via 192.168.1.1 dev wlo1 proto dhcp src 192.168.1.43 metric 303
    

    It's two default routes with different priorities assigned, so if wire is unplugged, priority 1 route disappears and the second is the only one left. That forces everything to reconnect, but that was not pain enough to fix it.

    quick lookup for windows
    https://docs.microsoft.com/en-us/windows-server/networking/technologies/nic-teaming/nic-teaming-settings

  • @comi said: so if wire is unplugged

    This. However, Wi-Fi can be unresponsive, or redirected back to captive portal time to time, which is still registered as connected, thus the network won't fall back. And iirc bonding requires an end server that brings back the packets together to bring maximum performance?

  • comicomi OG
    edited September 2020

    @sanvit said: Wi-Fi can be unresponsive, or redirected back to captive portal time to time,

    it that case the wifi needs fixing, not failover

    @sanvit said: bonding requires an end server that brings back the packets together

    In link aggregation yes, you need to set it up on both ends of the wires; for a tcp session not necessarily, since the session is originating from a single virtual "parent" interface, slave interfaces are basically multiple paths your network stream is taking which is supposed to be "business as usuall" for networking stack on any platform - there are a few kinks though as mlvpn link mentions, it depends on specific implementation of bonding anyway.

  • @comi said: wifi needs fixing

    True, but that is not always available, especially on a public place or shared environment.

    @comi said: business as usuall

    Is this the case even if the public IP of each interface is different? I am trying to bond LTE and WiFi

  • @sanvit said: but that is not always available, especially on a public place or shared environment

    I understand, but if the problem is at the wifi and you can't fix it, the best alternative you have is maybe some workaround which is not gonna be "maximum performance".
    You can't fix what you don't control. If you don't control anything you can't fix anything. You can only ask people who do control it to fix it.

    @sanvit said: Is this the case even if the public IP of each interface is different

    I believe you can use NAT to translate from whatever network is assigned to the bond interface.

    Thanked by (1)sanvit
Sign In or Register to comment.