EC2 उदाहरण में कोई सार्वजनिक DNS नहीं है


299

मेरे साथ काम करने वाले एक व्यक्ति ने मुझे EC2 क्रेडेंशियल्स दिए जो कि उसके EC2 कंसोल पर लॉग इन करें। मैं वह नहीं था जिसने इसे स्थापित किया। कुछ उदाहरण सार्वजनिक डीएनएस नाम दिखाते हैं और अन्य में एक सार्वजनिक डीएनएस है। मैं उन उदाहरणों से कनेक्ट करना चाहता हूं जिनके पास रिक्त सार्वजनिक DNS है। मैं यह पता नहीं लगा पाया कि ये खाली क्यों दिखते हैं।


2
क्या VPC के अंदर के उदाहरण हैं? उदाहरण विवरण स्क्रीन में VPC ID फ़ील्ड के आगे मान है या नहीं, इसकी जाँच करें।
डेविड लेवेस्क

1
मेरी भी यही समस्या है। मेरे उदाहरण एक VPC के अंदर हैं, और Subnet पर, मैंने उपलब्ध होने के लिए सार्वजनिक DNS की जाँच की है। फिर भी मुझे कोई सार्वजनिक डीएनएस नाम नहीं मिल रहा है। मैं अपने वीपीसी कॉन्फ़िगरेशन में देख सकता हूं, यह कह रहा है DNS hostnames: no, लेकिन मैं उस मूल्य को नहीं बदल सकता हूं और एक नया वीपीसी जोड़ने से मुझे चयन नहीं मिलता है।
रिंच

मेरे सेटअप करते समय मुझे अलग समस्या होती है , vpcDNS hostname: yes , लेकिन यह केवल निजी आईडी है जब उदाहरण शुरू किया जाता है। मैं केवल सार्वजनिक आईपी प्राप्त कर सकता हूं जब एक इलास्टिक आईपी का उपयोग किया जाता है।
चेतबाहन

1
सार्वजनिक आईपी / डीएनएस के बिना उदाहरण के लिए मुझे रोकने और शुरू करने में क्या मदद मिली (रिबूट ने मदद नहीं की)। उदाहरण के पुनरारंभ होने के बाद, इसे सार्वजनिक IP मिली।
15

जवाबों:


612

मेरे पास एक ही समस्या थी इसे हल किया। चरण-दर-चरण निर्देशों पर एक नज़र डालें:

  • कंसोल .aws.amazon.com पर जाएं
  • सेवाओं पर जाएं -> वीपीसी
  • अपने VPCs खोलें
  • अपने EC2 से जुड़े VPC का चयन करें और
  • चयन क्रिया => DNS होस्टनाम संपादित करें ---> DNS होस्टनाम बदलें: हाँ

उम्मीद है की यह मदद करेगा!

चियर्स


6
यह सबसे अच्छा जवाब है। इसकी जाँच होनी चाहिए!
अल्बर्टो स्पेल्टा

2
VPCs वाले अनुभाग को अब नेटवर्किंग कहा जाता है। और संपादित करने के लिए, आप VPC पर राइट-क्लिक करें।
शाम

89
+1 अब आपको सार्वजनिक आईपी के ऑटो असाइनमेंट की अनुमति देने के लिए अपना सबनेट सेट करना होगा। अपने सबनेट पर राइट क्लिक करें> ऑटो-असाइन पब्लिक आईपी> बॉक्स को चेक करें
एडम अरे

1
यहां तक ​​कि जब मैंने एक इलास्टिक आईपी को जोड़ने की कोशिश की, तब तक यह काम नहीं कर रहा था जब तक कि डीएनएस होस्टनाम को बदलने का विकल्प हां में सेट नहीं हो गया था।
रेनतोज़ज़

5
@ विग्नेश मुझे मौजूदा उदाहरणों के लिए एक सार्वजनिक आईपी या डीएनएस नहीं मिला। रोकना और पुनः आरंभ करने से कुछ भी नहीं बदला। केवल एक चीज जो काम करती थी वह थी उदाहरण को समाप्त करना और फिर से बनाना।
वाई ई जेड

59

वीपीसी में वास्तव में "DNS होस्टनाम" नामक एक सेटिंग है। आप VPC को संशोधित कर सकते हैं जिसमें EC2 उदाहरण मौजूद है, और इसे "हां" में बदल दें। यह ट्रिक काम आना चाहिए।

मैं कल इस मुद्दे पर भाग गया और मैनी से उपरोक्त उत्तर की कोशिश की, जो काम नहीं किया। हालांकि, VPC सेटिंग ने मेरे लिए काम किया

अंतत: मैंने एक EIP जोड़ा और मैं इसे कनेक्ट करने के लिए उपयोग करता हूं।


