Instancja EC2 nie ma publicznego DNS


299

Facet, z którym pracuję, podał mi poświadczenia EC2, aby zalogować się do swojej konsoli EC2. Nie byłem tym, który to założył. Niektóre wystąpienia zawierają publiczną nazwę DNS, a inne mają pusty publiczny DNS. Chcę mieć możliwość łączenia się z instancjami, które mają pusty publiczny DNS. Nie byłem w stanie dowiedzieć się, dlaczego są one puste.


2
Czy instancje są w VPC? Sprawdź, czy obok pola VPC ID jest wartość na ekranie opisu instancji.
David Levesque,

1
Mam ten sam problem. Moje wystąpienia znajdują się w VPC, aw podsieci sprawdziłem, czy publiczny DNS jest dostępny. Nadal nie otrzymuję publicznych nazw DNS. Widzę to w mojej konfiguracji VPC, ale mówi DNS hostnames: no, ale nie mogę zmienić tej wartości, a dodanie nowego VPC również nie daje mi wyboru.
Klucz

Mam inny problem podczas instalacji my-vpc , The DNS hostname: yes, ale jest to tylko prywatny identyfikator podczas uruchamiania instancji. Mogę uzyskać publiczny adres IP tylko wtedy, gdy używany jest elastyczny adres IP.
Chetabahana

1
Pomogło mi zatrzymanie i uruchomienie instancji bez publicznego adresu IP / DNS (ponowne uruchomienie nie pomogło). Po ponownym uruchomieniu instancji uzyskał publiczny adres IP.
justadev

Odpowiedzi:


612

Miałem ten sam problem i go rozwiązałem. Przejrzyj instrukcje krok po kroku:

  • Wejdź na console.aws.amazon.com
  • Przejdź do usług -> VPC
  • Otwórz swoje VPC
  • wybierz VPC podłączony do EC2 i
  • wybierz Działania => Edytuj nazwy hostów DNS ---> Zmień nazwy hostów DNS: na TAK

Mam nadzieję że to pomoże!

Twoje zdrowie


6
To najlepsza odpowiedź. Należy to sprawdzić!
Alberto Spelta

2
Sekcja zawierająca VPC nazywa się teraz Networking. Aby edytować, kliknij prawym przyciskiem myszy VPC.
nasch

89
+1 teraz musisz także ustawić swoją podsieć, aby umożliwić automatyczne przypisywanie publicznego adresu IP. Kliknij prawym przyciskiem myszy swoją podsieć> zmodyfikuj automatyczne przypisywanie publicznego adresu IP> zaznacz pole
Adam Hey,

1
Nawet gdy próbowałem dodać Elastyczny IP, nie działało, dopóki ta opcja zmiany nazw hostów dns nie była ustawiona na tak.
RenatoSz

5
@Vignesh Nie otrzymałem publicznego adresu IP ani DNS dla istniejących instancji. Zatrzymanie i ponowne uruchomienie niczego nie zmieniło. Jedyne, co zadziałało, to zakończenie i odtworzenie instancji.
Y e z

59

W VPC istnieje ustawienie o nazwie „Nazwy hostów DNS”. Możesz zmodyfikować VPC, w którym istnieje instancja EC2, i zmienić to na „Tak”. To powinno wystarczyć.

Wczoraj natknąłem się na ten problem i wypróbowałem powyższą odpowiedź od Manny'ego, który nie zadziałał. Ustawienie VPC jednak nie działa na mnie.

Ostatecznie dodałem EIP i używam go do łączenia.


1
Czy można to zrobić bez modyfikowania VPC jako całości? Chcę publicznego DNS dla jednego węzła w VPC, ale nie chcę, aby dotyczył on każdego innego węzła z elastycznym adresem IP w tym VPC.
Robbie Averill

2
Myślę, że powinieneś być w stanie dodać elastyczny adres IP tylko dla tego węzła, nie?
Mike T

Tak, ale nie rozwiąże się wewnętrznie bez Twojej sugestii w odpowiedzi :-)
Robbie Averill

za pomocą „DNS Hostnames” widzę publiczny DNS
Sujit Dhamale,

38

Wygląda na to, że instancja została uruchomiona w VPC i podczas tej czynności pole wyboru Automatically assign a public IP address to your instancesnie zostało zaznaczone. Dlatego instancja nie ma publicznego adresu IP

Możesz przypisać Elastyczne IP do tego wystąpienia, a następnie zalogować się przy użyciu tego adresu IP.


