Ví dụ EC2 không có DNS công khai


299

Một anh chàng làm việc cùng đã đưa cho tôi thông tin đăng nhập EC2 để đăng nhập vào bảng điều khiển EC2 của anh ấy. Tôi không phải là người thiết lập nó. Một số trường hợp hiển thị tên dns công khai và những trường hợp khác có DNS công khai trống. Tôi muốn có thể kết nối với các phiên bản có DNS công khai trống. Tôi đã không thể tìm ra lý do tại sao những cái này hiển thị là trống.


2
Là những trường hợp bên trong một VPC? Kiểm tra xem có giá trị nào bên cạnh trường VPC ID trong màn hình mô tả thể hiện không.
David Levesque

1
Tôi có cùng một vấn đề. Các phiên bản của tôi nằm trong VPC và trên Subnet, tôi đã kiểm tra DNS công khai có sẵn. Tôi vẫn không nhận được tên DNS công khai. Tôi có thể thấy rằng trong cấu hình VPC của mình, nó nói DNS hostnames: no, nhưng tôi không thể thay đổi giá trị đó và việc thêm VPC mới cũng không cho tôi lựa chọn.
Cờ lê

Tôi gặp vấn đề khác khi thiết lập my-vpc , The DNS hostname: yes, nhưng đó chỉ là ID riêng khi phiên bản được bắt đầu. Tôi chỉ có thể nhận IP công cộng khi sử dụng IP đàn hồi.
Chetabahana

1
Điều đã giúp tôi là một điểm dừng và bắt đầu ví dụ mà không có IP / DNS công cộng (khởi động lại không giúp được gì). Sau khi được khởi động lại, nó nhận được IP công cộng.
justadev

Câu trả lời:


613

Tôi đã có cùng một vấn đề giải quyết nó. Hãy xem hướng dẫn từng bước:

  • Truy cập console.aws.amazon.com
  • Chuyển đến Dịch vụ -> VPC
  • Mở VPC của bạn
  • chọn VPC được kết nối với EC2 của bạn và
  • chọn Hành động => Chỉnh sửa tên máy chủ DNS ---> Thay đổi tên máy chủ DNS: thành CÓ

Hi vọng điêu nay co ich!

Chúc mừng


6
Đây là câu trả lời tốt nhất. Nó nên được kiểm tra!
Alberto Spelta

2
Phần chứa VPC hiện được gọi là Mạng. Và để chỉnh sửa, bạn nhấp chuột phải vào VPC.
mũi

89
Bây giờ bạn cũng cần phải thiết lập mạng con của mình để cho phép tự động gán ip công cộng. Nhấp chuột phải vào mạng con của bạn> sửa đổi tự động gán ip công cộng> đánh dấu vào ô
Adam Hey

1
Ngay cả khi tôi đã cố gắng thêm một Ip đàn hồi, nó vẫn không hoạt động cho đến khi tùy chọn thay đổi tên máy chủ dns được đặt thành có.
RenatoSz

5
@Vignesh Tôi không nhận được IP hoặc DNS công khai cho các phiên bản hiện có. Dừng lại và khởi động lại không thay đổi bất cứ điều gì. Điều duy nhất làm việc là chấm dứt và tạo lại thể hiện.
Y e z

59

Thực sự có một cài đặt trong VPC được gọi là "Tên máy chủ DNS". Bạn có thể sửa đổi VPC trong đó phiên bản EC2 tồn tại và thay đổi điều này thành "Có". Điều đó sẽ làm các trick.

Tôi đã gặp vấn đề này ngày hôm qua và đã thử câu trả lời trên từ Manny, không hiệu quả. Cài đặt VPC, tuy nhiên, đã làm việc cho tôi.

Cuối cùng, tôi đã thêm một EIP và tôi sử dụng nó để kết nối.


1
Có cách nào để làm điều này mà không sửa đổi toàn bộ VPC không? Tôi muốn DNS công khai cho một nút trong VPC nhưng không muốn nó áp dụng cho mọi nút khác có IP đàn hồi trong VPC đó.
Robbie Averill

2
Tôi nghĩ bạn sẽ có thể thêm một IP đàn hồi cho nút đó, phải không?
Mike T

Vâng, nhưng nó sẽ không giải quyết nội bộ mà không có đề xuất của bạn trong câu trả lời :-)
Robbie Averill

bằng cách sử dụng "Tên máy chủ DNS" tôi có thể thấy DNS công cộng
Sujit Dhamale

38

Âm thanh như thể hiện đã được khởi chạy trong VPC và trong khi làm như vậy, hộp kiểm cho Automatically assign a public IP address to your instanceskhông được chọn. Do đó, trường hợp không có IP công cộng

Bạn có thể gán IP đàn hồi cho trường hợp này và sau đó đăng nhập bằng IP đó.


1
Tôi đã thử kết nối bằng cách sử dụng ip công cộng với putty. nhưng nó nói "máy chủ từ chối khóa của chúng tôi". Tôi đã chuyển đổi tệp .pem thành tệp .ppk bằng puttygen
user1456508

