Alternativa DynDNS para SSH?

4

Eu tenho um servidor que tem um endereço IP dinâmico e é acessível por SSH. No servidor, um script carrega um arquivo de texto contendo o endereço IP público do servidor para um local da web sempre que esse endereço for alterado.

Como posso me conectar ao servidor de outro cliente? Isso seria semelhante ao DynDNS, mas usando a web para obter o endereço IP.

    
por LanceBaynes 09.06.2011 / 20:11

3 respostas

3

Se você não tem acesso ou não pode usar um serviço DynDNS, crie um alias em ~/.ssh/config e edite o endereço IP sempre que ele for alterado. Coloque estas duas linhas (opcionalmente seguidas por outras configurações para o alias do host) em ~/.ssh/config :

Host nickname
HostName 1.2.3.4
CheckHostIP no
HostKeyAlias nickname

Execute este script sempre que o endereço possa ter mudado.

#!/bin/sh
url='http://example.com/my-server-ip.txt'
ip_address=$(wget -q "$url")
case $ip_address in
  '') :;; # empty file or connection error
  *[!.:0-9A-Fa-f]*) # bad character
    echo 1>&2 "The content at $url doesn't look like an IP address!"; exit 1;;
  *) # this looks like an IP address
    ed -s ~/.ssh/config <<EOF
/^ *Host  *nickname
/^ *HostName 
s/e .*/e $ip_address/
w
q
EOF
esac
    
por 09.06.2011 / 23:06
3

Você pode usar o comando nsupdate para fazer uma atualização do DNS dinâmico para o servidor remoto. Estou assumindo, mas não está claro, que você está comparando o serviço comercial (gratuito) oferecido pelo DynDNS com "alguma outra coisa". Acontece que "DNS dinâmico" é na verdade um protocolo padronizado para atualização de registros. Você não precisa mover um arquivo .txt com um registro (embora isso também funcione). Você pode usar nsupdate para atualizar uma entrada em uma zona ao vivo.

    
por 09.06.2011 / 22:33
0

Por que você simplesmente não atualiza suas entradas de DNS com esse IP?

Estou fazendo isso usando ssh-dyndns . Veja a descrição na minha entrada de blog .

    
por 19.02.2013 / 14:07

Tags