我在Amazon EC2上有一個Windows 2008r2實例。我希望能夠從實例中訪問其「公共DNS名稱」。公共DNS名稱也可以在我的AWS EC2控制檯上找到。如何找出Amazon EC2實例中的「公共DNS名稱」?
有沒有辦法做到這一點?
我在Amazon EC2上有一個Windows 2008r2實例。我希望能夠從實例中訪問其「公共DNS名稱」。公共DNS名稱也可以在我的AWS EC2控制檯上找到。如何找出Amazon EC2實例中的「公共DNS名稱」?
有沒有辦法做到這一點?
Unknown's answer在技術上是正確的(+1),但爲了提供背景和一些更多的細節,我想提相應的Amazon EC2 Instance Metadata and User Data:
實例元數據是關於數據您可以使用您的EC2實例 配置或管理正在運行的實例。實例元數據被分成 類別。有關更多信息,請參閱Instance Metadata Categories。
在衆多可用的元數據類是public-hostname
:
實例的公共DNS。如果實例位於VPC中,則只有在enableDnsHostnames屬性設置爲true時才返回此類別 。 欲瞭解更多信息,請參閱Using DNS with Your VPC。
您可以從正在運行的EC2實例中通過專用URI http://169.254.169.254/latest/meta-data/
與任何具有HTTP功能的工具(例如,無處不在cURL,強烈推薦HTTPie(一個CLI,類似於cURL的工具,用於人類),當然,最明顯的用例是使用PowerShell,尤其是使用PowerShell。版本3.0+,例如:
PS> $publicHostname = Invoke-WebRequest `
-Uri http://169.254.169.254/latest/meta-data/public-hostname
謝謝。奇蹟般有效。當然,因爲我是一個Ruby人,我使用:RestClient.get「http://169.254.169.254/latest/meta-data/public-hostname」 –
看一看here,但使用public-hostname
而不是instance-id
。
反向DNS查找可以解決這個問題嗎?除非你在控制檯中改變了它,否則它會回到ec2-50-16-114-10.compute-1.amazonaws.com。 –