Linux

如何從家裡的樹莓派伺服器自動更新 Route53?

  • December 18, 2021

家裡執行 Rasbian Jessie 8.0 的樹莓派正在執行 Apache。使用dig TXT +short o-o.myaddr.l.google.com @ns1.google.com會生成一個 IPv4,用於更新 AWS 的 53 號路由中託管區域的記錄集中的值,在下圖中用紅色圈出。 Route 53 記錄集 測試域名成功。

我現在想做的是每當我家的動態 IP 地址從樹莓派內部發生變化時更新 AWS Route53,而無需我的任何幫助。

如果您需要更多資訊,請告訴我。

如果您想堅持使用 AWS 工具,請按照以下步驟操作:

  1. 創建一個 AWS IAM 使用者,例如dns-updater並為其分配此 AWS 託管策略:AmazonRoute53FullAccess。為使用者生成密鑰訪問密鑰。
  2. 安裝AWS-CLI(例如pip install awscli
  3. 配置AWS-CLI,輸入上述密鑰和訪問密鑰:aws configure

從 RPi 上的 cron 作業執行執行以下操作的腳本:

  1. 獲取外部公網IP,例如RPI_EXT_IP=$(curl http://ifconfig.co)
  2. 創建更新 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__
  1. 使用上述 JSON 文件呼叫AWS-CLI以更新 Route53 記錄,將**託管區域 id替換為您的 Route53 區域的真實 id:
~ $ aws route53 change-resource-record-sets \
       --hosted-zone-id ZXCVBNMEXAMPLE \
       --change-batch file:///tmp/r53-update.json

如果您需要任何說明,請告訴我們。

如果有幫助,請不要忘記接受答案:)

引用自:https://unix.stackexchange.com/questions/409812