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

おすすめ記事