web-dev-qa-db-ja.com

Ubuntu ServerでダイナミックDNSフェッチサービスを設定するにはどうすればよいですか?

http://no-ip.org/ アカウント内にアカウントとホスト名を作成しました。これは、私のタイプのサーバーで最も一般的に使用されるサービスです。私はコマンドラインnoobであるため、no-ipでddclientを使用する構成プロセスを誰かに教えてもらえますか?

19
Trevon

No-IP用のddclientのセットアップ

ddclientは、動的DNSエントリの更新に使用できる動的更新クライアント(DUC)です。現在のIPアドレスを定期的にチェックし、変更が検出されるとDNS情報を更新します。以下は、No-IP(noip.com/no-ip.com)サービス用にインストールおよび構成する方法です。

まず、ddclientパッケージをインストールします。後で手動で設定するので、設定に関するすべての質問に対してEnterキーを押してください。

Sudo apt-get install ddclient

ddclientデーモンを停止します。 Sudo service ddclient stopコマンドは、バグのためUbuntu 12.04では機能しないため、代わりにpkillを使用します。

Sudo pkill ddclient

構成ファイルを編集します。 geditがデフォルトで作成し、たとえば削除したと思われる後にパスワードを含めることができるバックアップファイル(たとえば、/etc/ddclient.conf~)をオフにするには、Edit -> Preferences -> Editor -> Create a backup copy of files before savingの設定をオフにします。

Sudo gedit /etc/ddclient.conf /etc/default/ddclient

/etc/ddclient.confの古いコンテンツを削除し、以下に示すテンプレートに貼り付けます。

テンプレートのコメントを読み、必要に応じてファイルをカスタマイズします。

Noip.comサブアカウント、つまりパスワードを持つグループ(この機能は有料サービスです)を使用することをお勧めします。この方法では、パスワードは指定されたホストの更新のみにアクセスでき、MXレコードを含む可能性のあるNo-IPアカウント全体へのフルアクセスではありません(パスワードを取得する攻撃者は、電子メールを傍受するためにMXレコードを変更できます)またはIMAPアカウントなどの他のサービス。

おそらくdaemon_interval=3600を設定する必要があります(テンプレートのコメントを参照)。

次のコマンドで構成をテストします。

Sudo ddclient -daemon=0 -debug -verbose -noquiet -force

good(IPアドレスが更新されました)またはnochg(IPアドレスは既にその値に設定されています)応答を受け取るはずです。この時点で次の警告を受け取っても問題ありません(ただし、通常の操作中に警告を受け取り続けることはできません)。

WARNING: updating <hostname>: nochg: No update required; unnecessary attempts to change to the current address are considered abusive

注:No-IPサーバーで何らかのキャッシュが行われているようです。そのため、サーバーから取得した応答が予期したものと異なる場合は、しばらく待つだけで済む場合があります。

設定が完了したら、ddclientデーモンを起動します。

Sudo service ddclient start

また、デーモンはコンピューターを起動するたびに自動的に起動します。

DNSエントリは、IPアドレスの変更が検出されるたびに更新されるようになりました。

トラブルシューティング

パッケージ構成を再度実行します。

Sudo dpkg-reconfigure ddclient

パッケージと構成ファイルを削除します。

Sudo apt-get purge ddclient

デーモン制御:

Sudo service ddclient status
Sudo service ddclient start
Sudo service ddclient stop
# The stop command above does not work on Ubuntu 12.04 due to a bug, but
# it works on 14.04. Here are alternative ways to control the daemon:
ps -A f | grep -i ddclient
Sudo pkill ddclient

キャッシュを削除して、デーモンをだましてデバッグ目的でDNSエントリを更新させます(通常の動作中、DNSエントリは、現在のIPアドレスがキャッシュに保存されているIPアドレスと異なる場合にのみ更新されます)。

Sudo pkill ddclient
Sudo rm /var/cache/ddclient/ddclient.cache
Sudo service ddclient start
# See the result:
tail /var/log/syslog
# If you have set up mail=..., you should also receive an e-mail.
# The syslog and e-mail should show a "good" or "nochg" response.

DNSエントリのIPアドレスを1.2.3.4に設定してデーモンを起動することにより、IPアドレスが変更されたときにデーモンが実際にDNSエントリを更新するかどうかをテストします。

Sudo pkill ddclient
Sudo ddclient -daemon=0 -debug -verbose -noquiet -force -use ip -ip 1.2.3.4
sleep 30   # ddclient will not perform updates less than 30 seconds apart
Sudo service ddclient start

デバッグ実行(DNSエントリを更新しない/必要に応じて/常に):

