La instancia EC2 no tiene DNS público

299

Un tipo con el que trabajo me dio las credenciales EC2 para iniciar sesión en su consola EC2. Yo no fui quien lo configuró. Algunas de las instancias muestran un nombre DNS público y otras tienen un DNS público en blanco. Quiero poder conectarme a las instancias que tienen un DNS público en blanco. No he podido entender por qué estos aparecen en blanco.

usuario1456508
fuente
2
¿Están las instancias dentro de una VPC? Compruebe si hay un valor al lado del campo ID de VPC en la pantalla de descripción de la instancia.
David Levesque
1
Tengo el mismo problema. Mis instancias están dentro de una VPC, y en la subred, he verificado que el DNS público esté disponible. Todavía no obtengo nombres de DNS públicos. Puedo ver eso en mi configuración de VPC, dice DNS hostnames: no, pero no puedo cambiar ese valor y agregar una nueva VPC tampoco me da la selección.
Llave
Tengo un problema diferente cuando configuro my-vpc , The DNS hostname: yes, pero solo es Private ID cuando se inicia la instancia. Solo puedo obtener la IP pública cuando se usa una IP elástica.
Chetabahana
1
Lo que me ayudó fue detener e iniciar la instancia sin la IP / DNS pública (reiniciar no ayudó). Después de reiniciar la instancia, obtuvo la IP pública.
justadev

Respuestas:

613

Tuve el mismo problema y lo resolví. Eche un vistazo a las instrucciones paso a paso:

  • Vaya a console.aws.amazon.com
  • Ir Servicios -> VPC
  • Abre tus VPC
  • seleccione su VPC conectada a su EC2 y
  • seleccione Acciones => Editar nombres de host DNS ---> Cambiar nombres de host DNS: a SÍ

¡Espero que esto ayude!

Salud

Estera
fuente
66
Esta es la mejor respuesta. ¡Debe ser verificado!
Alberto Spelta
2
La sección que contiene VPC ahora se llama Redes. Y para editar, haga clic derecho en la VPC.
Nasch
89
+1 ahora también necesita configurar su subred para permitir la asignación automática de IP pública. Haga clic derecho en su subred> modifique la asignación automática de IP pública> marque la casilla
Adam Hey
1
Incluso cuando traté de agregar un Elastic Ip, no funcionó hasta que esa opción para cambiar los nombres de host DNS se estableció en sí.
RenatoSz
55
@Vignesh No obtuve una IP pública o DNS para instancias existentes. Parar y reiniciar no cambió nada. Lo único que funcionó fue terminar y recrear la instancia.
Sí e
59

En realidad, hay una configuración en la VPC llamada "Nombres de host DNS". Puede modificar la VPC en la que existe la instancia EC2 y cambiarla a "Sí". Eso debería hacer el truco.

Me encontré con este problema ayer y probé la respuesta anterior de Manny, que no funcionó. El ajuste de VPC, sin embargo, hizo el trabajo para mí.

Finalmente agregué un EIP y lo uso para conectarme.

Mike T
fuente
1
¿Hay alguna manera de hacer esto sin modificar la VPC en su conjunto? Quiero DNS público para un nodo en una VPC, pero no quiero que se aplique a todos los demás nodos con una IP elástica en esa VPC.
Robbie Averill
2
Creo que debería poder agregar una IP elástica solo para ese nodo, ¿no?
Mike T
Sí, pero no se resolverá internamente sin su sugerencia en la respuesta :-)
Robbie Averill
usando "DNS Hostnames" puedo ver DNS público
Sujit Dhamale
38

Parece que la instancia se lanzó en VPC y, al hacerlo, Automatically assign a public IP address to your instancesno se marcó la casilla de verificación. Por lo tanto, la instancia no tiene una IP pública

Puede asignar una Elastic IP a esta instancia y luego iniciar sesión con esa IP.

