Misalnya EC2 tidak memiliki DNS publik

299

Seorang pria yang bekerja dengan saya memberi saya kredensial EC2 untuk masuk ke konsol EC2-nya. Saya bukan orang yang mengaturnya. Beberapa contoh menunjukkan nama dns publik dan yang lain memiliki DNS publik kosong. Saya ingin dapat terhubung ke instance yang memiliki DNS publik kosong. Saya belum bisa mencari tahu mengapa ini muncul sebagai kosong.

pengguna1456508
sumber
2
Apakah instance di dalam VPC? Periksa apakah ada nilai di sebelah bidang VPC ID di layar deskripsi contoh.
David Levesque
1
Saya memiliki masalah yang sama. Mesin virtual saya ada di dalam VPC, dan di Subnet, saya telah memeriksa DNS publik agar tersedia. Masih saya tidak mendapatkan nama DNS publik. Saya dapat melihat bahwa dalam konfigurasi VPC saya, katanya DNS hostnames: no, tetapi saya tidak dapat mengubah nilai itu dan menambahkan VPC baru juga tidak memberi saya pilihan.
Kunci pas
Saya memiliki masalah berbeda saat mengatur my-vpc , The DNS hostname: yes, tetapi ini hanya Private ID saat instance dimulai. Saya hanya bisa mendapatkan IP Publik ketika IP Elastis digunakan.
Chetabahana
1
Apa yang membantu saya adalah berhenti dan mulai untuk instance tanpa IP / DNS publik (reboot tidak membantu). Setelah instance dinyalakan kembali, ia mendapatkan IP publik.
justadev

Jawaban:

613

Saya memiliki masalah yang sama dan menyelesaikannya. Lihatlah petunjuk langkah demi langkah:

  • Pergi ke console.aws.amazon.com
  • Pergi ke Layanan -> VPC
  • Buka VPC Anda
  • pilih VPC Anda yang terhubung ke EC2 Anda dan
  • pilih Tindakan => Edit Nama Host DNS ---> Ubah nama host DNS: ke YES

Semoga ini membantu!

Bersulang

Tikar
sumber
6
Ini jawaban terbaik. Itu harus diperiksa!
Alberto Spelta
2
Bagian yang berisi VPC sekarang disebut Networking. Dan untuk mengedit, Anda klik kanan pada VPC.
nasch
89
+1 Anda sekarang juga perlu mengatur subnet Anda untuk memungkinkan penugasan otomatis ip publik. Klik kanan subnet Anda> modifikasi auto-assign public ip> centang kotak
Adam Hey
1
Bahkan ketika saya mencoba untuk menambahkan IP Elastis, itu tidak berfungsi sampai opsi untuk mengubah nama host dns diatur ke ya.
RenatoSz
5
@ Vignesh Saya tidak mendapatkan IP publik atau DNS untuk instance yang ada. Berhenti dan memulai ulang tidak mengubah apa pun. Satu-satunya hal yang berhasil adalah mengakhiri dan membuat ulang instance.
Y e z
59

Sebenarnya ada pengaturan di VPC yang disebut "DNS Hostnames". Anda dapat memodifikasi VPC tempat instance EC2 ada, dan mengubahnya menjadi "Ya". Itu harus melakukan trik.

Saya mengalami masalah ini kemarin dan mencoba jawaban di atas dari Manny, yang tidak berhasil. Pengaturan VPC, bagaimanapun, melakukan pekerjaan untuk saya.

Akhirnya saya menambahkan EIP dan saya menggunakannya untuk menghubungkan.

Mike T
sumber
1
Apakah ada cara untuk melakukan ini tanpa memodifikasi VPC secara keseluruhan? Saya ingin DNS publik untuk satu simpul dalam VPC tetapi tidak ingin itu berlaku untuk setiap simpul lainnya dengan IP elastis di VPC itu.
Robbie Averill
2
Saya pikir Anda harus dapat menambahkan IP elastis hanya untuk simpul itu, bukan?
Mike T
Ya, tetapi itu tidak akan diselesaikan secara internal tanpa saran Anda dalam jawaban :-)
Robbie Averill
menggunakan "DNS Hostnames" saya dapat melihat DNS Publik
Sujit Dhamale
38

Kedengarannya seperti instance diluncurkan di VPC dan saat melakukannya, kotak centang untuk Automatically assign a public IP address to your instancestidak dicentang. Karenanya instans tidak memiliki IP publik

Anda dapat menetapkan IP Elastis untuk instance ini dan kemudian masuk menggunakan IP itu.

