Navigate:
Amnezia VPN
~$AMNE2.2%

Amnezia VPN: Self-hosted VPN client

Cross-platform VPN client with automated server deployment and obfuscated protocol support.

LIVE RANKINGS • 10:20 AM • STEADY
TOP 50TOP 50TOP 50TOP 50TOP 50TOP 50TOP 50TOP 50TOP 50TOP 50TOP 50TOP 50
OVERALL
#41
24
NETWORKING
#3
1
30 DAY RANKING TREND
ovr#41
·Netwo#3
STARS
10.3K
FORKS
724
7D STARS
+223
7D FORKS
+17
See Repo:
Share:

Learn more about Amnezia VPN

Amnezia VPN is an open-source VPN client application that provides automated server deployment capabilities alongside traditional VPN connectivity. The client connects to user-provided servers via SSH and automatically installs VPN services using Docker containers, supporting protocols like OpenVPN, WireGuard, IKEv2, and Shadowsocks. It includes obfuscated protocol variants such as OpenVPN over Cloak and AmneziaWG for traffic masking in restrictive network environments. The application is built with Qt and provides cross-platform support for Windows, macOS, Linux, Android, and iOS.

Amnezia VPN

1

Automated Server Deployment

Automatically installs and configures VPN server components on user-provided infrastructure using SSH and Docker containers.

2

Traffic Obfuscation Protocols

Implements obfuscated variants like OpenVPN over Cloak, Shadowsocks, and AmneziaWG to mask VPN traffic from network analysis.

3

Split Tunneling Support

Allows selective routing of specific applications or websites through the VPN while maintaining direct connections for other traffic.


#include <QObject>
#include <QProcess>
#include <QTimer>
#include "protocols/openvpn.h"
#include "protocols/wireguard.h"

class VpnConnectionManager : public QObject {
    Q_OBJECT

public:
    explicit VpnConnectionManager(QObject *parent = nullptr);
    void connectToVpn(const VpnConfig &config);
    void disconnectVpn();
    ConnectionStatus getStatus() const { return m_status; }

private slots:
    void onProcessFinished(int exitCode);
    void checkConnectionHealth();

private:
    QProcess *m_vpnProcess;
    QTimer *m_healthTimer;
    ConnectionStatus m_status;
    VpnProtocol *m_currentProtocol;

    void setupProtocol(ProtocolType type);
    void startHealthMonitoring();
};


See how people are using Amnezia VPN

Loading tweets...


[ EXPLORE MORE ]

Related Repositories

Discover similar tools and frameworks used by developers