Tại sao tên máy chủ của tôi xuất hiện với địa chỉ 127.0.1.1 thay vì 127.0.0.1 trong / etc / hosts?


205

Đây có thể là một chút câu hỏi không hay, nhưng tôi đã xem qua / etc / hosts trên bản cài đặt Xubfox mới của tôi và thấy điều này:

127.0.0.1 localhost
127.0.1.1 myhostname

Trên hầu hết các nix tôi đã sử dụng, dòng thứ hai bị bỏ qua và nếu tôi muốn thêm tên máy chủ của mình vào tệp máy chủ, tôi chỉ cần làm điều này:

127.0.0.1 localhost myhostname

Có sự khác biệt giữa hai tập tin này trong bất kỳ ý nghĩa thực tế?


Tôi tự hỏi tôi chỉ có thể xóa dòng thứ hai hoặc một số quá trình trong debian / ub Ubuntu sẽ tạo lại dòng và thêm nó trở lại?
simgineer

Câu trả lời:


159

Không có nhiều sự khác biệt giữa hai người; 127/8(ví dụ: 127.0.0.0=> 127.255.255.255) tất cả đều bị ràng buộc với giao diện loopback.

Lý do tại sao được ghi lại trong hướng dẫn sử dụng Debian trong Ch. 5 Cài đặt mạng - 5.1.1. Độ phân giải tên máy chủ .

Cuối cùng, đó là một cách giải quyết lỗi; báo cáo ban đầu là 316099 .


5
Lý do thực tế: "Liên kết tên máy chủ hệ thống với tên sau có tác dụng không mong muốn là tạo 'localhost.localdomain' tên máy chủ chính được liên kết với tên máy chủ của hệ thống. Đó là 'tên máy chủ --fqdn' đã trả về 'localhost.localdomain'."
cmroanirgo

Tôi thực sự đã truy tìm nó trở lại tài liệu này list.debian.org/debian-boot/2005/06/msg00938.html và có vẻ như đó là vì Thomas cảm thấy cần phải sử dụng 1.1 thay vì 0.1, chúng tương đương với tôi Nếu tôi sai, nhưng điều đó có nghĩa là câu trả lời này thực sự chỉ là một mẩu bánh mì?
Brian Thomas

@BrianThomas tin nhắn đó cho thấy tại sao chúng không tương đương. Họ muốn localhostmyhostnamephải khác biệt - nếu không, người này sẽ là bí danh của người kia. Lưu ý điều này không hoạt động trong IPv6 khi chỉ có một địa chỉ loopback. Có thể tránh được bằng cách sử dụng một mô-đun NSS như được đề cập trong luồng, bởi vì nó có thể linh hoạt hơn / etc / hosts và trả về các tên chính tắc khác nhau mặc dù chúng có cùng địa chỉ IP. Tôi biết điều này bởi vì hệ thống của tôi được cấu hình bằng mô-đun NSS như vậy .
nguồn

46

Để tổng hợp thông tin được liên kết:

  • Thật hữu ích khi có một mục trong việc /etc/hostsdịch tên miền đủ điều kiện của máy thành địa chỉ IP cố định của máy.
  • debian-installervà cụ thể hơn, netcfgthành phần của nó , hiện tại (ít nhất là đến tháng 3 năm 2013) tạo ra mục này.
  • Nếu máy không được biết là có địa chỉ IP vĩnh viễn, trình cài đặt debian vẫn muốn nó có loại mục đó.
  • Địa chỉ 127.0.1.1sử dụng giao diện loopback , được trả lời bởi chính máy của bạn, giống như 127.0.0.1nhưng là một mục riêng biệt trong /etc/hostsđó có thể được xem xét riêng biệt 127.0.0.1nếu / khi cần thiết.

Thomas Hood giải thích thêm mục này như sau:

[Điều này] sẽ đảm bảo rằng nếu tên máy chủ UNIX được giải quyết thì nó sẽ luôn là tên máy chủ chính của nó

nhưng:

Về lâu dài, tên máy chủ UNIX không nên được đặt trong / etc / hosts.


.. và như vậy... ? Tôi phải sử dụng 127.0.0.1 cho fdqn của mình chứ? hay 127.0.1.1? hoặc ip tĩnh lan?
realtebo

1
@realtebo: 1. Nó hữu ích, và do đó nó được thêm bởi trình cài đặt. 2. Không có "phải" ở đây; và nó chỉ liên quan khi FQDN của bạn không có địa chỉ thường trú.
einpoklum

9

Tôi đã tò mò bản thân mình, và tôi không thích bất kỳ câu trả lời nào khác bởi vì họ dường như không trả lời những gì tôi đang tìm kiếm ít nhất.

Câu trả lời: Nhìn lại tài liệu này, nó gần như xuất hiện như thể Thomas nói rằng việc cung cấp cho nó một ip chuyên dụng khác trên loopback cho phép nó được hợp quy.

Cả hai đều trỏ đến loopback của bạn. Sử dụng 127.0.1.1 sau đây là một IP thực tế, trên loopback, trong khi 127.0.0.1 là chính thiết bị hoặc một ip khác trên loopback. Cả hai kết thúc trên cùng một mạng con, đại diện cho loopback, nhưng được phân tách bằng ip. Họ là dns khôn ngoan tương đương, nhưng tách ra vì có ip chuyên dụng.

Vấn đề là, bạn có thể có tất cả các mục của bạn trên một dòng như thế này

127.0.0.1 localhost localhost.domain www.myfakednsname.com myakednsname.com 

Nếu tên máy chủ của bạn là cục bộ, nghĩa là không có mục DNS DNS toàn cầu được ánh xạ tới một ip internet thực tế, thì trong trường hợp này Thomas đã nói rằng bạn CẦN phải có dòng nhập thứ 2, như thế này để dành nó ở đó (theo quy tắc).

127.0.0.1 localhost localhost.localdomain
127.0.1.1 myfakednsname

nói một cách công bằng, sau khi tôi cuối cùng đã sáng tác điều này theo cách có ý nghĩa với tôi, tôi thấy đó là những gì mà einpoklum đang cố gắng giải thích nó trông giống như trong nhận thức muộn màng.
Brian Thomas

Bỏ phiếu tiêu cực, không chắc tại sao. Tôi vẫn tin rằng đây là câu trả lời TỐT NHẤT, hoặc tôi sẽ không đặt nó, sau khi hạ cánh ở đây. câu trả lời ban đầu đã giúp, nhưng không nắm bắt được tất cả các chi tiết. Tôi sẽ đi với cái này
Brian Thomas
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.