Estou conectado a um VPS e preciso rotear um aplicativo específico por meio de uma VPN. No entanto, quando habilito minha VPN via WireGuard, minha conexão SSH com o VPS cai. Por padrão, minha VPN roteia todo o tráfego por si mesma, mas eu quero que apenas determinados aplicativos usem a VPN. Meu objetivo é configurar o WireGuard para que apenas aplicativos explicitamente vinculados à interface de rede da VPN ( se-got-wg-001
) usem a VPN, enquanto outros continuarão usando a interface padrão ( eth0
).
Abaixo está minha configuração atual do WireGuard:
[Interface]
PrivateKey = REDACTED
Address = 10.66.127.142/32,fc00:bbbb:bbbb:bb01::3:7f8d/128
DNS = REDACTED
[Peer]
PublicKey = REDACTED
AllowedIPs = 0.0.0.0/0,::0/0
Endpoint = REDACTED
Quero que essas alterações persistam após uma reinicialização. Quais modificações devo fazer para garantir que meu sistema use eth0
como interface padrão, mesmo quando a VPN estiver habilitada?
Encontrei algumas postagens relacionadas que podem ajudar, mas ainda não tenho certeza sobre os passos que preciso seguir:
- Cliente Wireguard com duas interfaces - Use uma interface para Wireguard
- https://www.reddit.com/r/WireGuard/comments/npf4bp/new_to_wireguard_tips_for_routing_only_certain/
- https://serverfault.com/questions/1075973/wireguard-how-to-only-tunnel-some-of-the-traffic
- https://www.reddit.com/r/WireGuard/comments/vytuv5/is_it_possible_to_setup_wireguard_so_it_only/
Aqui estão algumas informações sobre meu sistema:
root@vmixxx /e/wireguard# neofetch
.-/+oossssoo+/-. [email protected]
`:+ssssssssssssssssss+:` ---------------------------------
-+ssssssssssssssssssyyssss+- OS: Ubuntu 24.04.1 LTS x86_64
.ossssssssssssssssssdMMMNysssso. Host: KVM/QEMU (Standard PC (i440FX + PIIX, 1996) pc-i440fx-7.2)
/ssssssssssshdmmNNmmyNMMMMhssssss/ Kernel: 6.8.1-1009-realtime
+ssssssssshmydMMMMMMMNddddyssssssss+ Uptime: 2 hours, 45 mins
/sssssssshNMMMyhhyyyyhmNMMMNhssssssss/ Packages: 1813 (dpkg), 4 (snap)
.ssssssssdMMMNhsssssssssshNMMMdssssssss. Shell: fish 3.7.0
+sssshhhyNMMNyssssssssssssyNMMMysssssss+ Resolution: 800x600
ossyNMMMNyMMhsssssssssssssshmmmhssssssso CPU: AMD EPYC 7282 (4) @ 2.794GHz
ossyNMMMNyMMhsssssssssssssshmmmhssssssso GPU: 00:02.0 Vendor 1234 Device 1111
+sssshhhyNMMNyssssssssssssyNMMMysssssss+ Memory: 2630MiB / 5925MiB
.ssssssssdMMMNhsssssssssshNMMMdssssssss.
/sssssssshNMMMyhhyyyyhdNMMMNhssssssss/
+sssssssssdmydMMMMMMMMddddyssssssss+
/ssssssssssshdmNNNNmyNMMMMhssssss/
.ossssssssssssssssssdMMMNysssso.
-+sssssssssssssssssyyyssss+-
`:+ssssssssssssssssss+:`
.-/+oossssoo+/-.
O WireGuard não lida com roteamento. O wg-quick converte seus AllowedIPs em rotas, então se você tiver "AllowedIPs = 0.0.0.0/0", o wg-quick adicionará uma rota 0.0.0.0/0 a partir disso.
Na sua configuração wg-quick, especifique
Table=
para que ele instale as rotas em uma tabela de roteamento diferente em vez da tabela principal. Por exemplo:Quando a VPN for ativada, execute
ip [-4] [-6] route ls table 40
para verificar se as rotas realmente foram colocadas nessa tabela.Por fim, use
ip -4 rule add from 10.66.127.142/32 lookup 40
o sistema operacional para selecionar essa tabela para quaisquer pacotes originados do endereço IPv4 do wg0 e repita o mesmo paraip -6 rule
seu endereço IPv6 (você pode especificarfrom fc00::/8
se não entrará em conflito com outras interfaces, mas é melhor corresponder a todo o /128).Configure o wg-quick
PostUp=
para adicionar automaticamente essas regras de roteamento de políticas.