slayedbylucifer
fuente
1
Intenté conectarme usando la ip pública con masilla. pero decía "el servidor rechazó nuestra clave". Convertí el archivo .pem a .ppk usando puttygen
user1456508
1
¿Qué nombre de usuario estás usando? que AMI es este? que sistema operativo es este?
slayedbylucifer
3
¿Hay alguna manera de asignar una IP pública después del hecho? No veo una manera de editar la configuración de detalles de la instancia.
David Balažic
2
@slayedbylucifer ¿Qué pasa con una instancia detenida?
David Balažic
3
@ DavidBalažic, lo mismo. para el ciclo de vida de una instancia, no puede adjuntar IP de pub. Pub IP solo se puede adjuntar al momento del lanzamiento.
slayedbylucifer
30

En mi caso, encontré que la respuesta de slayedbylucifer y otras que apuntan a lo mismo son válidas.
Incluso se establece que DNS hostname: yes, no se asigna ninguna IP pública en my-pvc (solo IP privada).

Definitivamente es que se debe configurar la asignación automática de IP públicaEnable .
Si no está seleccionado, por defecto se establece enUse subnet setting (Disable)

Asignar IP pública

Chetabahana
fuente
23
  1. Vaya a la consola de AWS.
  2. Vaya a Servicios y seleccione VPC
  3. Haga clic en vpc.
  4. seleccione la instancia y haga clic en Acción.
  5. Seleccione Editar nombre de host DNS haga clic en sí.

Al final obtendrás tu dns público.

Jitendra Bhalothia
fuente
agregar DNS público a la VPC junto con los trabajos asignados de Elastic IP. Por alguna razón, el elástico IP se puede hacer ping desde el mundo exterior a través del Grupo de Seguridad, sino que golpea una aplicación web como Solr no pudo menos que haya un DNS público asignado ..
false_memories
22

Este es el consejo proporcionado para resolver el problema que no funciona:

Sugerencia: si su instancia no tiene un nombre DNS público, abra la consola VPC, seleccione la VPC y verifique la pestaña Resumen. Si la resolución DNS o los nombres de host DNS son no, haga clic en Editar y cambie el valor a sí.

Suponiendo que ha hecho esto y aún no está obteniendo una IP pública, vaya a la subred en cuestión en la pantalla de administración de VPC y probablemente descubra que la "Asignación automática de IP pública" no está configurada en sí. Modifique esa configuración entonces, y sé que no desea hacer esto aquí, cree una nueva instancia en esa subred. Por lo que puedo decir, no puede modificar esto en el host, lo intenté y lo intenté, solo termínelo.

Bill Parker
fuente
22

Para mí, el problema estaba en la configuración de subred.

  1. Abra https://console.aws.amazon.com/vpc
  2. Ir a subredes en el menú de la izquierda
  3. Elige tu subred
  4. Modifique la configuración de IP de asignación automática para habilitar
Neftanico
fuente
14

Está relacionado con la función de VPC llamada "Nombres de host DNS". Puede habilitarlo o deshabilitarlo. Vaya a la VPC, en el menú Acciones seleccione el elemento "Editar nombres de host DNS" y luego elija "Sí". Después de hacerlo, se debe mostrar el DNS público de las instancias EC2.

Lior Kirshner
fuente
¿Puedo usar mis nombres personalizados? Porque cuando envío correos electrónicos desde mi instancia, Gmail muestra enviado por correo electrónico ec2..ip dirección ... ubicación..etc en lugar de mi nombre de dominio
mrid
@mrid necesita asociar su DNS con el DNS generado del EC2. Puede hacerlo con el servicio AWS Route53, nuestro administrador de hosting / DNS.
Lior Kirshner
10

Simplemente inicie otra instancia (y también elimine la en cuestión si no tiene uso) y asegúrese de que esta vez marque "Asignar automáticamente una dirección IP pública a su instancia". Si no, como sugirió slayedbylucifer; asigne una IP elástica (EIP) a la instancia y luego inicie sesión con esa IP. Sin embargo, tenga cuidado, si está ejecutando el nivel gratuito de AWS, un EIP le costará dinero, ese es un tema completamente diferente.

Manny Fernández
fuente
6

En primer lugar, puede haber dos razones para esto:

  1. Ha creado su propia VPC y olvidó habilitar el DNS público.

Para resolver esto:

i) Vaya a la consola de AWS VPC y seleccione la VPC que ha creado.

ii) Luego haga clic en Acciones y luego active Resolución DNS.

            OR
  1. No ha habilitado la opción pública de asignación de ip en la configuración de EC2.

