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.

użytkownik1456508
źródło
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

Mata
źródło
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.

Mike T.
źródło
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.

slayedbylucifer
źródło
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

Chetabahana
źródło
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.

Jitendra Bhalothia
źródło
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.

Bill Parker
źródło
22

Dla mnie problemem były ustawienia podsieci.

  1. Otwórz https://console.aws.amazon.com/vpc
  2. Przejdź do podsieci w lewym menu
  3. Wybierz swoją podsieć
  4. Zmodyfikuj ustawienia automatycznego przypisywania IP, aby włączyć
Neftanic
źródło
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.

Lior Kirshner
źródło
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”.

Manny Fernandez
źródło
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ę.

Patrick R.
źródło
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.

Donato
źródło
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.

BenR
źródło
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.

Paul Pritchard
źródło
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'
        }]
    }
  }

źródło
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!

Trunal Bhanse
źródło
1

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

Kingz
źródło
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.

1082E1984
źródło