Não é o cliente ssh que decide através de qual interface TCP pacotes devem ir, é o kernel. Em suma, o SSH pede ao kernel para abrir uma conexão com um determinado endereço IP e o kernel decide qual interface deve ser usada consultando as tabelas de roteamento.
(O seguinte assume que você está no GNU / Linux; o conceito geral é o mesmo para todos os Unices, mas as especificidades dos comandos a serem executados e a forma como a saída é formatada pode variar.)
Você pode exibir as tabelas de roteamento do kernel com os comandos rota -n e / ou ip route show .
O OpenConnect deveria ter adicionado uma linha para a interface tun0
;
conexões para qualquer endereço correspondente a essa linha será encaminhado através
essa interface. Por exemplo, executando route -n
no meu laptop eu recebo
a seguinte saída:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.30.0.1 0.0.0.0 UG 0 0 0 eth0
10.30.0.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
Isso significa que conexões para hosts no 192.168.122.0/24 (isto é, endereços 192.168.122.0 a 192.168.122.255 de acordo com CIDR notação )
será encaminhado através da interface virbr0
; aqueles para 169.254.0.0/16 e
10.30.0.0/24 irá passar por eth0
e qualquer outra coisa (a 0.0.0.0
line) será encaminhado através da eth0 para o host do gateway 10.30.0.1.