Calculadora AllowedIPs do WireGuard
O WireGuard não tem uma opção «excluir»: para encaminhar tudo menos a sua LAN ou um endereço, o AllowedIPs tem de listar todas as outras redes. Indique o que o túnel deve transportar e o que deve deixar de fora, e obtenha a linha AllowedIPs exata, um bloco [Peer] pronto a colar e os comandos para verificar as rotas. Tudo é calculado no seu navegador.
Funciona inteiramente no seu navegador. Nada do que escreve sai da página.
Normalmente 0.0.0.0/0, ::/0 (tudo). Para um túnel que só chega a uma rede remota, indique essa rede, por exemplo 10.0.0.0/24. Separe as entradas com vírgulas, espaços ou quebras de linha.
A sua LAN, faixas privadas ou endereços isolados (um IP sozinho vale /32 ou /128).
Volta a ser adicionado depois das exclusões. Coloque aqui a sub-rede do seu túnel WireGuard se cair numa faixa excluída.
Um endereço IP, não um nome de host. É excluído como endereço único, o que evita o loop de roteamento no Linux.
- No Linux com wg-quick, uma lista sem /0 que cobre o IP público do servidor envia os pacotes cifrados para o túnel. Indique acima o IP do servidor para o excluir.
Resultado
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]
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
# O que o peer captura, tal como está carregado no kernel
sudo wg show wg0 allowed-ips
# Um endereço excluído: NÃO deve usar a interface WireGuard
ip route get 192.168.1.10
# Um endereço no túnel: deve usar a interface WireGuard
ip route get 1.1.1.1
O split tunneling é preciso num servidor que controla
No seu próprio servidor WireGuard decide cada faixa que passa por ele, o endereço do endpoint nunca muda e excluí-lo é uma linha. O VPS de entrada da Contabo inclui um endereço IPv4 público e acesso root completo.
Link de afiliado: podemos receber uma comissão, sem custo extra para si. A calculadora continua gratuita e não depende disso.
Porque uma única exclusão vira duas dúzias de linhas
O AllowedIPs faz dois trabalhos ao mesmo tempo: é a lista de destinos que o cliente envia para o túnel e a lista de endereços de origem que aceita do peer. Ambas se escrevem em blocos CIDR, e um bloco CIDR é sempre uma faixa de tamanho potência de dois, alinhada pelo seu próprio tamanho. Retirar um /24 de todo o espaço IPv4 deixa, portanto, um bloco por cada bit entre /0 e /24: 24 prefixos. Não é um defeito do resultado, é a resposta exata mais curta.
Tudo menos 192.168.1.0/24, com o IPv6 ainda inteiro no túnel:
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, ::/0No Linux, o wg-quick já mantém utilizáveis as rotas da LAN diretamente ligada em modo túnel completo, graças à regra suppress_prefixlength 0. Uma exclusão explícita importa sobretudo no Android e no iOS, no Windows quando abdica do kill-switch para ter acesso local, em redes que não estão diretamente ligadas (uma segunda sub-rede atrás do router) e em endereços públicos que quer alcançar fora da VPN, como um banco que bloqueia saídas VPN.
Faixas que se costumam excluir
Exclua só o necessário: cada faixa deixada de fora é tráfego que sai do túnel sem proteção. Estas são as faixas reservadas padrão e o motivo para excluir cada uma.
| Faixa | O que é | Excluir quando |
|---|---|---|
| 192.168.1.0/24 | Uma LAN doméstica típica (confirme a sua) | Precisa da impressora, do NAS ou do router enquanto está ligado |
| 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 | Todo o IPv4 privado RFC 1918 | Muda entre redes que não conhece de antemão |
| 169.254.0.0/16 | IPv4 link-local (RFC 3927) | Dispositivos autoatribuídos, ou o endereço de metadados cloud 169.254.169.254 numa VM |
| fc00::/7 | IPv6 unique local (RFC 4193) | Os dispositivos da LAN também usam endereços IPv6 ULA |
| fe80::/10 | IPv6 link-local (RFC 4291) | Raramente necessário: as rotas por interface já ganham |
| 203.0.113.10/32 | Um endereço público (exemplo) | Um serviço que recusa tráfego VPN, ou o IP do próprio servidor no Linux |