Как я могу настроить службу выборки динамического DNS на Ubuntu Server?

19

Я создал учетные записи и имена хостов в своей учетной записи http://no-ip.org/ , которая является наиболее часто используемой службой для моего типа сервера. Может кто-нибудь провести меня через процесс настройки использования ddclient с no-ip, так как я noob из командной строки?

Trevon
источник

Ответы:

21

Настройка ddclient для No-IP

ddclientклиент динамического обновления (DUC), который можно использовать для обновления записей динамического DNS Он регулярно проверяет текущий 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

Отредактируйте файлы конфигурации. Чтобы отключить файлы резервных копий (например /etc/ddclient.conf~), которые geditсоздаются по умолчанию и которые могут, например, содержать пароли после того, как вы думали, что удалили их, отключите настройку Edit -> Preferences -> Editor -> Create a backup copy of files before saving.

sudo gedit /etc/ddclient.conf /etc/default/ddclient

Удалить старое содержимое /etc/ddclient.conf и вставьте в шаблон, показанный ниже.

Прочитайте комментарии шаблона и настройте файл в соответствии с вашими потребностями.

Было бы неплохо использовать суб-аккаунт noip.com, то есть группу с паролем (эта функция является платной услугой). Таким образом, пароль дает доступ только к обновлению указанных хостов, а не к полному доступу ко всей учетной записи No-IP, которая может включать записи MX (злоумышленник, получивший ваш пароль, может изменить записи 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

Примечание. Похоже, на сервере без 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-адреса, установив IP-адрес записи DNS на 1.2.3.4, а затем запустив демон:

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='nobody@nowhere.com'   # 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%3Ajohndoe@domain.com', 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.

Хокон А. Хьортланд
источник
0

No-ip имеет свой собственный клиент, который работал у меня, когда он был установлен.

На их собственном веб-сайте есть инструкции по загрузке клиента , после чего выполняется быстрая make && makeустановка, и все готово. Имейте свои регистрационные данные для no-ip под рукой, поскольку вас спросят как часть мастера конфигурации. После этого убедитесь, что вы запустились, noip2и вы можете проверить свою учетную запись хоста на их сайте, чтобы узнать, обновилась ли она.

Крис
источник
ВНИМАНИЕ: у noip2 проблемы с безопасностью! Смотрите этот ответ .
Хокон А. Хьортланд
@ HåkonA.Hjortland: я не знал, что он принимает соединения HTTPS. Я удалил свое предыдущее неверное утверждение, спасибо!
МестреЛион