2014-01-06 184 views
201

與我合作的人給了我EC2憑證登錄到他的EC2控制檯。我不是那個設置它的人。某些實例顯示公共DNS名稱,其他實例具有空白公共DNS。我希望能夠連接到具有空白公共DNS的實例。我一直無法弄清楚爲什麼這些顯示爲空白。EC2實例沒有公共DNS

+1

是一個VPC內的實例?檢查實例描述屏幕中VPC ID字段旁邊是否有值。 –

+1

我有同樣的問題。我的實例位於VPC內部,並且在子網上,我檢查了公有DNS是否可用。仍然沒有公開的DNS名稱。 我可以看到,在我的VPC配置中,它說的是'DNS hostnames:no',但我無法更改該值,添加新的VPC也不會給我選擇。 – Wrench

+0

當設置[my-vpc](http://stackoverflow.com/a/38235022/4058484)時,我遇到了不同的問題,DNS主機名:yes',但實例啓動時它只是私有ID。當使用彈性IP時,我只能獲得公共IP。 – hyip

回答

29

在VPC中啓動了與實例類似的聲音,但在此過程中,未檢查Automatically assign a public IP address to your instances的複選框。因此,此實例沒有公開的IP

您可以將Elastic IP分配給此實例,然後使用該IP登錄。

+1

我試圖使用公共IP與膩子連接。但它說「服務器拒絕我們的密鑰」。我使用puttygen將.pem文件轉換爲.ppk文件 – user1456508

+1

您使用的是什麼用戶名?哪個AMI是這個?這是什麼操作系統? – slayedbylucifer

+3

有沒有辦法在事後分配一個公共IP?我沒有看到編輯實例詳細信息設置的方法。 –

8

只需啓動另一個實例(並且如果它沒有用,也刪除相關問題),並確保這次選中「自動爲您的實例分配公有IP地址」。如果不是這樣,那麼slayedbylucifer建議;將Elastic IP(EIP)分配給實例,然後使用該IP登錄。但要小心,如果你運行免費的AWS層,EIP將花費你的錢 - 這是一個完整的'其他主題..

36

VPC中實際上有一個名爲「DNS主機名」的設置。您可以修改EC2實例所在的VPC,並將其更改爲「是」。這應該夠了吧。

昨天我遇到了這個問題,並試圖從曼尼的上述答案,這沒有奏效。然而,VPC設置,確實爲我工作

最終我添加了一個EIP,我用它來連接。

+0

有沒有辦法做到這一點,而不修改整個VPC?我希望公有DNS用於VPC中的一個節點,但不希望它適用於該VPC中具有彈性IP的每個其他節點。 –

+1

我想你應該可以爲該節點添加彈性IP,不是嗎? –

+0

是的,但它不會在你的答案中沒有你的建議內部解決:-) –

2

如果實例在VPC中,請確保「DNS解析」和「DNS主機名」均設置爲「是」。您可以在Aws控制檯UI中執行此操作。 HTH!

394

我有同樣的問題解決了它。看看在一步一步的指示:

  • 轉到console.aws.amazon.com
  • 轉到服務 - > VPC
  • 打開您的VPC
  • 選擇您的VPC連接到您的EC2和
  • 選擇操作=>編輯DNS主機名 --->將DNS主機名:更改爲YES

希望這會有所幫助!

乾杯

+3

這是最好的答案。應該檢查! –

+2

包含VPC的部分現在稱爲網絡。要進行編輯,請右鍵單擊VPC。 – nasch

+39

+1您現在還需要設置您的子網以允許自動分配公共IP。右鍵單擊您的子網>修改自動分配公共IP>選中方框 –

2

轉到VPC控制檯,選擇您的VPC,並單擊操作菜單,選擇編輯DNS主機名 - 選擇是。這應該解決它。

17

這是提供解決不工作的問題提示:

提示 - 如果您的實例沒有一個公共DNS名稱,打開VPC控制檯,選擇VPC,並檢查摘要選項卡。如果DNS解析或DNS主機名爲「否」,請單擊「編輯」並將值更改爲「是」。

假設你已經完成了這項工作,並且你還沒有獲得一個公共IP,那麼在VPC管理屏幕中轉到問題子網,你可能會發現「自動分配公共IP」沒有設置爲yes。然後修改該設置,並且我知道您不想在此處創建該子網中的新實例。據我可以告訴你不能在主機上修改這個,我試過並試過,只是終止它。

22
  1. 轉至AWS控制檯。
  2. 轉到服務並選擇VPC
  3. 點擊vPC。
  4. 選擇實例並點擊Action。
  5. 選擇編輯DNS主機名單擊是。

最後你會得到你的公共dns。

+0

將公有DNS與分配的彈性IP作品一起添加到VPC。出於某種原因,彈性IP可以通過安全組從外部世界中ping出來,但會觸發一個像Solr一樣的Web應用程序,除非有公共DNS分配。 –

12

在我的情況下,我找到了slayedbylucifer和其他指向相同的答案。
即使它被設置爲DNS hostname: yes,沒有公共IP被分配在my-pvc(僅Privat IP)。

這絕對是自動分配公網IP必須設置Enable
如果沒有選擇它,則默認情況下將其設置爲Use subnet setting (Disable)

Assign Public IP

+0

這是正確的答案。應該選擇它。 – JonyD

3

首先,可以有兩個方面的原因:

  1. 你已經創建了自己的VPC並忘記啓用公共DNS。

要解決這個問題:

我)到AWS VPC控制檯,選擇您所創建的VPC。

ii)然後點擊操作,然後啓用DNS解析。

  OR 
  • 您還沒有啓用在EC2配置公網IP指派選項。
  • 在這裏你不能改變設置;所以創建一個ami鏡像,然後從中重新創建實例。

    0

    換到DNS主機名的設置,也可以使用AWS CLI完成:

    aws ec2 modify-vpc-attribute --vpc-id $vpc_id --enable-dns-hostnames '{"Value": true}' 
    

    (其中$ vpc_id是您的實例連接到的VPC的ID)

    由於VPC更新後,實例將獲得公共DNS。

    2

    對於使用CloudFormation那些,關鍵屬性是EnableDnsSupportEnableDnsHostnames應設置爲true

    VPC: { 
        Type: 'AWS::EC2::VPC', 
        Properties: { 
         CidrBlock: '10.0.0.0/16', 
         EnableDnsSupport: true, 
         EnableDnsHostnames: true, 
         InstanceTenancy: 'default', 
         Tags: [ 
         { 
          Key: 'env', 
          Value: 'dev' 
         }] 
        } 
        } 
    
    +0

    有用的答案,謝謝。僅供參考EnableDnsSupport的默認值爲true,因此通常指示EnableDnsHostnames:true。 – jarmod

    相關問題