dibunuh oleh lucifer
sumber
1
Saya mencoba menghubungkan menggunakan ip publik dengan dempul. tetapi dikatakan "server menolak kunci kami". Saya mengonversikan file .pem ke file .ppk menggunakan puttygen
user1456508
1
nama pengguna apa yang kamu gunakan? AMI yang ini? sistem operasi apa ini?
slayedbylucifer
3
Apakah ada cara untuk menetapkan IP publik setelah fakta? Saya tidak melihat cara untuk mengedit pengaturan detail Instance.
David Balažic
2
@slayedbylucifer Bagaimana dengan instance yang dihentikan?
David Balažic
3
@ DavidBalažic, Sama. untuk siklus hidup suatu instance, Anda tidak dapat melampirkan IP pub. Pub IP hanya dapat dilampirkan pada saat peluncuran.
slayedbylucifer
30

Dalam kasus saya, saya menemukan jawaban dari slayedbylucifer dan lainnya yang menunjukkan hal yang sama valid.
Bahkan sudah diatur itu DNS hostname: yes, tidak ada IP Publik yang ditugaskan pada my-pvc (hanya Privat IP).

Sudah pasti bahwa Auto assign Public IP harus diatur Enable.
Jika tidak dipilih, maka secara default set keUse subnet setting (Disable)

Tetapkan IP Publik

Chetabahana
sumber
23
  1. Pergi ke Konsol AWS.
  2. Buka Layanan dan pilih VPC
  3. Klik pada vpc.
  4. pilih instance dan klik Action.
  5. Pilih Edit DNS Host name klik ya.

Pada akhirnya Anda akan mendapatkan dns Publik Anda.

Jitendra Bhalothia
sumber
menambahkan Public DNS ke VPC bersama dengan karya IP Elastis yang ditugaskan. Untuk beberapa alasan, IP elastis dapat di-ping dari dunia luar melalui Grup Keamanan tetapi memukul aplikasi web seperti Solr gagal kecuali jika ada DNS publik yang ditetapkan ..
false_memories
22

Ini adalah tip yang disediakan untuk menyelesaikan masalah yang tidak berfungsi:

Tip - Jika instance Anda tidak memiliki nama DNS publik, buka konsol VPC, pilih VPC, dan centang tab Summary. Jika resolusi DNS atau nama host DNS tidak, klik Edit dan ubah nilainya menjadi ya.

Dengan asumsi Anda telah melakukan ini dan Anda masih belum mendapatkan IP Publik kemudian pergi ke subnet yang dimaksud di layar admin VPC dan Anda mungkin akan menemukan "Auto-Assign Public IP" tidak diatur ke ya. Ubah pengaturan itu, dan saya tahu Anda tidak ingin di sini ini, buat contoh baru di subnet itu. Sejauh yang saya tahu Anda tidak dapat memodifikasi ini pada tuan rumah, saya mencoba dan mencoba, hanya menghentikannya.

Bill Parker
sumber
22

Bagi saya masalah adalah pengaturan subnet.

  1. Buka https://console.aws.amazon.com/vpc
  2. Buka subnet di menu kiri
  3. Pilih subnet Anda
  4. Ubah pengaturan IP yang ditetapkan secara otomatis untuk diaktifkan
Neftan
sumber
14

Ini terkait dengan fitur VPC yang disebut "DNS Hostnames". Anda dapat mengaktifkan atau menonaktifkannya. Buka VPC, di bawah menu Actions pilih item "Edit DNS Hostnames" dan kemudian pilih "Ya". Setelah melakukannya, DNS publik dari instance EC2 harus ditampilkan.

Lior Kirshner
sumber
Bisakah saya menggunakan nama khusus saya? Karena ketika saya mengirim email dari instance saya, Gmail menunjukkan dikirim melalui ec2..ip alamat ... lokasi..etc bukan nama domain saya
mrid
@mrid Anda harus mengaitkan DNS Anda dengan DNS yang dihasilkan dari EC2. Anda dapat melakukannya dengan layanan AWS Route53, manajer hosting / DNS kami.
Lior Kirshner
10

Luncurkan instance lain (dan hapus juga yang dimaksud jika tidak digunakan) dan pastikan kali ini Anda mencentang "Secara otomatis berikan alamat IP publik ke instance Anda". Jika tidak maka disarankan sebagai pembunuh yang dibunuh; berikan IP Elastis (EIP) ke instance dan kemudian login menggunakan IP itu. Berhati-hatilah, jika Anda menjalankan tier AWS gratis, EIP akan dikenakan biaya uang - itu adalah topik keseluruhan '..

Manny Fernandez
sumber
6

Pertama-tama, mungkin ada dua alasan untuk ini:

  1. Anda telah membuat VPC sendiri dan lupa mengaktifkan DNS Publik.

Untuk mengatasi ini:

i) Buka konsol AWS VPC dan pilih VPC yang telah Anda buat.

