Làm thế nào để thêm mục vào trình phân giải DNS cục bộ [đã đóng]


19

Tôi muốn làm một số thử nghiệm trên linux. Tôi muốn đặt một máy chủ web nhỏ trên máy có IP: 1.2.3.4 (giả định) và khi truy vấn DNS được thực hiện cho một URL cụ thể: kitty.myweb.com tôi muốn trả về địa chỉ IP này.

Kịch bản:

  1. Khi tôi mở trình duyệt (firefox hoặc bất cứ thứ gì), tôi nhập URL kitty.myweb.com và trình duyệt sẽ thực hiện truy vấn DNS
  2. Tôi muốn viết một chương trình truy vấn DNS cho kitty.myweb.com

Tôi biết rằng mỗi máy tính có một trình phân giải DNS cục bộ lưu trữ một số mục; một cuộc gọi đến một URL sẽ truy vấn trình phân giải DNS cục bộ trước tiên và nếu không có mục tương ứng, nó sẽ gửi truy vấn đến trình phân giải DNS bên ngoài trên mạng LAN hoặc Internet.

Điều tôi muốn là thêm một mục (kitty.myweb.com: 1.2.3.4) vào trình phân giải DNS cục bộ, để cho 2 kịch bản ở trên, phản hồi DNS sẽ là 1.2.3.4 mà không phải thực hiện truy vấn bên ngoài.

Có thể làm điều này trên linux, và nếu vậy, làm thế nào? Có lẽ có bất kỳ đoạn mã C nào sẽ làm điều này?

Câu trả lời:


30

Bạn có thể sử dụng / etc / hosts để thêm mục nhập của bạn. Điều này không thực sự sử dụng DNS nhưng nó ảnh hưởng đến thư viện trình phân giải trong Linux, được hầu hết các ứng dụng sử dụng. Thêm vào:

1.2.3.4 kitty.myweb.com

Một tùy chọn khác là cài đặt một máy chủ DNS đơn giản trên hệ thống của bạn. Một cái tôi thường sử dụng được gọi là dnsmasq. Trên một số distro, nó được cài đặt theo mặc định như một bộ giải quyết bộ đệm, trong trường hợp đó bạn chỉ cần sửa đổi cấu hình để bao gồm:

địa chỉ = / kitty.myweb.com / 1.2.3.4

Nếu bạn đang chạy máy chủ DNS của riêng mình, có thể bạn sẽ cần chơi với /etc/resolv.conf được thư viện trình phân giải Linux sử dụng. Để làm cho thư viện trình phân giải nhìn vào một máy chủ DNS cục bộ, bạn sẽ cần một mục trong decv.conf:

máy chủ tên 127.0.0.1


9

Cách dễ nhất để thêm một mục DNS duy nhất trên máy chủ lưu trữ cục bộ của bạn là thêm nó vào tệp máy chủ. Vị trí của tệp đó có thể khác nhau trên mỗi bản phân phối, nhưng vị trí truyền thống của nó là /etc/hostsvà nó sẽ trông giống như thế này:

:: 1 localhost localhost.yourdomain.tld
127.0.0.1 localhost localhost.yourdomain.tld
1.2.3.4 kitty.myweb.com

Lưu ý rằng điều này sẽ chỉ ảnh hưởng đến máy tính của riêng bạn và điều đó không có quy mô tốt. Nói cách khác, việc kiểm tra đơn giản là tốt, chỉ cần đừng cố chỉnh sửa các tệp lưu trữ trên nhiều máy tính. Cho rằng bạn muốn các mục DNS thích hợp.

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.