WhoisThat un moderno client VPN per Linux basato su Rust, Go e Xray-core

  • Categoria dell'articolo:Software
  • Articolo pubblicato:
WhoisThat
WhoisThat

La gestione delle connessioni VPN su Linux offre numerose possibilità, ma spesso richiede l’utilizzo di applicazioni grafiche pesanti oppure configurazioni manuali non sempre immediate. WhoisThat punta a offrire un’alternativa moderna attraverso un’interfaccia TUI (Terminal User Interface), progettata per essere utilizzata direttamente dal terminale.

Il progetto è sviluppato utilizzando Rust e Go e integra il motore di rete Xray-core, una soluzione conosciuta per il supporto a diversi protocolli proxy e sistemi di instradamento del traffico. L’obiettivo è mettere a disposizione degli utenti Linux un client VPN completo, leggero e configurabile, senza dipendere da applicazioni basate su Electron.

WhoisThat non si limita a stabilire una connessione VPN, ma comprende funzionalità avanzate per la gestione del traffico di rete, la protezione delle connessioni, il controllo delle applicazioni e l’organizzazione delle configurazioni fornite dai provider.

Uno degli aspetti più interessanti è l’attenzione rivolta all’integrazione con il sistema operativo. Il software utilizza infatti funzionalità native di Linux per gestire il routing, le regole firewall e lo smistamento delle connessioni, offrendo un controllo particolarmente dettagliato sull’utilizzo della rete.

Supporto multiprotocollo, TUN rootless e split tunneling

Il cuore di WhoisThat è rappresentato da un motore multiprotocollo basato su una versione specifica di Xray-core, indicata nel progetto come v26.10.31.

Il client supporta diversi protocolli utilizzati per connessioni proxy e VPN, tra cui VLESS, VMess, Trojan, Shadowsocks, SOCKS5 e Hysteria2. Per VLESS sono disponibili diverse modalità di trasporto e configurazione, comprese Reality, Vision, xHTTP, gRPC e WebSocket.

Una caratteristica particolarmente interessante è il supporto al routing TUN a livello di sistema senza richiedere l’esecuzione permanente del programma come root. WhoisThat sfrutta infatti le Linux file capabilities per ottenere i privilegi di rete necessari, utilizzando:

  • cap_net_admin
  • cap_net_raw
  • cap_setpcap

Questo approccio permette di gestire il traffico attraverso un’interfaccia TUN senza ricorrere a binari setuid o all’esecuzione continua con privilegi amministrativi.

Un’altra funzionalità importante è lo split tunneling basato su cgroup v2. Questa tecnologia consente di decidere quali applicazioni devono utilizzare la VPN e quali possono continuare a collegarsi direttamente alla rete.

Attraverso il comando whoisthat run <app>, è possibile avviare un’applicazione utilizzando le regole di instradamento configurate dal client. Il sistema sfrutta slice systemd temporanee e policy routing per distinguere il traffico delle singole applicazioni.

WhoisThat Linux
WhoisThat Linux

Non manca un kill-switch basato su nftables, progettato per bloccare il traffico che potrebbe uscire dalla connessione normale quando la VPN si interrompe inaspettatamente.

WhoisThat integra anche funzionalità DNS avanzate, tra cui DNS Hijack e FakeDNS. Le richieste DNS possono essere intercettate e indirizzate verso resolver differenti, distinguendo il traffico nazionale da quello remoto. Le applicazioni escluse dallo split tunneling mantengono invece la possibilità di effettuare risoluzioni DNS direttamente.

Gestione delle sottoscrizioni, sicurezza e integrazione con Linux

WhoisThat dedica particolare attenzione alla gestione delle configurazioni distribuite dai provider VPN. Il software supporta l’importazione di profili Happ Routing attraverso indirizzi happ://routing/..., consentendo di organizzare le regole secondo modalità differenti: automatiche, manuali oppure basate sulle sottoscrizioni.

Sono disponibili anche preset dedicati a diverse esigenze, tra cui blocco della pubblicità, esclusione del traffico nazionale dalla VPN, servizi multimediali e applicazioni di intelligenza artificiale.

Il supporto alle sottoscrizioni JSON permette inoltre di importare configurazioni Xray specifiche per ciascun server, mantenendo le regole di routing e i bilanciatori definiti dal provider.

Un elemento interessante riguarda l’aggiornamento automatico delle sottoscrizioni. WhoisThat rispetta il parametro profile-update-interval, che può essere specificato nell’intestazione oppure nel contenuto del profilo. Il programma può recuperare gli aggiornamenti non effettuati durante periodi di spegnimento del computer e permette di disabilitare o modificare la frequenza di aggiornamento per ciascuna sottoscrizione.

Gli aggiornamenti vengono eseguiti in background senza interrompere le sessioni VPN attive.

Sul fronte della sicurezza, credenziali, sottoscrizioni e regole personalizzate vengono conservate localmente utilizzando la cifratura AES-256-GCM. È presente anche un monitor del traffico in tempo reale, basato su caratteri Unicode Braille, che visualizza la velocità di ricezione e trasmissione dei dati attraverso grafici dinamici e informazioni sullo stato dell’interfaccia di rete.

L’integrazione con il desktop Linux comprende l’importazione delle configurazioni dai browser attraverso collegamenti personalizzati wit://, un’estensione ufficiale per GNOME Shell e lo streaming continuo dei dati in formato NDJSON, utilizzabile da strumenti come Waybar e Polybar.

Per quanto riguarda l’installazione, il progetto mette a disposizione uno script compatibile con le principali distribuzioni Linux:

curl -fsSL https://raw.githubusercontent.com/kvunoff/whoisthat/main/install.sh | bash

Lo script scarica i binari statici compilati per musl dall’ultima release disponibile e verifica i checksum SHA-256 degli archivi. È inoltre possibile specificare una versione precisa utilizzando --release vX.Y.Z oppure compilare direttamente dai sorgenti con --from-source.

Sono disponibili anche pacchetti per distribuzioni Linux e un pacchetto AUR. È importante scegliere un solo metodo di installazione, poiché script, pacchetti delle distribuzioni e AUR installano gli stessi file e possono entrare in conflitto.

WhoisThat rappresenta una soluzione interessante per gli utenti Linux che cercano un client VPN da terminale con funzionalità avanzate, particolare attenzione alla sicurezza e una gestione granulare del traffico di rete. La combinazione di Rust, Go e Xray-core permette di riunire in un’unica applicazione strumenti normalmente gestiti attraverso configurazioni e programmi separati.

Home WhoisThat


Lascia un commento