1
क्या वीपीसी को समग्र रूप से संशोधित किए बिना ऐसा करने का कोई तरीका है? मैं एक VPC में एक नोड के लिए सार्वजनिक DNS चाहता हूं, लेकिन यह नहीं चाहता कि यह VPC में एक लोचदार IP के साथ हर दूसरे नोड पर लागू हो।
रोबी एवेरिल

2
मुझे लगता है कि आपको उस नोड के लिए एक लोचदार आईपी जोड़ने में सक्षम होना चाहिए, नहीं?
माइक टी

हाँ, लेकिन यह उत्तर में आपके सुझाव के बिना आंतरिक रूप से हल नहीं होगा :-)
रोबी एवरिल

"DNS होस्टनाम" का उपयोग करके मैं सार्वजनिक DNS
सुजीत धामले

38

उदाहरण की तरह लगता है VPC में लॉन्च किया गया था और ऐसा करते समय, चेक-बॉक्स के लिए Automatically assign a public IP address to your instancesजाँच नहीं की गई थी। इसलिए उदाहरण सार्वजनिक IP नहीं है

आप इस उदाहरण के लिए एक इलास्टिक IP असाइन कर सकते हैं और फिर उस IP का उपयोग करके लॉग इन कर सकते हैं।


1
मैंने सार्वजनिक आईपी का उपयोग पोटीन के साथ जोड़ने की कोशिश की। लेकिन इसने कहा "सर्वर ने हमारी कुंजी को अस्वीकार कर दिया"। मैंने .pem फ़ाइल को .tyk
1514 पर user1456508

1
आप किस उपयोगकर्ता नाम का उपयोग कर रहे हैं? यह कौन सा एएमआई है यह कौन सा ऑपरेटिंग सिस्टम है?
slayedbylucifer

3
क्या इस तथ्य के बाद सार्वजनिक आईपी आवंटित करने का कोई तरीका है? मुझे इंस्टेंस विवरण सेटिंग्स को संपादित करने का कोई तरीका नहीं दिखता है।
डेविड बालैसिक

2
@slayedbylucifer एक रोका उदाहरण के बारे में क्या?
डेविड बालैसिक

3
@ डेविडबैलिक, वही। एक उदाहरण के जीवनचक्र के लिए, आप पब आईपी संलग्न नहीं कर सकते। पब आईपी को लॉन्च के समय ही संलग्न किया जा सकता है।
slayedbylucifer

30

मेरे मामले में मुझे slayedbylucifer से जवाब मिला और अन्य जो उसी की ओर इशारा करते हैं वे मान्य हैं।
यहां तक ​​कि यह निर्धारित किया जाता है कि DNS hostname: yes, कोई भी सार्वजनिक आईपी मेरे ( पीवीसी केवल Privat आईपी) पर असाइन नहीं किया गया है ।

यह निश्चित रूप से है कि ऑटो असाइन पब्लिक आईपी को सेट किया जाना है Enable
यदि यह चयनित नहीं है, तो डिफ़ॉल्ट रूप से यह सेट हो जाता हैUse subnet setting (Disable)

सार्वजनिक आईपी असाइन करें


23
  1. AWS कंसोल पर जाएं।
  2. सेवाओं पर जाएं और VPC का चयन करें
  3. Vpc पर क्लिक करें।
  4. उदाहरण का चयन करें और क्रिया पर क्लिक करें।
  5. DNS होस्ट नाम संपादित करें का चयन करें हां पर क्लिक करें।

आखिर में आपको अपना पब्लिक डेन्स मिलेगा।


असाइन किए गए Elastic IP कार्यों के साथ VPC में सार्वजनिक DNS जोड़ना। किसी कारण से, इलास्टिक आईपी को सिक्योरिटी ग्रुप के माध्यम से बाहरी दुनिया से पिंग किया जा सकता है, लेकिन
सोल की

22

यह समस्या को हल करने के लिए प्रदान की गई टिप है जो काम नहीं करती है:

टिप - यदि आपके उदाहरण में सार्वजनिक DNS नाम नहीं है, तो VPC कंसोल खोलें, VPC चुनें और सारांश टैब देखें। यदि DNS रिज़ॉल्यूशन या DNS होस्टनाम नहीं है, तो संपादित करें पर क्लिक करें और मान को हाँ में बदलें।

यह मानते हुए कि आपने यह कर लिया है और आपको अभी भी एक सार्वजनिक आईपी नहीं मिल रहा है, तो वीपीसी एडमिन स्क्रीन में प्रश्न के सबनेट पर जाएं और आपको पता चलेगा कि "ऑटो-असाइन पब्लिक आईपी" हां में सेट नहीं है। उस सेटिंग को संशोधित करें, और मुझे पता है कि आप इसे यहां नहीं करना चाहते, उस सबनेट में एक नया उदाहरण बनाएं। जहां तक ​​मैं बता सकता हूं कि आप इसे होस्ट पर संशोधित नहीं कर सकते हैं, मैंने कोशिश की और कोशिश की, बस इसे समाप्त करें।