Aquí no puede cambiar la configuración; así que crea una imagen ami y luego recrea la instancia a partir de eso.

Patrick R
fuente
Estas son dos de las muchas causas posibles, ciertamente no son las únicas dos posibilidades.
Madbreaks
6

Aquí resumiré los problemas más comunes que ocurren:

Cuando crea una VPC personalizada, si desea que todos los recursos, como las instancias ec2, adquieran direcciones IP públicas para que Internet pueda comunicarse con ellas, primero debe asegurarse de que la instancia ec2 esté asociada a una subred pública de la VPC personalizada. Esto significa que la subred tiene una puerta de enlace de Internet asociada. Además, debe asegurarse de que el grupo de seguridad de la VPC asociado con la instancia ec2 tenga reglas que permitan el tráfico entrante a los puertos deseados, como ssh, http y https. PERO aquí hay algunos descuidos comunes que todavía ocurren:

1) Debe asegurarse de que los nombres de host DNS estén habilitados para la VPC

2) Debe asegurarse de que la subred pública vinculada a la instancia EC2 tenga habilitada su marca de "asignación automática de IP pública"

3) Si la instancia ya está creada, es posible que deba terminarla y crear una nueva instancia para que se llenen los campos de IP pública y DNS público.

Donato
fuente
Una vez que esta IP pública es visible en la instancia lanzada, podemos usar esta IP para conectar la instancia a través de masilla SSH
rinilnath
5

Después de verificar la configuración de VPC y subred, mi instancia EC2 todavía no tenía un DNS público. Después de un día de buscar una resolución, finalmente lo descubrí.

Tuve que crear una nueva dirección IP elástica y luego asociarla a mi instancia.

Desde el panel de EC2:

Vaya a Elastic IPs desde la barra lateral.

Haga clic en Asignar nueva dirección , luego Asignar .

Regrese al Tablero de EC2. Vaya a Interfaces de red .

Seleccione la instancia EC2 sin un DNS público. Luego Acciones - Dirección asociada .

El campo Dirección , seleccione la nueva dirección IP elástica.

El campo Asociar a dirección IP privada , seleccione la dirección IP privada sin DNS público.

Haga clic en Dirección asociada .

Su instancia EC2 ahora debe tener un DNS público.

BenR
fuente
1
Esta fue la respuesta para mí. Mi VPC ya estaba configurada para habilitar DNS público.
melicente
Se muestra el DNS público, pero aún no se puede conectar a través de scp / putty. mostrando tiempo de espera de conexión!
ShivarajRH
2

El cambio en la configuración de los nombres de host DNS también se puede hacer con la AWS CLI:

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

(Donde $ vpc_id es la ID de la VPC a la que está conectada su instancia).

Tan pronto como se actualice la VPC, la instancia obtendrá un DNS público.

Paul Pritchard
fuente
2

Para aquellos que usan CloudFormation, las propiedades clave son EnableDnsSupport y EnableDnsHostnames que deben establecerse en true

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

fuente
Respuesta útil, gracias. Para su información, el valor predeterminado para EnableDnsSupport es verdadero, por lo que suele ser suficiente para indicar EnableDnsHostnames: verdadero.
jarmod
1

Si la instancia está en VPC, asegúrese de que "resolución DNS" y "nombres de host DNS" estén configurados en "sí". Puede hacerlo en la interfaz de usuario de la consola de Aws. HTH!

Trunal Bhanse
fuente
1

Vaya a la consola VPC, seleccione su VPC y haga clic en el menú ACCIONES, seleccione Editar nombres de host DNS - seleccione Sí. Eso debería arreglarlo.

Kingz
fuente
0

Traté de arreglar el 'no DNS público' una vez que el EC2 estaba en funcionamiento, no pude agregar un DNS público

Esto es incluso después de seguir los pasos anteriores haciendo modificaciones a la VPC o la subred

entonces, tuve que hacer modificaciones a la subred y al vpc, antes de comenzar otra instancia, y ENTONCES iniciar una nueva instancia.

la nueva instancia tenía un DNS público. Así es como funcionó para mí.

1082E1984
fuente