У меня есть субдомен, который я хочу обновить с помощью ddclient. Я настроил ddclient на получение IP от dyndns, но он не обновляет поддомен в namecheap. Они сказали использовать yourdomain.com в качестве логина вместо моего фактического домена.
Кто-нибудь смог обновить DNS namecheap с помощью ddclient?
Я использую CentOS 6.2 с ddclient 3.7.3.
Когда я запускаю ddclient, я получаю следующее.
CONNECT: checkip.dyndns.org
CONNECTED: using HTTP
SENDING: GET / HTTP/1.0
SENDING: Host: checkip.dyndns.org
SENDING: User-Agent: ddclient/3.7.3
SENDING: Connection: close
SENDING:
RECEIVE: HTTP/1.1 200 OK
RECEIVE: Content-Type: text/html
RECEIVE: Server: DynDNS-CheckIP/1.0
RECEIVE: Connection: close
RECEIVE: Cache-Control: no-cache
RECEIVE: Pragma: no-cache
RECEIVE: Content-Length: 106
RECEIVE:
RECEIVE: <html><head><title>Current IP Check</title></head><body>Current IP Address: IPADD</body></html>
Use of uninitialized value in string ne at /usr/sbin/ddclient line 1998.
WARNING: skipping update of lf4bot from <nothing> to IPADD
WARNING: last updated <never> but last attempt on Fri Jun 15 22:46:21 2012 failed.
WARNING: Wait at least 5 minutes between update attempts.
Файл ddclient.conf
daemon=300 # check every 300 seconds
syslog=yes # log update msgs to syslog
mail=root # mail all msgs to root
mail-failure=root # mail failed update msgs to root
pid=/var/run/ddclient.pid # record PID in file.
ssl=yes # use ssl-support. Works with
use=web, web=checkip.dyndns.org/, web-skip='IP Address' # found after IP Address
protocol=namecheap \
server=dynamicdns.park-your-domain.com \
login=yourdomain.com \
password=PASSWORD \
lf4bot
Я только что прошел через этот процесс и хочу отметить некоторые проблемы, которые меня сбили с толку.
Во-первых, это канонический справочник по настройке ddns для namecheap: http://www.namecheap.com/support/knowledgebase/article.aspx/583/11/how-to-configure-ddclient
Если вы не хотите полагаться на внешний веб-сервис для поиска вашего IP-адреса (например, я), все немного сложнее. У ddclient есть возможность войти в ваш маршрутизатор и получить оттуда ваш IP-адрес, что должно быть наиболее эффективным и надежным методом.
Первое, что вам нужно, это найти страницу, содержащую ваш IP-адрес. Для меня это было http://192.168.1.1/RST_status.htm
. Убедитесь, что при "просмотре источника" на этой странице вы видите свой IP-адрес. Сейчас выйти вашего маршрутизатора, иначе ddclient просто увидит сообщение об ошибке о том, как кто-то уже вошел в систему. Наконец, отредактируйте свой /etc/ddclient.conf
вот так:
protocol=namecheap
use=fw
fw=192.168.1.1/RST_status.htm
fw-login=admin
fw-password=<my-router-password>
server=dynamicdns.park-your-domain.com
login=<my-domain>.org
password='<8cc67226fadff52f402d31505ee85d6b>'
www
Чтобы убедиться, что это работает, запустите: ddclient --debug --verbose
. Вы должны увидеть веб-страницу, которую он загружает с маршрутизатора, и IP, который он извлекает из него.
Вы, вероятно, не захотите использовать --noexec
вариант для отладки, так как ddclient пропустит загрузку html с маршрутизатора и не найдет IP-адреса. В этом случае вы увидите DEBUG: skipped network connection
и WARNING: unable to determine IP address
, что нехорошо.
У меня были такие же трудности с ddclient. Поэтому я написал простой модуль Perl, который позаботится об обновлениях. Я разработал его, думая, как и все, что вы должны взять свой внешний IP-адрес и передать его в Namecheap с вашими основными параметрами. В этом нет необходимости, поскольку сценарий обновления на конце Namecheap определяет ваш IP-адрес самостоятельно.
Итак, вызов обновления прост:
use App::DDNS::Namecheap;
my $domain = App::DDNS::Namecheap->new(
domain => 'mysite.org',
password => 'abcdefghijklmnopqrstuvwxyz012345',
hosts => [ "@", "www", "*" ],
);
while (1) {
$domain->update();
sleep (300); #5 minute cycle
}
Обратите внимание, что поддомены можно обрабатывать с помощью записи с подстановочными знаками. Просто определите "*" как запись поддомена A на вашей странице Namecheap "все записи хоста".
Приложение :: DDNS :: Namecheap есть на CPAN, если вам интересно.
Я использовал ddclient версии 3.7.3 на centos 6.2. Я не знаю, имеют ли значения версии, но в итоге я настроил dyndns для namecheap таким образом. Я сделал это так, чтобы другие могли точно увидеть, как они должны это сделать, просто заменив google.com, 8cc67226fadff52f402d31505ee85d6b и dev в вашей настройке.
Не заключайте пароль в кавычки и не добавляйте запятые / обратные косые черты после каждой строки.
##
## NameCheap (namecheap.com)
##
protocol=namecheap
server=dynamicdns.park-your-domain.com
login=google.com
password=8cc67226fadff52f402d31505ee85d6b
dev