Como sei qual interface é minha interface pública?

2

Estou configurando um aplicativo e ele exige que eu insira manualmente uma interface pública. Ao executar sudo route , ele fornece o seguinte resultado:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.55.168.1     0.0.0.0         UG    0      0        0 eth0
10.55.168.0     *               255.255.254.0   U     0      0        0 eth0
192.168.123.0   *               255.255.255.0   U     0      0        0 eth1

Eu posso ver que existem duas interfaces, mas ainda não sei qual delas seria a interface pública?

    
por Dean Meehan 21.10.2015 / 13:03

1 resposta

1

Não há uma definição formal de "interface pública". A definição mais provável é que é aquela em que os pacotes são enviados para a Internet. Essa seria a interface que tiver a rota padrão. No Linux, você pode consultá-lo programaticamente a partir de um shell com

route -n | awk '$1 == "0.0.0.0" {print $8}'

A maioria das variantes Unix tem um comando route , sua linha de comando e sintaxe de saída podem ser um pouco diferentes.

Embora a rota padrão seja a única candidata viável, ela pode ou não ser pública. Muitas máquinas estão atrás de um appliance NAT , portanto, elas não têm uma interface pública. O NAT retransmite conexões de saída através de sua própria interface pública; as conexões de entrada chegariam ao dispositivo NAT e não seriam roteadas para sua máquina, a menos que o NAT fosse especificamente configurado para isso.

    
por 21.10.2015 / 21:25