必要に応じて簡単にSSHに接続できるように、定期的にクライアントコンピュータを「自宅に電話する」方法を探しています。私はパブリックIPアドレスを取得し、Twitterのようなどこかに投稿したり、私が運営しているApacheサーバーへのhttpリクエストや変更時に電子メールを送信する簡単なスクリプトを考えています。
この目的のための既存のツール/スクリプトはありますか?検索しましたが、何も見つかりませんでした。
答え1
DDクライアント
最も簡単な方法はDDクライアント。私はこれをdynu.comのような無料のネームサーバーと一緒に私のサーバーで使用します。
リンクにはより多くのドキュメントがありますが、ddclient
クライアントは動的IPアドレスに対してポーリングされます。変更したら、新しいアドレスをdynu.com(たとえば)に送信します。 dynu.comにカスタムドメイン名を指定できるアカウントがあります。これですぐに接続できます。http://yourname.dynu.com、クライアントのIPにリダイレクトされます。
数値IPアドレスを使用するよりも利点は、SSH構成を継続的に更新する必要がなく、ドメイン名に直接接続できることです。これは私のサーバーでうまく機能します。
デジタルIP
または、それを使用したくなく、どこかにデジタルIPを公開したい場合は、ここで私が使用した古いスクリプトがあります。外部Webページを使用してローカルIPを見つけることは唯一の簡単な方法です。これによりメールが送信されますが、[email protected]
必要に応じて変更できます。 cronジョブとして実行できます。
#!/usr/bin/env bash
CURRENTIP=$(curl -s http://myip.dnsomatic.com)
# Alternatively, use http://icanhazip.com
if echo $CURRENTIP | grep -qE '^([0-9]{1,3}\.){3}[0-9]{1,3}$' ; then
if ! cmp --quiet <(echo $CURRENTIP) /home/pi/.myipaddress ; then
echo "IP address changed to ${CURRENTIP}"
echo $CURRENTIP > /home/foo/.myipaddress
echo -e "Foo's IP address has changed to ${CURRENTIP} .\n" | mail -s 'Change of IP address' [email protected]
fi
else
echo "ERROR: IP address enquiry returns ${CURRENTIP}"
fi