1
Próbowałem połączyć się przy użyciu publicznego adresu IP z kitem. ale powiedział „serwer odmówił naszego klucza”. Konwertowałem plik .pem na plik .ppk za pomocą puttygen
user1456508

1
jakiej nazwy użytkownika używasz? który to AMI? jaki to system operacyjny?
slayedbylucifer

3
Czy istnieje sposób na przypisanie publicznego adresu IP po fakcie? Nie widzę sposobu na edycję ustawień szczegółów wystąpienia.
David Balažic

2
@slayedbylucifer Co z zatrzymaną instancją?
David Balažic

3
@ DavidBalažic, Same. przez cały cykl życia instancji nie można dołączyć adresu IP pub. Adres IP pubu można dołączyć tylko w momencie uruchomienia.
slayedbylucifer

30

W moim przypadku znalazłem odpowiedź od slayedbylucifer i innych, którzy wskazują na to samo, są prawidłowe.
Nawet jest ustawione, że DNS hostname: yesżaden publiczny adres IP nie jest przypisany do my-pvc (tylko prywatne IP).

Zdecydowanie należy ustawić automatyczne przypisywanie publicznego adresu IPEnable .
Jeśli nie jest zaznaczony, domyślnie jest ustawiony naUse subnet setting (Disable)

Przypisywanie publicznego adresu IP


23
  1. Przejdź do konsoli AWS.
  2. Przejdź do usług i wybierz VPC
  3. Kliknij vpc.
  4. wybierz instancję i kliknij Akcja.
  5. Wybierz Edytuj nazwę hosta DNS kliknij Tak.

Na koniec otrzymasz publiczne dns.


dodanie publicznego DNS do VPC wraz z przypisanymi działaniami elastycznego adresu IP. Z jakiegoś powodu elastyczny adres IP może być pingowany ze świata zewnętrznego przez Security Group, ale trafienie w aplikację internetową taką jak Solr nie powiodło się, chyba że jest przypisany publiczny DNS.
false_memories 13.01.16

22

Oto wskazówka dotycząca rozwiązania problemu, który nie działa:

Wskazówka - jeśli instancja nie ma publicznej nazwy DNS, otwórz konsolę VPC, wybierz VPC i sprawdź kartę Podsumowanie. Jeśli rozdzielczość DNS lub nazwy hostów DNS to nie, kliknij Edytuj i zmień wartość na tak.

Zakładając, że to zrobiłeś i nadal nie otrzymujesz publicznego adresu IP, przejdź do danej podsieci na ekranie administratora VPC i prawdopodobnie odkryjesz, że „Automatyczne przypisywanie publicznego adresu IP” nie jest ustawione na „tak”. Zmodyfikuj to ustawienie, a wiem, że nie chcesz tego tutaj, utworzyć nową instancję w tej podsieci. O ile mogę powiedzieć, że nie możesz tego zmienić na hoście, próbowałem i próbowałem, po prostu to zakończ.



14

Jest to związane z funkcją VPC o nazwie „Nazwy hostów DNS”. Możesz go włączyć lub wyłączyć. Przejdź do VPC, w menu Działania wybierz element „Edytuj nazwy hostów DNS”, a następnie wybierz „Tak”. Po wykonaniu tej czynności powinien zostać wyświetlony publiczny DNS instancji EC2.


Czy mogę używać własnych nazw? Ponieważ kiedy wysyłam e-maile z mojej instancji, Gmail wyświetla pocztą ec2..ip adres ... lokalizacja..etc zamiast nazwy mojej domeny
mrid

@mrid musisz powiązać swój DNS z wygenerowanym DNS EC2. Możesz to zrobić za pomocą usługi AWS Route53, naszego menedżera hostingu / DNS.
Lior Kirshner

10

Po prostu uruchom inną instancję (a także usuń tę, jeśli nie ma ona zastosowania) i upewnij się, że tym razem zaznaczysz „Automatycznie przypisz publiczny adres IP do swojej instancji”. Jeśli nie, to jak sugeruje slayedcicicifer; przypisz elastyczny adres IP (EIP) do instancji, a następnie zaloguj się przy użyciu tego adresu IP. Uważaj jednak, jeśli korzystasz z bezpłatnej warstwy AWS, EIP będzie cię kosztować - to cały „inny temat”.


6

Przede wszystkim mogą być tego dwa powody:

  1. Utworzyłeś własnego VPC i zapomniałeś włączyć Publiczny DNS.

Aby rozwiązać ten problem:

i) Przejdź do konsoli AWS VPC i wybierz utworzonego VPC.