22

मेरे लिए समस्या सबनेट सेटिंग में थी।

  1. Https://console.aws.amazon.com/vpc खोलें
  2. बाएं मेनू में सबनेट पर जाएं
  3. अपना सबनेट चुनें
  4. सक्षम करने के लिए ऑटो-असाइनिंग आईपी सेटिंग्स को संशोधित करें

14

यह वीपीसी की सुविधा से संबंधित है जिसे "डीएनएस होस्टनाम" कहा जाता है। आप इसे सक्षम या अक्षम कर सकते हैं। वीपीसी पर जाएं, एक्शन मेनू के तहत "डीएनएस होस्टनाम का संपादन करें" आइटम चुनें और फिर "हां" चुनें। ऐसा करने के बाद, EC2 उदाहरणों के सार्वजनिक DNS को प्रदर्शित किया जाना चाहिए।


क्या मैं अपने कस्टम नामों का उपयोग कर सकता हूं? Cuz जब मैं अपने उदाहरण से ईमेल भेजता हूं, तो जीमेल पर ec2..ip एड्रेस ... लोकेशन .. की जगह मेल दिखाया जाता है
mrid

@ आपको अपने DNS को EC2 के जेनरेट किए गए DNS के साथ जोड़ना होगा। आप इसे AWS रुट53 सेवा, हमारे होस्टिंग / DNS प्रबंधक के साथ कर सकते हैं।
लायर किरशनेर

10

बस एक और उदाहरण लॉन्च करें (और यदि इसका कोई उपयोग नहीं है तो प्रश्न को हटा दें) और सुनिश्चित करें कि इस बार आप "अपने उदाहरण के लिए सार्वजनिक रूप से आईपी पते को असाइन करें" की जाँच करें। यदि नहीं तो के रूप में slayedbylucifer का सुझाव दिया; उदाहरण के लिए एक इलास्टिक IP (EIP) असाइन करें और फिर उस IP का उपयोग करके लॉग इन करें। हालांकि सावधान रहें, यदि आप मुफ्त एडब्ल्यूएस टियर चला रहे हैं, तो एक ईआईपी आपको पैसा खर्च करेगा - यह एक संपूर्ण 'नोटेर विषय है।'


6

सबसे पहले, इसके दो कारण हो सकते हैं:

  1. आपने अपना VPC बनाया है और Public DNS को सक्षम करना भूल गया है।

इसे हल करने के लिए:

i) AWS VPC कंसोल पर जाएं और आपके द्वारा बनाए गए VPC का चयन करें।

ii) इसके बाद क्रियाएँ पर क्लिक करें और फिर DNS रिज़ॉल्यूशन को सक्षम करें।

            OR
  1. आपने EC2 कॉन्फ़िगरेशन में सार्वजनिक आईपी-असाइन विकल्प को सक्षम नहीं किया है।

यहां आप सेटिंग नहीं बदल सकते; इसलिए एक एमी छवि बनाएं और फिर उस से उदाहरण को फिर से बनाएँ।


ये कई संभावित कारणों में से दो हैं, निश्चित रूप से केवल दो संभावनाएं नहीं हैं।
मैडब्रेक्स

6

यहाँ मैं सबसे आम मुद्दों को संक्षेप में प्रस्तुत करूँगा:

जब आप एक कस्टम VPC बनाते हैं, यदि आप सार्वजनिक IP पते प्राप्त करने के लिए ec2 इंस्टेंसेस जैसे aws संसाधन चाहते हैं ताकि इंटरनेट उनके साथ संवाद कर सके, तो आपको पहले यह सुनिश्चित करना होगा कि ec2 उदाहरण कस्टम VPC के सार्वजनिक सबनेट से संबद्ध है। इसका मतलब है कि सबनेट के पास एक इंटरनेट गेटवे है जो इसके साथ जुड़ा हुआ है। इसके अलावा, आपको यह सुनिश्चित करने की आवश्यकता है कि ec2 उदाहरण के साथ जुड़े VPC के सुरक्षा समूह के पास वांछित पोर्ट, जैसे ssh, http और https के लिए इनबाउंड ट्रैफ़िक की अनुमति देने के नियम हैं। लेकिन यहाँ कुछ सामान्य ओवरसाइट हैं जो अभी भी होते हैं:

1) आपको यह सुनिश्चित करना होगा कि DNS होस्टनाम VPC के लिए सक्षम है

