我已经在http://no-ip.org/帐户中创建了帐户和主机名,该帐户和主机名是迄今为止针对我的服务器类型最常用的服务。因为我是命令行菜鸟,所以有人可以指导我完成在无IP的情况下使用ddclient的配置过程吗?
我已经在http://no-ip.org/帐户中创建了帐户和主机名,该帐户和主机名是迄今为止针对我的服务器类型最常用的服务。因为我是命令行菜鸟,所以有人可以指导我完成在无IP的情况下使用ddclient的配置过程吗?
Answers:
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
注意:No-IP服务器上似乎正在进行一些缓存,因此,如果从服务器获得的响应不是您期望的,则等待一会可能会有所帮助。
完成配置后,启动ddclient
守护程序:
sudo service ddclient start
每次启动计算机时,守护程序也会自动启动。
现在,每次检测到IP地址更改时,DNS条目就会更新。
再次运行软件包配置:
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条目以进行调试(在正常操作过程中,仅当当前IP地址与缓存中存储的IP地址不同时才更新DNS条目):
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
说明文件:
ddclient -help
/usr/share/doc/ddclient/examples/sample-etc_ddclient.conf.gz
################################################################################
# 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检测。
这是一个很好的演练... http://www.ubuntugeek.com/update-ip-addresses-at-dynamic-dns-services-using-ddclient.html
希望这可以帮助 :)
No-ip拥有自己的客户端,该客户端在首次安装时为我工作。
有自己的网站上下载客户端的指令,然后这是一个快速make && make
安装,就大功告成了。将您的登录凭据提供给no-ip,因为配置向导会要求您输入登录凭据。之后,请确保您已运行,noip2
并且可以在其站点上检查主机帐户,以查看其是否已更新。