Thiết lập ddclient cho No-IP
ddclient
là Máy khách cập nhật động (DUC) có thể được sử dụng để cập nhật các mục DNS động. Nó kiểm tra địa chỉ IP hiện tại theo định kỳ và cập nhật thông tin DNS khi phát hiện thay đổi. Dưới đây là cách cài đặt và định cấu hình cho dịch vụ No-IP (noip.com/no-ip.com).
Đầu tiên, cài đặt ddclient
gói. Chúng tôi sẽ cấu hình thủ công sau, vì vậy chỉ cần nhấn enter cho tất cả các câu hỏi cấu hình.
sudo apt-get install ddclient
Dừng ddclient
daemon. Các sudo service ddclient stop
lệnh không hoạt động trên Ubuntu 12.04 do một lỗi, vì vậy chúng tôi sử dụng pkill
để thay thế.
sudo pkill ddclient
Chỉnh sửa tập tin cấu hình. Để tắt các tệp sao lưu (ví dụ /etc/ddclient.conf~
) gedit
tạo theo mặc định và ví dụ có thể chứa mật khẩu sau khi bạn nghĩ rằng bạn đã xóa chúng, hãy tắt cài đặt
Edit -> Preferences -> Editor -> Create a backup copy of files before saving
.
sudo gedit /etc/ddclient.conf /etc/default/ddclient
Xóa nội dung cũ /etc/ddclient.conf
và dán vào mẫu hiển thị bên dưới.
Đọc qua các bình luận của mẫu và tùy chỉnh tệp theo nhu cầu của bạn.
Có thể là một ý tưởng tốt để sử dụng tài khoản phụ noip.com, tức là một nhóm có mật khẩu (tính năng này là dịch vụ trả tiền). Bằng cách này, mật khẩu chỉ cung cấp quyền truy cập để cập nhật các máy chủ được chỉ định và không truy cập đầy đủ vào toàn bộ tài khoản No-IP của bạn, có thể bao gồm các bản ghi MX (kẻ tấn công lấy mật khẩu của bạn có thể thay đổi bản ghi MX để chặn email của bạn ) hoặc các dịch vụ khác như tài khoản IMAP.
Bạn có thể nên đặt daemon_interval=3600
(xem bình luận mẫu).
Kiểm tra cấu hình của bạn bằng lệnh sau:
sudo ddclient -daemon=0 -debug -verbose -noquiet -force
Bạn sẽ nhận được phản hồi good
(địa chỉ IP được cập nhật) hoặc nochg
(địa chỉ IP đã được đặt thành giá trị đó). Bạn có thể nhận được cảnh báo sau vào thời điểm này (nhưng không ổn khi tiếp tục nhận cảnh báo trong khi hoạt động bình thường):
WARNING: updating <hostname>: nochg: No update required; unnecessary attempts to change to the current address are considered abusive
Lưu ý: Dường như có một số bộ nhớ đệm đang diễn ra tại máy chủ No-IP, vì vậy nếu phản hồi bạn nhận được từ máy chủ không như bạn mong đợi, có thể sẽ chỉ chờ một chút.
Khi bạn hoàn tất cấu hình, bắt đầu ddclient
trình nền:
sudo service ddclient start
Trình nền cũng sẽ tự động khởi động mỗi khi bạn khởi động máy tính.
Mục nhập / mục nhập DNS hiện sẽ được cập nhật mỗi khi phát hiện thay đổi địa chỉ IP.
Xử lý sự cố
Chạy lại cấu hình gói:
sudo dpkg-reconfigure ddclient
Hủy bỏ các tập tin gói và cấu hình:
sudo apt-get purge ddclient
Điều khiển Daemon:
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
Xóa bộ đệm để lừa daemon cập nhật mục nhập DNS cho mục đích gỡ lỗi (trong khi hoạt động bình thường, mục nhập DNS chỉ được cập nhật nếu địa chỉ IP hiện tại khác với địa chỉ IP được lưu trong bộ đệm):
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.
Kiểm tra xem daemon có thực sự cập nhật mục nhập DNS hay không khi địa chỉ IP đã thay đổi, bằng cách đặt địa chỉ IP của mục nhập DNS thành 1.2.3.4 và sau đó bắt đầu trình nền:
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
Chạy gỡ lỗi (cập nhật mục DNS không bao giờ / khi cần / luôn luôn):
sudo ddclient -daemon=0 -debug -verbose -noquiet -noexec
sudo ddclient -daemon=0 -debug -verbose -noquiet
sudo ddclient -daemon=0 -debug -verbose -noquiet -force
Cố gắng phát hiện địa chỉ IP hiện tại bằng nhiều phương pháp khác nhau:
sudo ddclient -query
Hồ sơ quan tâm:
/etc/ddclient.conf
/etc/default/ddclient
/var/cache/ddclient/ddclient.cache
Tin nhắn từ daemon sẽ xuất hiện ở đây (và cũng sẽ được gửi qua e-mail nếu được thiết lập để làm như vậy):
/var/log/syslog
Tài liệu:
Mẫu cho /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
Cập nhật: Kết nối được mã hóa với dịch vụ phát hiện IP là khá vô nghĩa. Điều này hiện được giải thích trong mẫu ddclient.conf và hiện tại nó mặc định sử dụng kết nối không được mã hóa để phát hiện IP.