12.04サーバーにはfreedns.afraid.orgで動的DNSサービスを使用しています。私は、プロトコルが標準化され、ddclientが正常に機能すると仮定していましたが、明らかにそうではありません。/var/log/syslogにこのメッセージが表示されます。
ERROR: Invalid update URL (2): unexpected status ()
この回答 で説明されている代替PPAのddclientの更新バージョンを使用しようとしましたが、このエラーが発生しました:
FATAL: Error loading the Perl module Digest::SHA1 needed for freedns update.
FATAL: On Debian, the package libdigest-sha1-Perl must be installed.
そして、そのパッケージをインストールしようとすると、これが得られます:
E: Unable to locate package libdigest-sha1-Perl
このバグレポート に導かれますが、明らかに解決策はありません。どうやって進める?
Ddclientが fixed になるまで、必要な古いモジュールを手動でインストールできます。
Sudo apt-get install cpanminus
cpanm --Sudo Digest::SHA1
無料DNSのクライアントページ およびddclient --help
は、ddclientのサンプル設定を提供します。変更を有効にするためにddclientを再起動します。
Sudo service ddclient restart
/usr/sbin/ddclient
の次の2行を編集するだけで、FreeDNSを機能させることができました。
から:
my $sha1_loaded = eval {require Digest::SHA1};
に:
my $sha1_loaded = eval {require Digest::SHA};
から:
import Digest::SHA1 (qw/sha1_hex/);
に:
import Digest::SHA (qw/sha1_hex/);
バグレポートの コメント は、「Digest :: SHA1の代わりにDigest :: SHAを使用するようにプログラムを変更するのが簡単」であることを示唆しています。
したがって、add-apt-repositoryはデフォルトではインストールされないため、最初に完全な手順を実行します。
Sudo apt-get install python-software-properties
そして、izxによる 記述 のように:
Sudo apt-add-repository ppa:nathan-renniewaldock/ppa
現在、このリポジトリには多くのパッケージが含まれていますが、ddclientのみが必要です。したがって、 `/ etc/apt/preferences.d/nathan-prefsなどの設定ファイルを作成し、次のように編集します。
Package: *
Pin: release o=LP-PPA-nathan-renniewaldock
Pin-Priority: 400
Package: ddclient
Pin: release o=LP-PPA-nathan-renniewaldock
Pin-Priority: 500
Ddclientをインストールします。
Sudo apt-get update && Sudo apt-get install ddclient
ここで、rootになり、/ usr/sbin/ddclientを編集します。 require Digest::SHA1
を探し、require Digest::SHA
に置き換えます。次に、数行後にimport Digest::SHA1
を探し、import Digest::SHA
に置き換えます。
最後に、/ etc/ddclient.confを開き、次のようにします(プロトコルに注意してください)。
daemon=3600
protocol=freedns
use=if, if=eth0
ssl=yes
use=web, web=myip.dnsomatic.com
server=freedns.afraid.org
login=username
password='password'
mydomain.example.com
私が満足していない主なことは、ファイルをハッキングしてUbuntuのパッケージ管理を破ることです。より良い解決策は、PPAを修正することです。