Alterar rota internet entre 2 redes

Olá pessoal tenho o seguinte cenário:
Tenho um PC (B) com Debian. Este PC possui uma eth0 e uma wlan0 as duas possuem conexão com a internet por redes diferentes, gostaria de poder escolher a rota que quero usar para acessar a internet:
Por exemplo… No momento estou acessando do meu PC (A) remotamente o PC (B) com conexão feita pela eth0 mas quero que este PC (B) use a internet vinda da wlan0 apenas e não a vinda da eth0.
Ou seja quero usar a rede eth0 somente para acesso remoto ssh e vnc entre meu PC (A) e PC (B) e que meu PC (B) acesso a internet somente pela rede wlan0.
Alguém tem alguma ideia?
Obrigado!

Uma resposta simplificada seria especificar que conexões vindas do seu IP devem passar pelo eth0:

ip route # Ver as rotas antes
sudo ip route add $SEUIP via $GATEWAYETH0 dev eth0 # aplicativos que quiserem conectar ao seu ip passam pelo gateway do eth0
sudo ip route add default via $GATEWAYWLAN0 dev wlan0 # o padrão é passar pelo wlan0 e gateway associado

Fonte: Linux Set Up Routing with ip Command - nixCraft

Não sei como fica para IPs dinâmicos (e vai que um site tem o mesmo provedor que você) nem como filtrar por portas (nem sei se é possível).

1 Curtida

No caso minha conexão ssh/vnc do PC (A - 192.168.0.130) para o PC (B - 192.168.0.140) é somente pela rede interna, então neste caso o ip de acesso é fixo entre os 2.
No PC (B) está assim:

#ip route show

default via 192.168.0.1 dev eth0 
default via 192.168.0.1 dev wlan0 proto dhcp metric 600 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.130 
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.103 metric 600 

então eu devo colocar assim?
sudo ip route add 192.168.0.130 via 192.168.0.1 dev eth0
Eu devo adicionar o meu ip do PC A?
sudo ip route add default via 192.168.0.1/24 dev wlan0

Caso algo dê errado como posso voltar a configuração anterior (resetar as configurações feitas)? é apenas usar o delete?
Vlw Capezotte!

1 Curtida

Acho que, nesse caso, só precisa deletar a rota default da eth0

ip route del default via 192.168.0.1 dev eth0

Para voltar pra anterior é só trocar del por add.

Quem é 192.168.0.1 ?

2 Curtidas

É o gateway padrão

Ah…para resetar, no tutorial fala que quando o sistema for reiniciado as configurações são apagadas, então eu teria que salvar as configurações para carregar na inicialização.

A solução do @chimpa_theist funcionou pra mim
Bom… minhas rotas estavam assim:

Tinha duas “default” então o que eu fiz foi deletar uma, no caso a eth0
route delete default gw 192.168.0.1 eth0

então agora ficou apenas uma rota default, no caso wlan0

route                                   
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.0.1     0.0.0.0         UG    600    0        0 wlan0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     600    0        0 wlan0

Minha conexão ssh/vnc continua ativa pela rede local e a internet do PC (B) está sendo acessado pela outra rede.

1 Curtida