ii) Następnie kliknij Działania, a następnie włącz rozpoznawanie DNS.

            OR
  1. Nie włączono opcji publicznego przypisywania adresu IP w konfiguracji EC2.

Tutaj nie można zmienić ustawienia; więc utwórz obraz ami, a następnie odtwórz z niego instancję.


Są to dwie z wielu możliwych przyczyn, z pewnością nie jedyne dwie możliwości.
Madbreaks,

6

Tutaj streszczę najczęściej występujące problemy:

Podczas tworzenia niestandardowego VPC, jeśli chcesz, aby zasoby aws, takie jak instancje ec2, uzyskiwały publiczne adresy IP, aby Internet mógł się z nimi komunikować, musisz najpierw upewnić się, że instancja ec2 jest powiązana z publiczną podsiecią niestandardowego VPC. Oznacza to, że podsieć ma powiązaną z nią bramę internetową. Ponadto należy upewnić się, że grupa zabezpieczeń VPC powiązana z instancją ec2 ma reguły zezwalające na ruch przychodzący do pożądanych portów, takich jak ssh, http i https. ALE oto niektóre typowe niedopatrzenia, które wciąż występują:

1) Musisz upewnić się, że nazwy hostów DNS są włączone dla VPC

2) Musisz upewnić się, że podsieć publiczna połączona z instancją EC2 ma włączoną flagę „automatycznego przypisywania publicznego adresu IP”

3) Jeśli instancja jest już utworzona, konieczne może być jej zakończenie i utworzenie nowej instancji dla publicznych pól IP i publicznych pól DNS, które mają zostać wypełnione.


Gdy ten publiczny adres IP będzie widoczny w uruchomionej instancji, możemy użyć tego adresu IP, aby połączyć instancję za pomocą szpachli SSH
rinilnath

5

Po zweryfikowaniu ustawień VPC i podsieci moja instancja EC2 nadal nie miała publicznego DNS. Po dniu poszukiwań rozwiązania w końcu doszedłem do wniosku.

Musiałem utworzyć nowy elastyczny adres IP, a następnie powiązać go z moją instancją.

Z pulpitu nawigacyjnego EC2:

Przejdź do Elastyczne adresy IP z paska bocznego.

Kliknij opcję Przydziel nowy adres , a następnie Przydziel .

Wróć do pulpitu nawigacyjnego EC2. Przejdź do Interfejsy sieciowe .

Wybierz instancję EC2 bez publicznego DNS. Następnie Działania - Adres stowarzyszony .

W polu Adres wybierz nowy elastyczny adres IP.

Associate na prywatny adres IP polu wybierz prywatny adres IP bez publicznego DNS.

Kliknij Powiąż adres .

Twoja instancja EC2 powinna teraz mieć publiczny DNS.


1
To była dla mnie odpowiedź. Mój VPC został już skonfigurowany do włączenia publicznego DNS.
melicent

Wyświetlany jest publiczny DNS, ale nadal nie można połączyć się za pomocą scp / putty. pokazuje limit czasu połączenia!
ShivarajRH

2

Zmianę ustawienia nazw hostów DNS można również wykonać za pomocą interfejsu wiersza polecenia AWS:

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

(Gdzie $ vpc_id jest identyfikatorem VPC, do którego dołączona jest Twoja instancja).

Jak tylko VPC zostanie zaktualizowany, instancja uzyska publiczny DNS.


2

Dla osób korzystających z CloudFormation kluczowymi właściwościami są EnableDnsSupport i EnableDnsHostnames, które powinny być ustawione na true

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

Pomocna odpowiedź, dzięki. FYI domyślną wartością EnableDnsSupport jest true, więc zwykle wystarczy wskazać EnableDnsHostnames: true.
jarmod

1

Jeśli instancja jest w VPC, upewnij się, że zarówno „rozpoznawanie nazw DNS”, jak i „nazwy hostów DNS” są ustawione na „tak”. Możesz to zrobić w interfejsie użytkownika konsoli Aws. HTH!


1

Przejdź do konsoli VPC, wybierz VPC i kliknij menu AKCJE, wybierz Edytuj nazwy hostów DNS - wybierz Tak. To powinno to naprawić.



0

Próbowałem naprawić „brak publicznego DNS” po uruchomieniu EC2, nie mogłem dodać publicznego DNS

dzieje się tak nawet po wykonaniu powyższych kroków, modyfikując VPC lub podsieć

więc musiałem zmodyfikować podsieć i VPN przed uruchomieniem kolejnej instancji, a następnie uruchomić nową instancję.

nowa instancja miała publiczny DNS. Tak to dla mnie działało.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.