Как я могу получить ddclient для работы с freedns?
Я использую динамический DNS-сервис на freedns.afraid.org для моего сервера 12.04. Я предполагал, что протоколы будут стандартизированы и что ddclient будет работать, но, очевидно, нет. Я получаю это сообщение в /var/log/syslog:
ERROR: Invalid update URL (2): unexpected status ()
Я пытался использовать обновленную версию ddclient из альтернативного PPA, описанного в этом ответе, но затем я столкнулся с этой ошибкой:
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
Что приводит меня к этому сообщению об ошибке, которое, по-видимому, не имеет решения. Как действовать?
4 ответа
Пока ddclient не исправлен, вы можете вручную установить старый модуль, который он хочет:
sudo apt-get install cpanminus
cpanm --sudo Digest::SHA1
Страница бесплатных DNS-клиентов и ddclient --help
предоставить образцы конфигураций ddclient. Перезапустите ddclient, чтобы изменения вступили в силу:
sudo service ddclient restart
Я смог заставить FreeDNS работать, просто отредактировав эти две строки в /usr/sbin/ddclient
:
От:
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::SHA вместо Digest::SHA1".
Итак, полные шаги, во-первых, потому что 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.
Вы можете получить его из: libdigest-sha1-perl
Вам также может понадобиться установить libio-socket-ssl-perl. Проверьте свой системный журнал