ฉันจะตั้งค่าบริการดึง DNS แบบไดนามิกบนเซิร์ฟเวอร์ Ubuntu ได้อย่างไร


19

ฉันได้สร้างบัญชีและชื่อโฮสต์ภายในบัญชีhttp://no-ip.org/ของฉันซึ่งเป็นบริการที่ใช้บ่อยที่สุดสำหรับเซิร์ฟเวอร์ประเภทของฉัน ใครบางคนสามารถแนะนำขั้นตอนการกำหนดค่าการใช้ ddclient ด้วย no-ip ได้เนื่องจากฉันเป็นบรรทัดคำสั่ง noob?

คำตอบ:


21

การตั้งค่า ddclient สำหรับ No-IP

ddclientเป็น Dynamic Update Client (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 ดังนั้นหากการตอบสนองที่คุณได้รับจากเซิร์ฟเวอร์ไม่ใช่สิ่งที่คุณคาดหวังอาจช่วยให้รอสักครู่

เมื่อคุณกำหนดค่าเสร็จแล้วให้เริ่มddclientdaemon:

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

ลบแคชเพื่อหลอก daemon ในการอัปเดตรายการ 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.

ทดสอบว่า daemon จะอัปเดตรายการ DNS จริงเมื่อที่อยู่ IP มีการเปลี่ยนแปลงหรือไม่โดยการตั้งค่าที่อยู่ IP ของรายการ DNS เป็น 1.2.3.4 จากนั้นเริ่ม 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

แก้ไขข้อบกพร่องในการเรียกใช้ (อัปเดตรายการ 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

ข้อความจาก daemon จะปรากฏที่นี่ (และจะถูกส่งทางอีเมลด้วยหากตั้งค่าให้ทำ):

/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åkon A. Hjortland

@ HåkonA.Hjortland: ฉันไม่ทราบว่ามันยอมรับการเชื่อมต่อ HTTPS ฉันได้ลบคำสั่งที่ไม่ถูกต้องก่อนหน้านี้ขอบคุณ!
MestreLion
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.