ダイナミックDNSの設定方法

ダイナミックDNSとは何ですか?

DNS設定の一般的な例を見てみましょう。ドメインはexample.comであり、およびの「A」レコードがserver1.example.comありserver2.example.comます。Server1はVultrでホストされていますが、server2はビジネスの内部や自宅の開発マシンなどのローカルネットワークでホストされています。通常、これらのタイプのローカル環境には、インターネットサービスプロバイダー(ISP)から動的に割り当てられるパブリックIPアドレスがあり、予期せず変更される可能性があります。これにより、server2が突然間違ったIPアドレスをポイントし、サービスに深刻な影響を与える可能性があります。この記事では、ローカルマシンで実行され、パブリックIPの変更後にVultr DNSのserver2のレコードを自動的に更新できる独自の動的DNSサービスを設定する方法を示します。

クライアントが好きなもののddclientおよびinadyn一部のDNSプロバイダーのために働くだろう、Vultrは現在、これらをサポートし、代わりに、独自のカスタムAPIを使用していません。このサービスはマシン上でローカルに実行され、GETおよびPOSTリクエストとアクセスキーを使用します。

前提条件

  • Vultrアカウントにアクセスして、DNSをセットアップし、アクセスキーを管理します。
  • 動的IPアドレスを持つローカルマシンに接続する機能(または同じネットワーク上の別のマシンにアクセスする機能)。

インストールとセットアップ

VultrのDNSサービスを使用するようにドメインを設定する

  • ドメインでVultrのDNSサービスを使用していない場合は、この記事に従ってネームサーバーを変更し、Vultrで使用できるようにします。
  • Vultr DNSがセットアップされたら、「サーバー-> DNS-> [ドメイン名]」の下のDNS管理ページに移動します。
  • ここには、ドメインに設定されたすべてのレコードが表示されます。後で必要になるので、変更するレコードを書き留めます。
    • Aこのユーティリティでは" "レコードのみがサポートされています。A同じIPアドレスに更新する複数の「」レコードがある場合は、それらを「CNAME」レコードに変更し、1つの「A」レコードを指すようにします。これにより、長期的には物事が簡素化され、DNSを構成する適切な方法と見なされます。

必要なツールのインストール

  • ローカルサーバーに接続します。これは直接またはSSHを介して行うことができます。
  • このツールにはPython 3が必要です。ほとんどのLinuxディストリビューションには、Pythonがプリインストールされています。ご使用の環境にインストールされていない場合の手順は、公式のPython wikiから入手できます。
  • このプロセスにはGitも必要です。Gitは以下の手順でインストールできます。

ダイナミックDNSクライアントのダウンロード

Gitを使用して、Python DDNSクライアントを含むリポジトリのクローンを作成します。これは、完全なアクセス権を持つ安全なディレクトリで行う必要があります。ホームフォルダーで十分です。次のコマンドを実行します。

git clone https://github.com/andyjsmith/Vultr-Dynamic-DNS.git vultrddns && cd vultrddns

個人用アクセストークンの生成

Vultrで個人用アクセストークンを生成します。これは、「アカウント-> API->パーソナルアクセストークン」で実行できます。同じページで、「アクセス制御」の下に移動し、「すべてのIPv4を許可」ボタンをクリックする必要があります。これは、ローカルサーバーのIPが常にわからないため、動的DNSのポイントがわからないためです。

サーバー用のツールの構成

  • config.json.example構成ファイルがどのように見えるかの例については、ファイルを一読してください。
  • config.jsonお好みのテキストエディターを使用してファイルを開き、特定のサーバー設定に基づいて値を入力します。
  • ファイルには次のものが含まれている必要があります。

    {
        "api_key": "",
        "domain": "",
        "dynamic_records": [
        ""
        ]
    }
    
  • フィールドにアクセストークンを入力しますapi_key

  • domainフィールドにベースドメインを入力します。たとえば、example.com
  • 次に、A変更する「」レコードをdynamic_recordsフィールドの下に入力します。前の例を使用して、を入力server2すると、server2のIPアドレスが自動的に変更されます。複数のサブドメインを入力できます。Aドメインの基本的な " "レコード(通常@、に移動したときに応答するレコードとして)を変更する場合は、example.com空の引用符をそのまま残します。
  • 適切な設定ファイルを使用すると、動的にIPを変更したい場合は、このようになりますexample.comserver2.example.com

    {
        "api_key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
        "domain": "example.com",
        "dynamic_records": [
        "",
        "server2"
        ]
    }
    
  • これらの変更を保存すると、ファイルが正常に機能するはずです!

構成をテストする

  • を実行して、スクリプトと設定をテストしますpython3 ddns.py。これでエラーが返されない場合、構成は公称値であり、自動化プロセスを開始できます。

オートメーション

基本的なセットアップが完了したら、スクリプトはデフォルトでこれを実行しないため、定期的なタスクをセットアップすることが重要です。ローカルマシンに接続し、オペレーティングシステムに基づいて以下の手順に従います。

LinuxおよびMac OSX

LinuxおよびMacにはcronユーティリティがすでにインストールされており、設定したスケジュールで実行するスクリプトを指定できます。

  • ディレクトリ内にいるときにddns.pyを使用realpath ddns.pyして、ファイルの完全パスを見つけますvultrddns
  • 実行crontab -eしてcrontabを編集します。
  • 次の行をファイルの最後に追加し、ddns.pyファイルへの実際のパスを追加します。

    */30 * * * * python3 [full path to ddns.py] > /dev/null 2>&1
    
  • これにより、スクリプトが30分ごとに実行され、すべての出力がにリダイレクトされ/dev/nullます。

  • 保存してテキストエディタを終了します。crontabファイルが自動的にインストールされ、IPが自動的に更新されます。

ウィンドウズ

タスクスケジューラでタスクを作成し、30分ごとに実行します。基本的なタスクの作成については、Microsoftのガイドに従ってください。

  • タスクスケジューラを開き、[タスクの作成...]をクリックします。
  • 名前を付けて、新しいトリガーを作成します。
  • 「毎日」をクリックします。[詳細設定]で30分ごとにタスクを繰り返してクリックし、[期間]を[無期限]に変更します。
  • 新しいアクションを追加してプログラムを開始し、Python実行可能ファイルを参照します。ddns.pyスクリプトを引数として追加します。


Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。