1
bạn đang sử dụng tên người dùng nào? đây là AMI nào hệ điều hành này là gì?
slayedbylucifer

3
Có cách nào để gán IP công cộng sau khi thực tế không? Tôi không thấy cách chỉnh sửa cài đặt chi tiết Trường hợp.
David Balažic

2
@slayedbylucifer Còn trường hợp đã dừng thì sao?
David Balažic

3
@ DavidBalažic, Tương tự. đối với vòng đời của một cá thể, bạn không thể đính kèm IP pub. Pub IP chỉ có thể được đính kèm tại thời điểm ra mắt.
slayedbylucifer

30

Trong trường hợp của tôi, tôi đã tìm thấy câu trả lời từ slayedbylucifer và những người khác chỉ ra điều tương tự là hợp lệ.
Thậm chí, nó được thiết lập rằng DNS hostname: yes, không có IP công cộng nào được gán trên my-PVC (chỉ có IP riêng tư).

Điều chắc chắn là Auto gán IP công cộng phải được đặt Enable.
Nếu nó không được chọn, thì theo mặc định, nó được đặt thànhUse subnet setting (Disable)

Chỉ định IP công cộng


23
  1. Chuyển đến Bảng điều khiển AWS.
  2. Chuyển đến Dịch vụ và chọn VPC
  3. Bấm vào vpc.
  4. chọn thể hiện và bấm vào Action.
  5. Chọn Chỉnh sửa tên Máy chủ DNS, nhấp vào có.

Cuối cùng, bạn sẽ nhận được dns công cộng của bạn.


thêm DNS công cộng vào VPC cùng với IP hoạt động được chỉ định. Vì một số lý do, IP đàn hồi có thể được ping từ thế giới bên ngoài thông qua Nhóm bảo mật nhưng đánh một ứng dụng web như Solr không thành công trừ khi có DNS công cộng được gán ..
false_memories

22

Đây là mẹo được cung cấp để giải quyết vấn đề không hoạt động:

Mẹo - Nếu phiên bản của bạn không có tên DNS công khai, hãy mở bảng điều khiển VPC, chọn VPC và kiểm tra tab Tóm tắt. Nếu độ phân giải DNS hoặc tên máy chủ DNS là không, hãy nhấp vào Chỉnh sửa và thay đổi giá trị thành có.

Giả sử bạn đã thực hiện việc này và bạn vẫn chưa nhận được IP công cộng, sau đó chuyển sang mạng con được đề cập trong màn hình quản trị viên VPC và bạn có thể sẽ phát hiện "IP tự động gán công khai" không được đặt thành có. Sửa đổi cài đặt đó sau đó và tôi biết bạn không muốn ở đây, tạo một phiên bản mới trong mạng con đó. Theo như tôi có thể nói với bạn rằng bạn không thể sửa đổi điều này trên máy chủ, tôi đã thử và thử, chỉ cần chấm dứt nó.


22

Đối với tôi vấn đề là trong cài đặt mạng con.

  1. Mở https://console.aws.amazon.com/vpc
  2. Đi đến mạng con trong menu bên trái
  3. Chọn mạng con của bạn
  4. Sửa đổi cài đặt IP tự động gán để bật

14

Nó có liên quan đến tính năng của VPC được gọi là "Tên máy chủ DNS". Bạn có thể kích hoạt hoặc vô hiệu hóa nó. Chuyển đến VPC, trong menu Hành động, chọn mục "Chỉnh sửa tên máy chủ DNS" và sau đó chọn "Có". Sau khi làm như vậy, DNS công khai của các phiên bản EC2 sẽ được hiển thị.


Tôi có thể sử dụng tên tùy chỉnh của mình không? Vì khi tôi gửi email từ ví dụ của mình, Gmail hiển thị được gửi qua địa chỉ ec2..ip địa chỉ ... location..vv thay vì tên miền của tôi
mrid

@mrid bạn cần liên kết DNS của mình với DNS được tạo của EC2. Bạn có thể làm điều đó với dịch vụ AWS Route53, trình quản lý lưu trữ / DNS của chúng tôi.
Lior Kirshner

10

Chỉ cần khởi chạy một thể hiện khác (và cũng xóa một ví dụ trong câu hỏi nếu nó không sử dụng) và đảm bảo lần này bạn kiểm tra "Tự động gán địa chỉ IP công khai cho cá thể của bạn". Nếu không thì như slayedbylucifer đề nghị; gán một IP đàn hồi (EIP) cho thể hiện và sau đó đăng nhập bằng IP đó. Mặc dù vậy, hãy cẩn thận, nếu bạn đang chạy lớp AWS miễn phí, EIP sẽ khiến bạn mất tiền - đó là một chủ đề hoàn toàn mới ..


6

Trước hết, có thể có hai lý do cho việc này:

  1. Bạn đã tạo VPC của riêng mình và quên bật DNS công cộng.

Để giải quyết điều này:

i) Chuyển đến bảng điều khiển AWS VPC và chọn VPC bạn đã tạo.

