创建一个新的免费的ddns域名 (免费账号最多可以建4个)
开启API Key
bash script 来更新ddns
方法1 – curl post
DYNU_API_KEY='6bbc6XXXXXXXX'
DYNU_DOMAIN_NAME='xxxxxfish.mywire.org'
THIS_IP=$(curl ip.sb)
# 获得所有的dns info (把对应的id记下来,赋值给 DYNU_DOMAIN_ID)
curl -X GET https://api.dynu.com/v2/dns \
-H "accept: application/json" \
-H "API-Key: $DYNU_API_KEY"
DYNU_API_KEY='6bbc6XXXXXXXX'
DYNU_DOMAIN_NAME='xxxxxfish.mywire.org'
THIS_IP=$(curl ip.sb)
DYNU_DOMAIN_ID=9411YYYY
# 注意url当中带有$DYNU_DOMAIN_ID
curl -X POST https://api.dynu.com/v2/dns/$DYNU_DOMAIN_ID \
-H "accept: application/json" \
-H "API-Key: $DYNU_API_KEY" \
-d '{
"name": "'$DYNU_DOMAIN_NAME'",
"group": "office",
"ipv4Address": "'$THIS_IP'",
"ipv6Address": "1111:2222:3333::4444",
"ttl": 90,
"ipv4": true,
"ipv6": true,
"ipv4WildcardAlias": true,
"ipv6WildcardAlias": true,
"allowZoneTransfer": false,
"dnssec": false
}'
方法2:wget get url – https://www.dynu.com/en-US/DynamicDNS/IP-Update-Protocol#ipupdate
THIS_IP=$(curl ip.sb)
DYNU_USERNAME='你自己的用户名'
DYNU_PASSWORD_MD5=$(echo -n '自己的密码或专门的IP Update 密码' | md5sum | awk '{print $1}')
# -q don't print out header info
# -O - don't save to local file, just stream it to stdout
wget --no-check-certificate -qO- "https://api.dynu.com/nic/update?hostname=$DYNU_DOMAIN_NAME&myip=${THIS_IP}1&myipv6=1111:2222:3333::4444&username=$DYNU_USERNAME&password=$DYNU_PASSWORD_MD5"
方法3-使用客户端软件
https://www.dynu.com/DynamicDNS/IPUpdateClient/Linux
这个最不方便的就是不能通过hostname来指定哪个域名进行更新,而是需要通过location(也就是group)来更新该group当中的所有的域名。不然就只能更新默认的那一个!
# 安装
URL='https://www.dynu.com/support/downloadfile/31'; FILE=`mktemp`; wget "$URL" -qO $FILE && sudo dpkg -i $FILE; rm $FILE
DYNU_USERNAME='lastlavalake'
# 无法用md5之后,必须是登陆密码或者IP_UPDATE密码的原文
DYNU_PASSWORD_IPUPDATE='h2C5<你自己的密码>'
DYNU_DOMAIN_NAME='fffish.mywire.org'
cat > /etc/dynuiuc/dynuiuc.conf <<EOF
username $DYNU_USERNAME
password $DYNU_PASSWORD_IPUPDATE
hostname $DYNU_DOMAIN_NAME
location XXXfish
ipv4 true
ipv6 false
pollinterval 300
debug true
quiet false
EOF
systemctl daemon-reload
systemctl restart dynuiuc.service
# Commands Manage the service using systemd:
systemctl start dynuiuc.service
systemctl stop dynuiuc.service
systemctl restart dynuiuc.service
systemctl status dynuiuc.service
# To view and truncate log files:
# View live log:
tail -f /var/log/dynuiuc.log
# View entire log file:
cat /var/log/dynuiuc.log
# Truncate log file:
cat /dev/null > /var/log/dynuiuc.log
# View service status:
systemctl status dynuiuc.service -l