Skip to content
05Caso di studio2026

Okiyumi VPN

Caso di studio tecnologico: VPN con smart routing per Windows

Sistemi · reti

APPVPNDIRECTBLOCKDNSAPP → VPN · DIRECT · BLOCK

Lo studio di un sistema di rete ambizioso: routing per applicazione e per dominio invece del «tutto o niente».

Contesto

Okiyumi VPN è una piattaforma Windows in beta chiusa. La studio come caso tecnologico: come è costruito il sistema, quali problemi risolve e quali compromessi ingegneristici ha scelto.

Problema

Una VPN classica è uno strumento grezzo: o tutto il traffico passa nel tunnel o niente. L'obiettivo è un routing basato su regole — un'app nella VPN, un dominio diretto, qualcosa bloccato — sopravvivendo a riavvii e crash senza lasciare la macchina in uno stato di rete rotto.

Come funziona il sistema

  • 01

    Smart Routing: Application → VPN / Direct / Block e Domain → VPN / Direct / Block, con regole a TTL per i domini e tracciamento della proprietà delle route.

  • 02

    Separazione dei privilegi: l'interfaccia React + Tauri comunica con un servizio Windows dedicato tramite named pipe — l'interfaccia non richiede mai diritti di amministratore.

  • 03

    Modifiche di rete transazionali, connessione VPN a due fasi e vera validazione del handshake WireGuard — il sistema si riprende da soli da crash e riavvii.

Architettura

Interfaccia React

interfaccia

Tauri

shell nativa

Strato Rust

named pipe · DPAPI

OkiyumiEngine

servizio Windows

Network Safety Layer

Smart Routing · WireGuard · WFP · DNS

Rete Windows

FLOW

  1. 01Applicazione / dominio
    regola
    → Smart Routing
  2. 02Smart Routing
    → VPN / Direct / Block

Numeri

tutte le metriche si riferiscono al progetto, non a risultati personali

353

test del core Rust del progetto

metrica del progetto

49

test del server di provisioning del progetto

metrica del progetto

Perché è importante

  • Per me è lo studio di un sistema complesso: come un'idea di prodotto («una VPN che non devi accendere e spegnere») diventa un'architettura di servizi, confini dei driver e ripresa dai guasti.

Cosa ho imparato

  • Come un requisito di prodotto detta un confine ingegneristico: se l'interfaccia non deve richiedere diritti di amministratore, serve un servizio separato e un canale verso di esso.

Stack

  • TypeScript
  • React 18
  • Vite
  • Zustand
  • Tailwind CSS
  • Tauri 2
  • Rust
  • WireGuard
  • WFP
  • Named Pipes
  • DPAPI
  • Debian
  • systemd

Competenze

  • Alfabetizzazione tecnica
  • Analisi dei sistemi

Risultato

  • Uno stack di rete completo su Windows: WFP, API di routing, un resolver DNS e un confine proprio del routing driver — non un involucro del client di qualcun altro.
  • La stabilità del progetto è verificata dai test: 353 test del core e suite separate per frontend, server e deployment.