Skip to content

penumm/penum-vpn

Repository files navigation

Penum VPN Client

A production-grade VPN client that routes all OS traffic through the Penum protocol with a Tauri UI.

Architecture

The Penum VPN consists of three main components:

  1. penum-relay - Network relays that forward traffic
  2. penum-socks - SOCKS5 proxy that routes traffic through the Penum protocol
  3. penum-vpn - VPN client with Tauri UI that routes all OS traffic through penum-socks

Running the System

1. Start the Relay Network (if needed)

First, you need to have a relay network running. For testing purposes, you can start mock relays on the configured ports (8080, 8081, 8082).

2. Start penum-socks

cd penum-socks
cargo run

This will start:

  • SOCKS5 proxy on port 1080
  • HTTP API on port 1081

3. Start penum-vpn

cd penum-vpn
cargo tauri dev

Features

  • Real-time Statistics: The VPN UI shows live relay count and latency by querying the penum-socks API
  • TUN Interface: Creates a virtual network interface to capture all OS traffic
  • SOCKS5 Integration: All traffic is routed through the local penum-socks proxy
  • Secure Connection: Implements fail-closed behavior to ensure no traffic leaks
  • Cross-platform: Built with Tauri for native desktop experience

API Endpoints

The penum-socks service exposes the following API endpoints:

  • GET /status - Returns relay status including total relays and active connections
  • GET / - Simple HTML status page

Troubleshooting

If the relay count doesn't show in the UI:

  1. Make sure penum-socks is running
  2. Verify penum-socks is accessible on http://127.0.0.1:1081
  3. Check that the penum-socks configuration matches your relay network setup

Security

  • No packet modification
  • No traffic logging
  • DNS routing through VPN
  • Kill-switch behavior (fail-closed)
  • No authentication required (per Penum protocol)
  • No UDP support (TCP only)

About

This is a reference VPN-style application built ON TOP of Penum v1.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages