Além da resposta de Tony, de consultar o OpenDNS, que uso em meus scripts ao fazer logon em meus servidores para exibir tanto a máquina local quanto o endereço IP público remoto:
echo 'hostname' 'hostname -i' 'dig +short +time=1 myip.opendns.com @resolver1.opendns.com'
O Google também oferece um serviço semelhante.
dig TXT +short o-o.myaddr.l.google.com @ns1.google.com | awk -F'"' '{ print $2}'
Se você tiver um endereço IP privado, atrás de um roteador / infra-estrutura residencial ou corporativa, ou mesmo se você for seu próprio roteador, esses serviços na Internet revelarão o endereço IP público que você está usando para alcançá-los, é o que chega a eles fazendo o pedido.
Por favor, note que os métodos acima só funcionam se a máquina Linux em questão tiver acesso direto à Internet .
Se o seu servidor Linux é o seu roteador, além de você poder dar uma olhada nas suas interfaces atuais, você também pode fazer:
hostname -i
Como normalmente, o endereço IP público geralmente é a interface principal / primeira. Se não for a primeira interface, você também pode fazer:
$hostname -I
95.xx.xx.xxx 192.168.202.1 192.168.201.1
Que mostra todos os endereços IP das interfaces da máquina.
Por favor, leia também:
Como Encontre meu endereço IP público da linha de comando em um Linux
Novamente, se o servidor Linux for o roteador, pode ser interessante colocar um script em /etc/dhcp/dhclient-exit-hooks.d
para rastrear e atuar em suas alterações de IP, conforme documentado nesta pergunta:
Melhor método para agir sobre Alteração do endereço IP do ISP?