O problema é que o Android não adiciona a tabela de rotas principal ao seu sistema de arquivos.
Nesse caso, o ping do lado de fora do Android só funciona com a opção -I interface_number
, por exemplo:
ping -I eth3 192.168.0.108
Mas o ping do Android não funciona.
Para corrigir este problema, é necessário adicionar a tabela de rotas principal:
ip rule add from all lookup main pref 1
Você pode encontrar a tabela de rotas principal adicionada:
ip rule
0: from all lookup local
1: from all lookup main
10000: from all fwmark 0xc0000/0xd0000 lookup 99
13000: from all fwmark 0x10063/0x1ffff lookup 97
15000: from all fwmark 0x0/0x10000 lookup 99
16000: from all fwmark 0x0/0x10000 lookup 98
17000: from all fwmark 0x0/0x10000 lookup 97
E a entrada da rota:
ip route list table main
192.168.0.0/24 dev eth3 proto kernel scope link src 192.168.0.105