![如何从家里的树莓派服务器自动更新 Route53?](https://linux22.com/image/123366/%E5%A6%82%E4%BD%95%E4%BB%8E%E5%AE%B6%E9%87%8C%E7%9A%84%E6%A0%91%E8%8E%93%E6%B4%BE%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%87%AA%E5%8A%A8%E6%9B%B4%E6%96%B0%20Route53%EF%BC%9F.png)
家里运行 Rasbian Jessie 8.0 的树莓派正在运行 Apache。使用dig TXT +short o-o.myaddr.l.google.com @ns1.google.com
生成一个 IPv4,用于更新 AWS 路由 53 中托管区域的记录集中的值(下图中以红色圈出)。
测试域名成功。
我现在想做的是,每当我家的动态 IP 地址从树莓派内部发生变化时,就更新 AWS Route53,而无需我的任何帮助。
如果您需要更多信息,请告诉我。
答案1
如果您想坚持使用 AWS 工具,请按照以下步骤操作:
创建一个 AWS IAM 用户,例如DNS 更新程序并为其分配此 AWS 托管策略:AmazonRoute53FullAccess。产生秘密和使用权用户的密钥。
安装AWS-CLI(例如
pip install awscli
)配置AWS-CLI,输入上面的秘密和访问密钥:
aws configure
从 RPi 上的 cron 作业运行一个执行以下操作的脚本:
获取外部公网IP,例如
RPI_EXT_IP=$(curl http://ifconfig.co)
创建更新 JSON 文件:
cat > /tmp/r53-update.json << __EOF__ { "Changes": [ { "Action": "UPSERT", "ResourceRecordSet": { "Name": "rpi.your-route53-domain.com", "Type": "A", "TTL": 600, "ResourceRecords": [ { "Value": "${RPI_EXT_IP}" } ] } } ] } __EOF__
称呼AWS-CLI要使用上述 JSON 文件更新 Route53 记录,请将托管区域 ID使用您的 Route53 区域的真实 ID:
~ $ aws route53 change-resource-record-sets \ --hosted-zone-id ZXCVBNMEXAMPLE \ --change-batch file:///tmp/r53-update.json
如果您需要任何说明,请告诉我们。
如果答案有帮助,别忘了接受:)