Menyiapkan ddclient untuk No-IP
ddclient
adalah Dynamic Update Client (DUC) yang dapat digunakan untuk memperbarui entri DNS dinamis. Ini memeriksa alamat IP saat ini secara berkala dan memperbarui informasi DNS ketika perubahan terdeteksi. Berikut ini cara menginstal dan mengkonfigurasinya untuk layanan No-IP (noip.com/no-ip.com).
Pertama, instal ddclient
paket. Kami akan mengonfigurasinya secara manual nanti, jadi cukup tekan enter untuk semua pertanyaan konfigurasi.
sudo apt-get install ddclient
Hentikan ddclient
dasmon. The sudo service ddclient stop
perintah tidak bekerja pada Ubuntu 12.04 karena bug, jadi kita gunakan pkill
sebagai gantinya.
sudo pkill ddclient
Edit file konfigurasi. Untuk mematikan file cadangan (mis. /etc/ddclient.conf~
) Yang dibuat gedit
secara default dan yang misalnya bisa berisi kata sandi setelah Anda pikir Anda telah menghapusnya, matikan pengaturan
Edit -> Preferences -> Editor -> Create a backup copy of files before saving
.
sudo gedit /etc/ddclient.conf /etc/default/ddclient
Hapus konten lama /etc/ddclient.conf
dan tempel di templat yang ditunjukkan di bawah ini.
Baca komentar templat dan sesuaikan file dengan kebutuhan Anda.
Ini bisa menjadi ide yang baik untuk menggunakan sub-akun noip.com, yaitu grup dengan kata sandi (fitur ini adalah layanan berbayar). Dengan cara ini, kata sandi hanya memberikan akses untuk memperbarui host yang ditentukan dan tidak akses penuh ke seluruh akun No-IP Anda, yang dapat mencakup catatan MX (penyerang yang memperoleh kata sandi Anda dapat mengubah catatan MX untuk mencegat email Anda ) atau layanan lain seperti akun IMAP.
Anda mungkin harus mengatur daemon_interval=3600
(lihat komentar templat).
Uji konfigurasi Anda dengan perintah berikut:
sudo ddclient -daemon=0 -debug -verbose -noquiet -force
Anda harus mendapatkan respons good
(alamat IP diperbarui) atau nochg
(alamat IP sudah disetel ke nilai itu). Tidak apa-apa untuk menerima peringatan berikut pada saat ini (tetapi tidak OK untuk terus mendapatkan peringatan selama operasi normal):
WARNING: updating <hostname>: nochg: No update required; unnecessary attempts to change to the current address are considered abusive
Catatan: Sepertinya ada beberapa caching yang terjadi di server No-IP, jadi jika respons yang Anda dapatkan dari server tidak seperti yang Anda harapkan, mungkin perlu menunggu sebentar saja.
Ketika Anda selesai mengkonfigurasi, mulai ddclient
daemon:
sudo service ddclient start
Daemon juga akan mulai secara otomatis setiap kali Anda memulai komputer.
Entri / entri DNS sekarang akan diperbarui setiap kali perubahan alamat IP terdeteksi.
Penyelesaian masalah
Jalankan kembali konfigurasi paket:
sudo dpkg-reconfigure ddclient
Hapus paket dan file konfigurasi:
sudo apt-get purge ddclient
Kontrol 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
Hapus cache untuk mengelabui daemon agar memperbarui entri DNS untuk tujuan debugging (selama operasi normal entri DNS hanya diperbarui jika alamat IP saat ini berbeda dari alamat IP yang disimpan dalam cache):
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.
Tes apakah daemon benar-benar akan memperbarui entri DNS ketika alamat IP telah berubah, dengan mengatur alamat IP entri DNS ke 1.2.3.4 dan kemudian memulai daemon:
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
Debug run (perbarui entri DNS tidak pernah / sesuai kebutuhan / selalu):
sudo ddclient -daemon=0 -debug -verbose -noquiet -noexec
sudo ddclient -daemon=0 -debug -verbose -noquiet
sudo ddclient -daemon=0 -debug -verbose -noquiet -force
Cobalah untuk mendeteksi alamat IP saat ini menggunakan berbagai metode:
sudo ddclient -query
File-file yang menarik:
/etc/ddclient.conf
/etc/default/ddclient
/var/cache/ddclient/ddclient.cache
Pesan dari daemon akan muncul di sini (dan juga akan dikirim melalui email jika diatur untuk melakukannya):
/var/log/syslog
Dokumentasi:
Templat untuk /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
Pembaruan: Koneksi terenkripsi ke layanan deteksi IP tidak ada gunanya. Ini sekarang dijelaskan dalam template ddclient.conf dan sekarang default untuk menggunakan koneksi tidak terenkripsi untuk deteksi IP.