Next-Generation Unofficial IKEv2 Linux Client for Surfshark & StrongSwan
A privacy-first, ultra-responsive desktop VPN client crafted for Linux users, featuring zero-plaintext credential storage, real-time traffic waveforms, isolated namespace split tunneling, and hotspot protection.
Created by Milad Dadgar • Published under MilMit
- Multi-State Animated Status Orb: Dynamic visual states for Disconnected (breathing glow), Connecting/Authenticating (concentric radar sweep & orbital rings), Connected (emerald liquid pulse), and Cancelling.
- Live Real-time Traffic Waveform: 60 FPS SVG sparkline graph rendering upload/download bandwidth streams and daily/monthly data counters.
- Interactive Route Visualizer: Visual connection beam mapping your local device to the destination server with latency markers.
- Smart Server Selector: Instant probing and auto-sorting of locations with colored ping indicators (
< 100msgreen,< 200msamber,> 200msred).
- Zero Plaintext Credentials: Surfshark service credentials are saved via a narrow root-isolated helper into
/etc/milmit-surfshark/credentials(0600 root-only) and never stored in application config files or passed via command line arguments. - Kill Switch & Lockdown Mode: Automatic firewall isolation preventing leaks when the VPN disconnects.
- DNS Leak Protection: Automatically enforces secure local resolvers and validates routes.
- Namespace-Isolated Split Tunneling: Applications run in isolated Linux network namespaces (
ip netns) to bypass the VPN without touching global routing rules. - Custom Domain & IP Policies: Easy toggle for
Force VPN,Direct Bypass, orBlockper domain/CIDR. - Iran CIDR Domestic Route Rules: Fast fallback rules allowing domestic traffic to stay direct while tunneling restricted destinations.
- Protected Wi-Fi Hotspot & Device Manager: Share the VPN over a local hotspot with per-device rate limiting, bandwidth quotas, client isolation, and temporary guest SSIDs.
- Live Event Streaming: Real-time log console with auto-redaction of sensitive keys/passwords, search filtering, level highlighting (Info, Warning, Error, Success), and one-click copy.
- Built-in Network Doctor: One-click diagnostics for MTU/MSS probing, StrongSwan tunnel health, DNS resolution, and sanitized support bundle generation.
Make sure you have the required dependencies on Ubuntu / Debian:
sudo apt update
sudo apt install -y build-essential libssl-dev libgtk-3-dev libwebkit2gtk-4.1-dev
libayatana-appindicator3-dev librsvg2-dev strongswan libcharon-extra-pluginsgit clone https://github.com/MilMit/MilMit-Secure.git
cd MilMit-Securecd apps/desktop
npm install# In apps/desktop
npm run tauri dev# Build desktop web assets & Tauri application
npm run build
npm run bundle:linuxThe generated .deb and .AppImage packages will be placed in packaging/dist/.
.
├── apps/
│ └── desktop/ # Tauri v2 + React 18 + TypeScript GUI Application
│ ├── src/
│ │ ├── components/ # TrafficChart, RouteBeam, CredentialsModal, LogTerminal
│ │ ├── main.tsx # Unified React shell & dashboard
│ │ └── styles.css # Cyber-Glassmorphic dark design system
│ └── src-tauri/ # Tauri Rust backend, IPC handlers & system services
├── crates/
│ ├── core/ # Provider model, config parsing, connection planning
│ ├── cli/ # Command-line interface client
│ └── gui/ # Native GTK helper utilities
├── providers/
│ └── surfshark/ # Bundled server locations database & CA certificates
├── docs/ # Architecture specs, security whitepaper & roadmaps
├── packaging/ # Debian & AppImage packaging scripts
└── .github/workflows/ # Automated CI/CD build & release pipelines
- No Credential Scraping: MilMit Secure never asks for your personal Surfshark account password or email. You only provide manual setup Service Credentials.
- Privilege Separation: The graphical interface runs as an unprivileged user. Privileged VPN networking changes are isolated behind narrow polkit/helper actions.
- Disclaimer: This project is an unofficial open-source tool and is not affiliated with, endorsed by, or sponsored by Surfshark.
Distributed under the MIT License. See LICENSE for details.