Release title: v1.0.0 — Isolated VSCode SOCKS5 VPN Namespace
Summary
This release delivers a complete, cross-platform solution to run an isolated OpenVPN connection for development tools (primarily Visual Studio Code) while keeping your host network/IP unchanged. It provides interactive scripts, platform-specific wrappers, comprehensive documentation, and testing and security guidance so developers can use VPNs for extension access, Git, and other dev resources while retaining local network access for collaborators and testing.
Highlights
New: Full Linux network namespace support (Arch, Manjaro, Ubuntu, Mint, Pop!_OS, Zorin OS, Fedora, RHEL/CentOS/Alma/Rocky/Alma, openSUSE, Kali, Parrot).
New: macOS support (Homebrew-based) — NOTE: limited isolation (no Linux namespaces); uses routing + SOCKS proxy.
New: Windows support via WSL2 — runs Linux namespace stack in WSL2 and exposes SOCKS5 proxy to Windows with port-forwarding.
New: Reusable base scripts for connect/disconnect in common and platform wrappers per distribution.
New: Interactive setup that prompts for OpenVPN config, network interface, DNS, SOCKS ports, and optional VSCode launch.
New: Comprehensive documentation:
USAGE_GUIDE.md, TESTING.md, QUICKSTART.md, SECURITY.md, platform READMEs, and contributor guidance.
New: Automated safe teardown with disconnect.sh / disconnect.ps1 to remove namespaces, processes, and firewall rules.
What’s new / Key features
Isolated network namespaces on Linux so only VSCode traffic (or any app you bind) goes over VPN.
SOCKS5 proxy server (Dante) launched inside namespace, exposed to host via socat/port forwarding.
Auto-detection of host network interface and IP; prompts for sensible defaults but lets users customize.
Dependency checks and distribution-aware package install prompts (apt, pacman, dnf/yum, zypper, brew).
Multiple simultaneous isolated connections supported (unique namespace + ports per run).
Secure handling recommendations: prompts, saved configs, and guidance for credentials file permissions.
Built-in verification tests and an automated test script (run-tests.sh) to validate namespace, VPN, and proxy functionality.
Security & privacy notes
Credentials: The project documents secure credential storage (e.g., ~/vpn/credentials.txt with chmod 600). Avoid committing secrets — .gitignore added for common temporary and credential files.
DNS leaks: The docs and examples recommend hostname resolution through the proxy (e.g., --socks5-hostname) and include DNS leak testing procedures in TESTING.md.
Isolation model: Linux network namespaces provide strong process-level isolation. macOS uses system routing and SOCKS (limited isolation); Windows uses WSL2 with port forwarding.
See SECURITY.md for full hardening steps (SELinux/AppArmor hints, firewall rules, logging/rotation, incident response).
Supported platforms
Linux — Full namespace isolation: Arch, Manjaro, Ubuntu (20.04/22.04/24.04), Mint, Pop!_OS, Zorin OS, Fedora (37+), RHEL 8/9 and derivatives, openSUSE Leap/Tumbleweed, Kali, Parrot.
macOS — Big Sur+ (limited isolation; Homebrew required).
Windows — Windows 10 (2004+) and Windows 11 via WSL2 (Ubuntu recommended inside WSL2).
Quick install & usage (examples)
Prepare OpenVPN config (example):
Place .ovpn at /etc/openvpn/w29.ovpn or ~/vpn/config.ovpn and secure with chmod 600.
Linux (example):
cd linux/Ubuntu
chmod +x connect.sh
./connect.sh
When prompted, provide full path to .ovpn, accept defaults or customize ports.
Connect launches socks5://10.200.200.2:1081 (default); use code --proxy-server="socks5://10.200.200.2:1081" to start VSCode through VPN.
macOS:
cd mac
chmod +x connect.sh
./connect.sh
(See README/mac for limitations and Homebrew install steps.)
Windows (WSL2):
Open PowerShell as Admin
cd windows
.\connect.ps1
Script will copy config to WSL, set up namespace inside WSL, and configure port proxy on Windows.