ii) Kemudian klik Tindakan dan kemudian aktifkan Resolusi DNS.

            OR
  1. Anda belum mengaktifkan opsi penetapan ip publik dalam konfigurasi EC2.

Di sini Anda tidak dapat mengubah pengaturan; jadi buat gambar ami dan buat ulang instance dari itu.

Patrick R
sumber
Ini adalah dua dari banyak kemungkinan penyebab, tentu bukan hanya dua kemungkinan.
Madbreak
6

Di sini saya akan merangkum masalah paling umum yang terjadi:

Saat Anda membuat VPC khusus, jika Anda ingin sumber daya aws seperti instance EC2 untuk mendapatkan alamat IP publik sehingga internet dapat berkomunikasi dengan mereka, maka Anda harus terlebih dahulu memastikan bahwa instance EC2 dikaitkan dengan subnet publik dari VPC kustom. Ini berarti bahwa subnet memiliki gateway internet yang terkait dengannya. Selain itu, Anda perlu memastikan bahwa grup keamanan VPC yang terkait dengan instance EC2 memiliki aturan yang memungkinkan lalu lintas masuk ke port yang diinginkan, seperti ssh, http dan https. TAPI di sini ada beberapa kekeliruan umum yang masih terjadi:

1) Anda harus memastikan bahwa nama host DNS diaktifkan untuk VPC

2) Anda harus memastikan subnet publik yang ditautkan ke instance EC2 mengaktifkan flag 'auto-assignment of public ip'

3) Jika instance sudah dibuat, maka Anda mungkin perlu menghentikannya dan membuat instance baru untuk IP publik dan bidang DNS publik untuk diisi.

Donato
sumber
Setelah ip publik ini terlihat dalam instance yang diluncurkan, kita dapat menggunakan IP ini untuk menghubungkan instance melalui putty SSH
rinilnath
5

Setelah memverifikasi pengaturan VPC dan Subnet, instance EC2 saya masih tidak memiliki DNS publik. Setelah seharian mencari resolusi, saya akhirnya menemukan jawabannya.

Saya harus membuat alamat IP elastis baru, kemudian mengaitkannya dengan instance saya.

Dari Dasbor EC2:

Buka IP Elastis dari bilah samping.

Klik Alokasikan alamat baru , lalu Alokasikan .

Kembali ke Dasbor EC2. Buka Antarmuka Jaringan .

Pilih instance EC2 tanpa DNS publik. Kemudian Tindakan - Alamat Asosiasi .

Bidang Alamat , pilih alamat IP elastis baru.

Kolom Associate to private IP address , pilih alamat IP pribadi tanpa DNS publik.

Klik Alamat Asosiasi .

Mesin virtual EC2 Anda sekarang harus memiliki DNS publik.

BenR
sumber
1
Ini jawaban untuk saya. VPC saya sudah diatur untuk mengaktifkan DNS publik.
melicent
DNS publik ditampilkan, tetapi masih tidak dapat terhubung melalui scp / dempul. menunjukkan batas waktu koneksi!
ShivarajRH
2

Perubahan ke pengaturan Nama Host DNS juga dapat dilakukan dengan menggunakan AWS CLI:

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

(Di mana $ vpc_id adalah ID dari VPC yang terhubung dengan instance Anda.)

Segera setelah VPC diperbarui, instance akan mendapatkan DNS publik.

Paul Pritchard
sumber
2

Bagi mereka yang menggunakan CloudFormation, properti kuncinya adalah EnableDnsSupport dan EnableDnsHostnames yang harus disetel ke true

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

sumber
Jawaban yang bermanfaat, terima kasih. FYI default untuk EnableDnsSupport benar sehingga biasanya cukup untuk menunjukkan EnableDnsHostnames: true.
jarmod
1

Jika instance berada di VPC, pastikan "resolusi DNS" dan "nama host DNS" diatur ke "ya". Anda dapat melakukan ini di UI konsol Aws. HTH!

Trunal Bhanse
sumber
1

Buka konsol VPC, pilih VPC Anda, dan klik menu ACTIONS, pilih Edit DNS Hostnames - pilih Yes. Itu harus memperbaikinya.

Kingz
sumber
0

Saya mencoba untuk memperbaiki 'tidak ada DNS publik' setelah EC2 aktif dan berjalan, saya tidak bisa menambahkan DNS publik

ini bahkan setelah mengikuti langkah-langkah di atas membuat mod ke VPC atau Subnet

jadi, saya harus membuat modifikasi pada subnet dan vpc, sebelum memulai contoh lain, dan MAKA memulai contoh baru.

contoh baru memiliki DNS publik. Begitulah cara saya bekerja.

1082E1984
sumber