方案
- ddns-scripts
- inadyn
方法1: ddns-scripts
安裝:
opkg install ddns-scripts <--- 此 script 是利用 wget 去 update DDNS
設定檔:
/etc/config/ddns
config service "myddns" option enabled "1" <--- 由於可以登記多個 ddns, 所以每一組都有個別的 ebabled option interface "wan" <--- 對應 ip_source 是 network 時用 option service_name "dyndns.org" <--- 對應 /usr/lib/ddns/services 內的值 如果在 list 沒有對應時, 那就要用 update_url 去設定更新DNS的 URL option domain "youdomain.dyndns.org" <--- 認證資料 option username "myusername" option password "mypassword" option force_interval "24" <--- 更新時間 option force_unit "hours" option check_interval "10" option check_unit "minutes" option retry_interval "60" option retry_unit "seconds" option ip_source "web" <--- 獲得外部 IP 的方式, 一般而言, web 是最好的 option ip_url "http://checkip.dyndns.com/" <--- first valid ip address listed on that page
餘下設定:
#option ip_source "network" #option ip_network "wan" #option ip_source "interface" #option ip_interface "eth0.1" #option ip_source "script" #option ip_script "path to your scrip" #option update_url "http://[USERNAME]:[PASSWORD]@members.dyndns.org/nic/update?hostname=[DOMAIN]&myip=[IP]"
/usr/lib/ddns/services 內容:
(dyndns protocol compatible services)
"dyndns.org" "http://[USERNAME]:[PASSWORD]@members.dyndns.org/nic/update?hostname=[DOMAIN]&myip=[IP]"
更新原理:
/etc/hotplug.d/iface/25-ddns
#!/bin/sh . /usr/lib/ddns/dynamic_dns_functions.sh if [ "$ACTION" = "ifup" ]; then start_daemon_for_all_ddns_sections "$INTERFACE" fi
Debug:
# 用 /etc/config/ddns 內的 myddns 更新
/usr/lib/ddns/dynamic_dns_updater.sh myddns
Output:
update_url=http://[USERNAME]:[PASSWORD]@members.dyndns.org/nic/update?hostname=[DOMAIN]&myip=[IP] force seconds = 43200 check seconds = 300 time_since_update = 24 hours Running IP check... current system ip = registered domain ip = update necessary, performing update ... updating with url="" Connecting to members.dyndns.org (204.13.248.111:80) - 100% |*************************| 19 0:00:00 ETA Update Output: good 203.xxx.31.236 update complete, time is: Wed Aug 1 19:40:27 HKT 2012
方法2: inadyn
Configure File:
/tmp/ddns/
- ddns.log
- inadyn.conf
- inadyn_ip.cache
- inadyn_time.cache
Backgroup running
inadyn -u xxx -p xxx --input_file /tmp/ddns/inadyn.conf
INADYN: Started 'INADYN version 1.96.2' - dynamic DNS updater. I:INADYN: IP address for alias 'datahunter.org' needs update to '123.202.144.65' I:INADYN: Alias 'tim.dnslink.hk' to IP '123.202.144.65' updated successful.