SSHのためのDynDNSの代わりか。

SSHのためのDynDNSの代わりか。

SSH経由でアクセスできる動的IPアドレスを持つサーバーがあります。サーバーでは、スクリプトはアドレスが変更されるたびにサーバーのパブリックIPアドレスを含むテキストファイルをWeb場所にアップロードします。

他のクライアントからサーバーにどのように接続しますか?これはDynDNSに似ていますが、ネットワークを使用してIPアドレスを取得します。

答え1

DynDNSサービスにアクセスできない、または使用していない場合は、エイリアスを作成し、~/.ssh/configIPアドレスが変更されたら編集します。次の2行を入力します(オプションで、そのホストエイリアスのその他の設定が続く可能性があります)~/.ssh/config

Host nickname
HostName 1.2.3.4
CheckHostIP no
HostKeyAlias nickname

このスクリプトは、アドレスが変更されるたびに実行されます。

#!/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

答え2

このnsupdateコマンドを使用して、リモートサーバーで動的DNS更新を実行できます。私はあなたがDynDNSが提供する(無料)商用サービスを「他のサービス」と比較していると仮定します(しかし知りません)。 「動的DNS」は、実際にはレコード更新のための標準化されたプロトコルであることがわかりました。レコードを含む.txtファイルを移動する必要はありません(これはうまくいきます)。代わりに、nsupdateアクティブ領域で更新エントリを使用できます。

答え3

単にそのIPでDNSエントリを更新したらどうでしょうか?

私はこれを使ってこれをやっていますSSH-dyndns。よりマイブログエントリの説明

関連情報