Dns

有沒有辦法獲取實例的公共 DNS 地址?

  • May 18, 2021

我有一個項目,每次使用目前實例的公共 DNS 地址啟動 EC2 實例時,我都需要更新配置文件。我將為此使用 Perl 或 Sed,所以這不是真正的問題,但真正的問題是:有沒有一種方法可以確定實例的公共 DNS 地址?是否有我可以從實例訪問的 EC2 api 來確定它?

有。從實例內部,您可以執行:

curl http://169.254.169.254/latest/meta-data/public-ipv4

要獲取公共 DNS 主機名,您可以將其更改為:

curl http://169.254.169.254/latest/meta-data/public-hostname

您也可以獲取實例的私有 IP:

curl http://169.254.169.254/latest/meta-data/local-ipv4

附帶說明一下,您可以對照 Internet 上的非 AWS 站點仔細檢查它,例如http://ip4.me

#!/bin/bash

pubip=$( curl http://ip4.me 2>/dev/null | sed -e 's#<[^>]*>##g' | grep '^[0-9]' )

echo $pubip

這通常可以檢查任何 NATed 系統的“公共 IP”,或者找到您的公共代理 IP 等。

這是一個很好的連結,可以閱讀您可以從亞馬遜 API 獲得的資訊類型: http ://www.ducea.com/2009/06/01/howto-update-dns-hostnames-automatically-for-your- amazon-ec2-instances/

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