Ein Mann, mit dem ich zusammenarbeite, gab mir die EC2-Anmeldeinformationen, um mich an seiner EC2-Konsole anzumelden. Ich war nicht derjenige, der es eingerichtet hat. Einige Instanzen zeigen einen öffentlichen DNS-Namen an, andere einen leeren öffentlichen DNS. Ich möchte eine Verbindung zu Instanzen herstellen können, die ein leeres öffentliches DNS haben. Ich konnte nicht herausfinden, warum diese als leer angezeigt werden.
amazon-web-services
amazon-ec2
amazon-vpc
user1456508
quelle
quelle
DNS hostnames: no
aber ich kann diesen Wert nicht ändern, und das Hinzufügen einer neuen VPC gibt mir auch nicht die Auswahl.DNS hostname: yes
, aber es ist nur Private ID, wenn die Instanz gestartet wird. Ich kann die öffentliche IP nur erhalten, wenn eine elastische IP verwendet wird.Antworten:
Ich hatte das gleiche Problem und löste es. Schauen Sie sich die Schritt-für-Schritt-Anleitung an:
Hoffe das hilft!
Prost
quelle
In der VPC gibt es eine Einstellung namens "DNS-Hostnamen". Sie können die VPC, in der die EC2-Instanz vorhanden ist, ändern und in "Ja" ändern. Das sollte den Trick machen.
Ich bin gestern auf dieses Problem gestoßen und habe die obige Antwort von Manny ausprobiert, die nicht funktioniert hat. Die VPC - Einstellung jedoch tat Arbeit für mich.
Letztendlich habe ich eine EIP hinzugefügt und benutze diese, um eine Verbindung herzustellen.
quelle
Klingt so, als ob die Instanz in VPC gestartet wurde und dabei das Kontrollkästchen für
Automatically assign a public IP address to your instances
nicht aktiviert wurde. Daher hat die Instanz keine öffentliche IPSie können dieser Instanz eine elastische IP zuweisen und sich dann mit dieser IP anmelden.
quelle
In meinem Fall fand ich die Antwort von Slayedbylucifer und anderen, die darauf hinweisen, gültig.
Auch wenn festgelegt ist, dass
DNS hostname: yes
auf my-pvc keine öffentliche IP zugewiesen ist (nur private IP).quelle
Am Ende erhalten Sie Ihre öffentlichen DNS.
quelle
Dies ist der Tipp zur Behebung des Problems, das nicht funktioniert:
Tipp - Wenn Ihre Instanz keinen öffentlichen DNS-Namen hat, öffnen Sie die VPC-Konsole, wählen Sie die VPC aus und überprüfen Sie die Registerkarte Zusammenfassung. Wenn entweder DNS-Auflösung oder DNS-Hostnamen Nein ist, klicken Sie auf Bearbeiten und ändern Sie den Wert in Ja.
Angenommen, Sie haben dies getan und erhalten immer noch keine öffentliche IP-Adresse. Wechseln Sie dann im VPC-Administratorbildschirm zu dem betreffenden Subnetz, und Sie werden wahrscheinlich feststellen, dass "Öffentliche IP automatisch zuweisen" nicht auf "Ja" gesetzt ist. Ändern Sie diese Einstellung dann, und ich weiß, dass Sie dies hier nicht möchten, erstellen Sie eine neue Instanz in diesem Subnetz. Soweit ich Ihnen sagen kann, dass Sie dies auf dem Host nicht ändern können, habe ich versucht und versucht, es einfach zu beenden.
quelle
Für mich lag das Problem in den Subnetzeinstellungen.
quelle
Es hängt mit der VPC-Funktion "DNS-Hostnamen" zusammen. Sie können es aktivieren oder deaktivieren. Gehen Sie zur VPC, wählen Sie im Menü Aktionen den Eintrag "DNS-Hostnamen bearbeiten" und dann "Ja". Danach sollte das öffentliche DNS der EC2-Instanzen angezeigt werden.
quelle
Starten Sie einfach eine andere Instanz (und löschen Sie auch die betreffende Instanz, wenn sie keine Verwendung hat) und stellen Sie sicher, dass Sie diesmal "Ihrer Instanz automatisch eine öffentliche IP-Adresse zuweisen" aktivieren. Wenn nicht, dann wie von Slayedbylucifer vorgeschlagen; Weisen Sie der Instanz eine elastische IP (EIP) zu und melden Sie sich dann mit dieser IP an. Seien Sie jedoch vorsichtig, wenn Sie die kostenlose AWS-Stufe ausführen, kostet Sie eine EIP Geld - das ist ein ganz anderes Thema.
quelle
Erstens kann es zwei Gründe dafür geben:
Um dies zu lösen:
i) Gehen Sie zur AWS VPC-Konsole und wählen Sie die von Ihnen erstellte VPC aus.
ii) Klicken Sie dann auf Aktionen und aktivieren Sie die DNS-Auflösung.
Hier können Sie die Einstellung nicht ändern. Erstellen Sie also ein Ami-Image und erstellen Sie die Instanz daraus neu.
quelle
Hier fasse ich die häufigsten Probleme zusammen:
Wenn Sie eine benutzerdefinierte VPC erstellen und möchten, dass aws-Ressourcen wie ec2-Instanzen öffentliche IP-Adressen abrufen, damit das Internet mit ihnen kommunizieren kann, müssen Sie zunächst sicherstellen, dass die ec2-Instanz einem öffentlichen Subnetz der benutzerdefinierten VPC zugeordnet ist. Dies bedeutet, dass dem Subnetz ein Internet-Gateway zugeordnet ist. Außerdem müssen Sie sicherstellen, dass die Sicherheitsgruppe der VPC, die der ec2-Instanz zugeordnet ist, über Regeln verfügt, die eingehenden Datenverkehr zu den gewünschten Ports wie ssh, http und https zulassen. ABER hier sind einige häufige Versehen, die immer noch auftreten:
1) Sie müssen sicherstellen, dass DNS-Hostnamen für die VPC aktiviert sind
2) Sie müssen sicherstellen, dass für das mit der EC2-Instanz verknüpfte öffentliche Subnetz das Flag "Automatische Zuweisung der öffentlichen IP" aktiviert ist
3) Wenn die Instanz bereits erstellt wurde, müssen Sie sie möglicherweise beenden und eine neue Instanz erstellen, damit die öffentlichen IP- und öffentlichen DNS-Felder ausgefüllt werden.
quelle
Nach Überprüfung der VPC- und Subnetzeinstellungen verfügte meine EC2-Instanz noch nicht über ein öffentliches DNS. Nachdem ich einen Tag lang nach einer Lösung gesucht hatte, fand ich es endlich heraus.
Ich musste eine neue elastische IP-Adresse erstellen und sie dann meiner Instanz zuordnen.
Aus dem EC2-Dashboard:
Gehen Sie in der Seitenleiste zu Elastic IPs .
Klicken Sie auf Neue Adresse zuweisen und dann auf Zuweisen .
Kehren Sie zum EC2-Dashboard zurück. Gehen Sie zu Netzwerkschnittstellen .
Wählen Sie die EC2-Instanz ohne öffentlichen DNS aus. Dann Aktionen - Adresse zuordnen .
Das Adressfeld, wählen Sie die neue elastische IP - Adresse.
Der Associate private IP - Adresse Feld, wählen Sie die private IP - Adresse ohne öffentlichen DNS.
Klicken Sie auf Adresse zuordnen .
Ihre EC2-Instanz sollte jetzt über ein öffentliches DNS verfügen.
quelle
Die Änderung der Einstellung DNS-Hostnamen kann auch über die AWS-CLI vorgenommen werden:
(Wobei $ vpc_id die ID der VPC ist, an die Ihre Instanz angehängt ist.)
Sobald die VPC aktualisiert wird, erhält die Instanz einen öffentlichen DNS.
quelle
Für Benutzer von CloudFormation sind die Schlüsseleigenschaften EnableDnsSupport und EnableDnsHostnames, die auf true gesetzt werden sollten
quelle
Wenn sich die Instanz in VPC befindet, stellen Sie sicher, dass sowohl "DNS-Auflösung" als auch "DNS-Hostnamen" auf "Ja" gesetzt sind. Sie können dies in der Benutzeroberfläche der Aws-Konsole tun. HTH!
quelle
Gehen Sie zur VPC-Konsole, wählen Sie Ihre VPC aus, klicken Sie auf das Menü AKTIONEN, wählen Sie DNS-Hostnamen bearbeiten - wählen Sie Ja. Das sollte es beheben.
quelle
Sie müssen Ihrer Instanz keine öffentliche IP-Adresse zuweisen. Sie können NAT-Instanzen oder NAT Gateway verwenden.
https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Scenario2.html https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-comparison.html
quelle
Ich habe versucht, das Problem "kein öffentliches DNS" zu beheben, sobald der EC2 in Betrieb war. Ich konnte kein öffentliches DNS hinzufügen
Dies ist auch nach dem Befolgen der obigen Schritte, um Modifikationen an der VPC oder dem Subnetz vorzunehmen
Daher musste ich Änderungen am Subnetz und am VPC vornehmen, bevor ich eine andere Instanz startete, und dann eine neue Instanz starten.
Die neue Instanz hatte ein öffentliches DNS. So hat es bei mir funktioniert.
quelle