ii) Sau đó nhấp vào Hành động và sau đó kích hoạt Độ phân giải DNS.

            OR
  1. Bạn chưa kích hoạt tùy chọn gán ip công khai trong cấu hình EC2.

Ở đây bạn không thể thay đổi cài đặt; Vì vậy, tạo một hình ảnh ami và sau đó tạo lại thể hiện từ đó.


Đây là hai trong số nhiều nguyên nhân có thể, chắc chắn không phải là hai khả năng duy nhất.
Madbreaks

6

Ở đây tôi sẽ tóm tắt các vấn đề phổ biến nhất xảy ra:

Khi bạn tạo VPC tùy chỉnh, nếu bạn muốn các tài nguyên như các trường hợp ec2 có được địa chỉ IP công cộng để internet có thể liên lạc với họ, thì trước tiên bạn phải đảm bảo rằng phiên bản ec2 được liên kết với mạng con công khai của VPC tùy chỉnh. Điều này có nghĩa là mạng con có một cổng internet liên kết với nó. Ngoài ra, bạn cần đảm bảo rằng nhóm bảo mật của VPC được liên kết với thể hiện ec2 có các quy tắc cho phép lưu lượng truy cập đến các cổng mong muốn, chẳng hạn như ssh, http và https. NHƯNG đây là một số quá cảnh phổ biến vẫn còn xảy ra:

1) Bạn phải đảm bảo rằng tên máy chủ DNS được bật cho VPC

2) Bạn phải đảm bảo mạng con công cộng được liên kết với phiên bản EC2 có bật cờ 'tự động gán ip công cộng'

3) Nếu thể hiện đã được tạo, thì bạn có thể cần phải chấm dứt nó và tạo một thể hiện mới cho các trường IP công cộng và DNS công cộng được điền.


Khi ip công khai này hiển thị trong phiên bản được khởi chạy, chúng ta có thể sử dụng IP này để kết nối thể hiện thông qua putty SSH
rinilnath

5

Sau khi xác minh cài đặt VPC và Subnet, phiên bản EC2 của tôi vẫn không có DNS công khai. Sau một ngày tìm kiếm một giải pháp, cuối cùng tôi đã tìm ra nó.

Tôi đã phải tạo một địa chỉ IP đàn hồi mới, sau đó liên kết nó với thể hiện của tôi.

Từ Bảng điều khiển EC2:

Chuyển đến IP đàn hồi từ thanh bên.

Nhấp vào Phân bổ địa chỉ mới , sau đó Phân bổ địa chỉ .

Quay trở lại Bảng điều khiển EC2. Chuyển đến Giao diện mạng .

Chọn phiên bản EC2 không có DNS công khai. Sau đó, Hành động - Địa chỉ liên kết .

Trường Địa chỉ , chọn địa chỉ IP đàn hồi mới.

Trường Liên kết với địa chỉ IP riêng , chọn địa chỉ IP riêng không có DNS công khai.

Nhấp vào Địa chỉ liên kết .

Ví dụ EC2 của bạn bây giờ sẽ có DNS công khai.


1
Đây là câu trả lời cho tôi. VPC của tôi đã được thiết lập để kích hoạt DNS công cộng.
melicent

DNS công cộng được hiển thị, nhưng vẫn không thể kết nối thông qua scp / putty. hiển thị thời gian chờ kết nối!
ShivarajRH

2

Việc thay đổi cài đặt Tên máy chủ DNS cũng có thể được thực hiện bằng AWS CLI:

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

(Trong đó $ vpc_id là ID của VPC mà phiên bản của bạn được đính kèm.)

Ngay sau khi VPC được cập nhật, cá thể sẽ nhận được DNS công khai.


2

Đối với những người sử dụng CloudFormation, các thuộc tính chính là EnableDnsSupportEnableDnshostnames nên được đặt thành true

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

Câu trả lời hữu ích, cảm ơn. FYI mặc định cho EnableDnsSupport là đúng vì vậy nó thường đủ để biểu thị EnableDnshostnames: true.
jarmod

1

Nếu phiên bản nằm trong VPC, hãy đảm bảo cả "độ phân giải DNS" và "tên máy chủ DNS" được đặt thành "có". Bạn có thể làm điều này trong giao diện điều khiển Aws. HTH!


1

Chuyển đến bảng điều khiển VPC, chọn VPC của bạn và nhấp vào menu HÀNH ĐỘNG, chọn Chỉnh sửa tên máy chủ DNS - chọn Có. Điều đó sẽ sửa nó.



0

Tôi đã cố sửa lỗi 'không có DNS công cộng' khi EC2 hoạt động, tôi không thể thêm DNS công cộng

điều này thậm chí sau khi làm theo các bước trên tạo mod cho VPC hoặc Subnet

Vì vậy, tôi đã phải sửa đổi mạng con và vpc, trước khi bắt đầu một thể hiện khác và THEN khởi động một thể hiện mới.

phiên bản mới đã có DNS công khai. Đó là cách nó làm việc cho tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.