Sudo ddclient -daemon=0 -debug -verbose -noquiet -noexec
Sudo ddclient -daemon=0 -debug -verbose -noquiet
Sudo ddclient -daemon=0 -debug -verbose -noquiet -force

さまざまな方法を使用して、現在のIPアドレスを検出してください。

Sudo ddclient -query

対象のファイル:

/etc/ddclient.conf
/etc/default/ddclient
/var/cache/ddclient/ddclient.cache

デーモンからのメッセージがここに表示されます(そうするように設定されている場合は、電子メールでも送信されます)。

/var/log/syslog

ドキュメンテーション:

/etc/ddclient.confのテンプレート

################################################################################
# Configuration file for ddclient
################################################################################


################################################################################
# Misc. configurations

# To choose between ipup mode (for dial-on-demand) and daemon mode, please edit
# /etc/default/ddclient.

#mail=root           # E-mail messages to this address
#mail-failure=root   # E-mail messages about failed updates to this address


################################################################################
# How to obtain current IP address

# Methods:
#   use=ip, ip=ADDRESS                                   # Set the IP address to ADDRESS
#   use=if, if=INTERFACE, if-skip=PATTERN                # Obtain IP address by calling 'ifconfig INTERFACE'
#   use=web, web=PROVIDER|URL, web-skip=PATTERN          # Obtain IP address from IP discovery web page
#   use=cmd, cmd=PROGRAM, cmd-skip=PATTERN               # Obtain IP address by calling PROGRAM
#   use=fw|FWMODEL, fw=ADDRESS|URL, fw-skip=PATTERN      # Obtain IP address from firewall web page
#                   fw-login=LOGIN, fw-password=SECRET
#
# The *-skip options can be used to skip IP addresses found before PATTERN.
#
# NOTE: The ddclient IP detection routines do not respect the HTTPS prefix in
# URLs, and instead fall back to HTTP (this is fixed in version 3.8.1). The
# option ssl=yes does not apply to the IP detection either (this is at least
# how versions 3.8.0 to 3.8.2 behave).
#
# The default time between each IP address change check is daemon_interval=300
# (5 minutes), which may be a bit too frequent when using an external IP
# discovery service. To set the checking interval to e.g. one hour instead,
# please edit /etc/default/ddclient and set daemon_interval=3600.

# Obtain IP address from network interface
#use=if, if=eth0

# Obtain IP address from no-ip.com IP discovery web page (unencrypted connection)
use=web, web='http://ip1.dynupdate.no-ip.com:8245/'

# Obtain IP address from no-ip.com IP discovery web page (encrypted connection)
# Encryption does not offer any real protection since a man-in-the-middle
# attack could route the HTTPS connection through a Host belonging to the
# attacker, thus causing an incorrect IP address to be reported.
#use=cmd, cmd='bash -c "set -o pipefail; timeout 120 wget -qO- \
#  --header=Host:ip1.dynupdate.no-ip.com https://dynupdate.no-ip.com/ | head -c 1000"'


################################################################################
# Dynamic DNS service setup

protocol=noip
#server=   # Defaults to dynupdate.no-ip.com for noip protocol
ssl=yes   # NOTE: Does not apply when obtaining IP address, just when updating the DNS entry!
login='[email protected]'   # Username. For No-IP sub-accounts (groups with passwords), use '<groupname>%3A<username>'.
password='1234'


################################################################################
# Hosts to update, with optional per-Host options

# Examples:
#   protocol=hammernode1, \
#   login='my-hn-login', password='my-hn-password' \
#   myhost.hn.org,myhost2.hn.org
#
#   login='group2%[email protected]', password='1234'   myhost3.no-ip.biz,myhost4.no-ip.biz
#
#   myhost.no-ip.biz,myhost2.no-ip.biz

my.full.hostname

更新:IP検出サービスへの暗号化された接続はまったく意味がありません。これは現在ddclient.confテンプレートで説明されており、デフォルトではIP検出に暗号化されていない接続を使用するようになっています。

21

ここに良いチュートリアルがあります... http://www.ubuntugeek.com/update-ip-addresses-at-dynamic-dns-services-using-ddclient.html

お役に立てれば :)

1
nobody

No-ipには独自のクライアントがあり、最初にインストールされたときに動作しました。

クライアントをダウンロードするための独自のWebサイトでの指示 があり、その後は簡単にmake && makeインストールして完了です。設定ウィザードの一部として求められるので、no-ipのログイン資格情報を用意してください。その後、必ずnoip2を実行し、サイトでホストアカウントが更新されているかどうかを確認できます。

0
Chris