2) आपको यह सुनिश्चित करना चाहिए कि EC2 उदाहरण से जुड़ा सार्वजनिक सबनेट का 'सार्वजनिक आईपी का स्वत: असाइनमेंट' ध्वज सक्षम हो

3) यदि उदाहरण पहले से ही बनाया गया है, तो आपको इसे समाप्त करने की आवश्यकता हो सकती है और सार्वजनिक आईपी और सार्वजनिक डीएनएस क्षेत्रों के लिए एक नया उदाहरण बनाना होगा।


एक बार जब यह सार्वजनिक आईपी लॉन्च किए गए उदाहरण में दिखाई देता है, तो हम इस आईपी का उपयोग पोटीन एसएसएच के माध्यम से उदाहरण को जोड़ने के लिए कर सकते हैं
rinilnath

5

VPC और सबनेट सेटिंग्स की पुष्टि करने के बाद, मेरे EC2 उदाहरण में अभी भी सार्वजनिक DNS नहीं था। एक संकल्प की खोज के एक दिन के बाद, मैंने आखिरकार इसका पता लगा लिया।

मुझे एक नया इलास्टिक आईपी एड्रेस बनाना था, फिर इसे मेरे उदाहरण के साथ जोड़ दिया।

EC2 डैशबोर्ड से:

साइडबार से इलास्टिक आईपी पर जाएं ।

नया पता आवंटित करें पर क्लिक करें , फिर आवंटित करें

EC2 डैशबोर्ड पर वापस जाएं। नेटवर्क इंटरफेस पर जाएं ।

सार्वजनिक DNS के बिना EC2 उदाहरण का चयन करें। फिर कार्रवाई - एसोसिएट पता

पता क्षेत्र, नई लोचदार आईपी पते का चयन करें।

निजी IP पता करने के लिए एसोसिएट क्षेत्र, कोई सार्वजनिक DNS के साथ निजी IP पता का चयन करें।

सहयोगी पते पर क्लिक करें ।

आपके EC2 उदाहरण में अब सार्वजनिक DNS होना चाहिए।


1
यह मेरे लिए जवाब था। सार्वजनिक DNS को सक्षम करने के लिए मेरा VPC पहले से ही सेट अप था।
melicent

सार्वजनिक DNS प्रदर्शित, लेकिन अभी भी scp / पोटीन के माध्यम से कनेक्ट करने में असमर्थ है। कनेक्शन टाइमआउट दिखा रहा है!
शिवराजआरएच

2

DNS होस्टनाम सेटिंग में परिवर्तन AWS CLI का उपयोग करके भी किया जा सकता है:

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

(जहाँ $ vpc_id उस VPC की आईडी है जिससे आपका उदाहरण जुड़ा हुआ है।)

जैसे ही VPC को अपडेट किया जाता है, उदाहरण सार्वजनिक DNS प्राप्त कर लेगा।


2

CloudFormation का उपयोग करने वालों के लिए, प्रमुख गुण EnableDnsSupport और EnableDnsHostnames हैं जिन्हें सच करने के लिए सेट किया जाना चाहिए

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

उपयोगी उत्तर, धन्यवाद। FYI करें DefaultDnsSupport के लिए डिफ़ॉल्ट सही है, इसलिए यह आम तौर पर EnableDnsHostnames को इंगित करने के लिए पर्याप्त है: सच।
jarmod

1

यदि उदाहरण VPC में है, तो सुनिश्चित करें कि "DNS रिज़ॉल्यूशन" और "DNS होस्टनाम" दोनों "हाँ" पर सेट हैं। आप एवस कंसोल यूआई में ऐसा कर सकते हैं। HTH!


1

वीपीसी कंसोल पर जाएं, अपना वीपीसी चुनें, और कार्रवाई मेनू पर क्लिक करें, डीएनएस होस्टनाम का चयन करें - हां का चयन करें। इसे ठीक करना चाहिए।


0

आपको अपने उदाहरण के लिए सार्वजनिक आईपी पता निर्दिष्ट करने की आवश्यकता नहीं है। आप NAT इंस्टेंस या NAT गेटवे का उपयोग कर सकते हैं।

https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Scenario2.html https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-comparison.html


0

ईसी 2 के उठने और चलने के बाद मैंने 'नो पब्लिक डीएनएस' को ठीक करने की कोशिश की, मैं पब्लिक डीएनएस नहीं जोड़ सका

यह VPC या सबनेट के लिए उपरोक्त कदम उठाने के बाद भी है

इसलिए, मुझे एक और उदाहरण शुरू करने से पहले, सबनेट और vpc में संशोधन करना था, और फिर एक नया उदाहरण शुरू करना था।

नए उदाहरण में एक सार्वजनिक DNS था। इस तरह मेरे लिए काम किया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.