VPNSmith
Strumento gratuito - split tunneling WireGuard

Calcolatore AllowedIPs WireGuard

WireGuard non ha un'impostazione «escludi»: per instradare tutto tranne la tua LAN o un indirizzo, AllowedIPs deve elencare tutte le altre reti. Indica cosa deve passare nel tunnel e cosa deve restarne fuori, e ottieni la riga AllowedIPs esatta, un blocco [Peer] pronto da incollare e i comandi per controllare le rotte. Tutto viene calcolato nel tuo browser.

Funziona interamente nel tuo browser. Niente di ciò che scrivi lascia la pagina.

Di solito 0.0.0.0/0, ::/0 (tutto). Per un tunnel che raggiunge solo una rete remota, inserisci quella rete, per esempio 10.0.0.0/24. Separa le voci con virgole, spazi o a capo.

La tua LAN, intervalli privati o indirizzi singoli (un IP da solo vale /32 o /128).

Riaggiunto dopo le esclusioni. Inserisci qui la subnet del tuo tunnel WireGuard se cade in un intervallo escluso.

Un indirizzo IP, non un nome host. Viene escluso come indirizzo singolo, il che evita il loop di routing su Linux.

Comandi di test delle rotte per
  • Su Linux con wg-quick, una lista senza /0 che copre l'IP pubblico del server invia i pacchetti cifrati nel tunnel. Inserisci sopra l'IP del server per escluderlo.

Risultato

24
IPv4: prefissi
1
IPv6: prefissi
99.99%
dello spazio IPv4 nel tunnel
AllowedIPs = 0.0.0.0/1, 128.0.0.0/2, 192.0.0.0/9, 192.128.0.0/11, 192.160.0.0/13, 192.168.0.0/24, 192.168.2.0/23, 192.168.4.0/22, 192.168.8.0/21, 192.168.16.0/20, 192.168.32.0/19, 192.168.64.0/18, 192.168.128.0/17, 192.169.0.0/16, 192.170.0.0/15, 192.172.0.0/14, 192.176.0.0/12, 192.192.0.0/10, 193.0.0.0/8, 194.0.0.0/7, 196.0.0.0/6, 200.0.0.0/5, 208.0.0.0/4, 224.0.0.0/3, ::/0
peer.conf
[Peer]
PublicKey = <server public key>
Endpoint = SERVER_PUBLIC_IP:51820
AllowedIPs = 0.0.0.0/1, 128.0.0.0/2, 192.0.0.0/9, 192.128.0.0/11, 192.160.0.0/13, 192.168.0.0/24, 192.168.2.0/23, 192.168.4.0/22, 192.168.8.0/21, 192.168.16.0/20, 192.168.32.0/19, 192.168.64.0/18, 192.168.128.0/17, 192.169.0.0/16, 192.170.0.0/15, 192.172.0.0/14, 192.176.0.0/12, 192.192.0.0/10, 193.0.0.0/8, 194.0.0.0/7, 196.0.0.0/6, 200.0.0.0/5, 208.0.0.0/4, 224.0.0.0/3, ::/0
PersistentKeepalive = 25
verify-routes.sh
# Cosa cattura il peer, così come è caricato nel kernel
sudo wg show wg0 allowed-ips

# Un indirizzo escluso: NON deve usare l'interfaccia WireGuard
ip route get 192.168.1.10

# Un indirizzo nel tunnel: deve usare l'interfaccia WireGuard
ip route get 1.1.1.1

Lo split tunneling è preciso su un server che controlli

Sul tuo server WireGuard decidi ogni intervallo che ci passa, l'indirizzo dell'endpoint non cambia mai ed escluderlo è una riga. Il VPS di base di Contabo include un indirizzo IPv4 pubblico e accesso root completo.

Link di affiliazione: potremmo ricevere una commissione, senza costi extra per te. Il calcolatore resta gratuito e non dipende da questo.

Vedi il VPS Contabo

Perché una sola esclusione diventa due dozzine di righe

AllowedIPs svolge due compiti insieme: è l'elenco delle destinazioni che il client invia nel tunnel e l'elenco degli indirizzi sorgente che accetta dal peer. Entrambi si scrivono in blocchi CIDR, e un blocco CIDR è sempre un intervallo di dimensione potenza di due, allineato sulla propria dimensione. Togliere un /24 dall'intero spazio IPv4 lascia quindi un blocco per ogni bit tra /0 e /24: 24 prefissi. Non è un difetto del risultato, è la risposta esatta più breve.

Tutto tranne 192.168.1.0/24, con IPv6 ancora interamente nel tunnel:

AllowedIPs = 0.0.0.0/1, 128.0.0.0/2, 192.0.0.0/9, 192.128.0.0/11, 192.160.0.0/13, 192.168.0.0/24, 192.168.2.0/23, 192.168.4.0/22, 192.168.8.0/21, 192.168.16.0/20, 192.168.32.0/19, 192.168.64.0/18, 192.168.128.0/17, 192.169.0.0/16, 192.170.0.0/15, 192.172.0.0/14, 192.176.0.0/12, 192.192.0.0/10, 193.0.0.0/8, 194.0.0.0/7, 196.0.0.0/6, 200.0.0.0/5, 208.0.0.0/4, 224.0.0.0/3, ::/0

Su Linux, wg-quick mantiene già utilizzabili le rotte della LAN collegata direttamente in modalità full tunnel, grazie alla regola suppress_prefixlength 0. Un'esclusione esplicita conta soprattutto su Android e iOS, su Windows quando rinunci al kill-switch per l'accesso locale, per le reti non collegate direttamente (una seconda subnet dietro il router) e per gli indirizzi pubblici da raggiungere fuori dalla VPN, come una banca che blocca le uscite VPN.

Gli intervalli che si escludono di solito

Escludi solo il necessario: ogni intervallo lasciato fuori è traffico che esce dal tunnel senza protezione. Ecco gli intervalli riservati standard e il motivo per escludere ciascuno.

IntervalloCos'èEscluderlo quando
192.168.1.0/24Una tipica LAN domestica (controlla la tua)Ti servono stampante, NAS o router mentre sei connesso
10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16Tutto l'IPv4 privato RFC 1918Passi tra reti che non conosci in anticipo
169.254.0.0/16IPv4 link-local (RFC 3927)Dispositivi autoassegnati, o l'indirizzo dei metadati cloud 169.254.169.254 su una VM
fc00::/7IPv6 unique local (RFC 4193)I dispositivi della LAN usano anche indirizzi IPv6 ULA
fe80::/10IPv6 link-local (RFC 4291)Raramente necessario: le rotte per interfaccia vincono già
203.0.113.10/32Un indirizzo pubblico (esempio)Un servizio che rifiuta il traffico VPN, o l'IP del server stesso su Linux

Domande frequenti

Come escludo la mia rete locale da un tunnel WireGuard?
AllowedIPs non ha una sintassi di esclusione, quindi si scrive il complemento. Metti 0.0.0.0/0, ::/0 nel campo delle reti incluse e la tua LAN, per esempio 192.168.1.0/24, in quello delle esclusioni: il calcolatore restituisce i blocchi CIDR che coprono tutto il resto. Incolla la riga nella sezione [Peer] della configurazione client. Su Android, l'app ufficiale ha una casella «Exclude private IPs» che fa lo stesso per gli intervalli privati.
Perché la riga AllowedIPs è così lunga?
Un blocco CIDR è un intervallo di dimensione potenza di due allineato sulla sua dimensione, quindi aprire un buco lascia un blocco per ogni bit di differenza. Togliere un /24 da 0.0.0.0/0 dà 24 prefissi, togliere i tre intervalli RFC 1918 qualcuno in più. La lista sembra lunga ma è esatta, e il kernel la gestisce senza costi misurabili.
Devo escludere l'IP del server WireGuard stesso?
Con wg-quick su Linux sì, appena la tua lista non è un semplice 0.0.0.0/0. wg-quick applica il suo policy routing, che protegge l'endpoint, solo alle voci /0; con qualsiasi altra lista le rotte finiscono nella tabella principale e, se coprono l'indirizzo pubblico del server, i pacchetti cifrati vengono inviati nel tunnel stesso. Inserisci l'endpoint nel calcolatore: viene escluso come indirizzo singolo. Sulle altre piattaforme non costa nulla.
Escludere un intervallo disattiva il kill-switch su Windows?
Sì. WireGuard per Windows offre «Block untunneled traffic (kill-switch)» solo quando il tunnel ha un unico peer il cui AllowedIPs contiene 0.0.0.0/0 o ::/0. Una lista calcolata senza /0 fa sparire l'opzione. Decidi cosa conta di più su quel dispositivo: l'accesso locale o il blocco rigido di tutto ciò che è fuori dal tunnel.
Client o server: dove va questo AllowedIPs?
Nella sezione [Peer] del client, dove decide cosa il client invia nel tunnel. Sul server, ogni peer client mantiene solo il proprio indirizzo di tunnel, per esempio 10.66.66.2/32. Due peer sul server non devono mai condividere un intervallo: WireGuard assegna ogni indirizzo a un solo peer e l'ultimo configurato se lo prende.
Il DNS passa ancora nel tunnel dopo aver escluso la LAN?
No, se il tuo server DNS è nell'intervallo escluso. Un router su 192.168.1.1 usato come resolver verrà raggiunto fuori dal tunnel e ogni richiesta uscirà senza protezione. Imposta DNS = nella sezione [Interface] su un indirizzo che resta nel tunnel, come l'IP di tunnel del server o un resolver pubblico che la lista instrada ancora.