CentOS 动态域名解析(Dynamic Domain Name System, DDNS)是指在 CentOS 系统上实现动态更新 DNS 记录的功能。通常,当你的公网 IP 地址发生变化时,手动更新 DNS 记录是非常麻烦的。DDNS 可以自动更新这些记录,确保域名始终指向正确的 IP 地址。
以下是一个简单的 Bash 脚本示例,用于检查 IP 地址变化并更新 DNS 记录:
#!/bin/bash
# 配置参数
DOMAIN="yourdomain.com"
USERNAME="your_ddns_username"
PASSWORD="your_ddns_password"
CHECK_INTERVAL=3600 # 检查间隔时间(秒)
# 获取当前公网 IP
CURRENT_IP=$(curl -s ifconfig.me)
# 检查 IP 是否变化
if [ -f /tmp/last_ip ]; then
LAST_IP=$(cat /tmp/last_ip)
if [ "$CURRENT_IP" != "$LAST_IP" ]; then
echo "IP address changed from $LAST_IP to $CURRENT_IP"
# 更新 DNS 记录
curl -X POST "https://dnsapi.cn/Record.Update" -d "login_username=$USERNAME&login_password=$PASSWORD&format=json&domain=$DOMAIN&record_id=your_record_id&record_line=默认&record_value=$CURRENT_IP&record_type=A"
echo $CURRENT_IP > /tmp/last_ip
fi
else
echo "First run, setting IP to $CURRENT_IP"
echo $CURRENT_IP > /tmp/last_ip
fi
# 等待下一次检查
sleep $CHECK_INTERVAL
使用第三方 DDNS 服务提供商,如 No-IP、DynDNS 等。以下是一个使用 No-IP 的示例:
#!/bin/bash
# 配置参数
USERNAME="your_noip_username"
PASSWORD="your_noip_password"
HOST="your_host"
DOMAIN="yourdomain.com"
# 获取当前公网 IP
CURRENT_IP=$(curl -s ifconfig.me)
# 更新 DNS 记录
curl -X POST "https://dynupdate.no-ip.com/nic/update?hostname=$HOST.$DOMAIN&myip=$CURRENT_IP" -u $USERNAME:$PASSWORD
curl ifconfig.me
命令是否可用。通过以上方法,你可以在 CentOS 系统上实现动态域名解析,确保域名始终指向最新的 IP 地址。
停课不停学第四期
高校公开课
企业创新在线学堂
云+社区沙龙online第6期[开源之道]
TechDay
Elastic 实战工作坊
Elastic 实战工作坊
领取专属 10元无门槛券
手把手带您无忧上云