Hiểu tên máy chủ và / etc / hosts


12

Trong / etc / tên máy chủ, tôi có myname.

Trong / etc / hosts, tôi có:

127.0.0.1   localhost.localdomain   localhost myname
::1     localhost.localdomain   localhost myname

Tôi có một sự hiểu biết mơ hồ về những gì thực sự là một tên máy chủ và những gì nó được sử dụng cho.

Những câu hỏi chính xác hơn có thể giúp tôi hiểu rõ hơn về nó:

  1. Tên máy chủ của tôi trong ví dụ trên là gì? mynamehay cái gì khác? Nếu tôi có thay myname.domain.comtrong /etc/hostname, những gì sẽ là tên máy thật của tôi sau đó?

  2. Trong ví dụ, lệnh hostnametrả về myname, trong khi lệnh hostname -ftrả về localhost.localdomain. Tôi đã nghĩ rằng đó /etc/hostschỉ là một ánh xạ giữa tên và địa chỉ IP. Nó dường như để phục vụ một chức năng khác ở đây. Một fqdn là gì và nó được sử dụng để làm gì? Làm thế nào nó được lấy? Tại sao vậy localhost.localdomain?

  3. Nếu tôi có thay myname.domain.comtrong /etc/hostname, hostname -fsẽ quay trở lại myname.domain.com. Tại sao?

  4. Tại sao fqdn không kết thúc bằng dấu chấm trong các tệp này?

  5. Được hostname -ddnsmydomaintương đương?

  6. Trong bối cảnh nào tôi có thể sử dụng tên máy chủ của mình ( myname) và khi nào tôi phải sử dụng fqdn ( localhost.localdomain) của mình?

Câu trả lời:


9
  1. /etc/hostnamechứa tên của máy, như đã biết với các ứng dụng chạy cục bộ. /etc/hostsvà tên liên kết DNS với địa chỉ IP. mynamecó thể được ánh xạ tới bất kỳ địa chỉ IP nào mà máy có thể tự truy cập, nhưng ánh xạ tới địa chỉ đó 127.0.0.1là không phổ biến.
  2. Không /etc/hosts, nhưng /bin/hostnamephục vụ một chức năng khác với -f.
  3. Bởi vì /etc/hostscó thể ghi đè lên ý thức chung . Chỉnh sửa nó một cách thận trọng và không để rác ở đó sau các bản vá và thí nghiệm tạm thời.
  4. Cả hai phong cách (⋯ .TLD. và ⋯ .TLD ) đều được chấp nhận. Cái trước là không rõ ràng, trong khi cái trước có mặt ở khắp nơi.
  5. Không biết dnsmydomainlà gì , nhưng không thể. Tìm kiếm một cái gì đó /etc/hostskhông phải là kỹ thuật DNS DNS.
  6. Ghi nhớ điểm 1. Tên máy chủ - cho các ứng dụng chạy cục bộ; cũng cho các giao thức mạng đặc biệt như SMB (samba). FQDN (nếu không phải là fakery hoặc giữ chỗ như localhost.localdomain) - để truy cập máy từ bên ngoài. FQDN phải được phân giải ở nơi nó được sử dụng.

1
Điều gì xảy ra nếu IP của tôi là động (DHCP) và thay đổi theo thời gian? Tôi nên sử dụng địa chỉ nào mynametrong / etc / hosts?
dùng156516

3

Tôi hoàn toàn ghét khi ai đó bảo tôi đọc hướng dẫn nhưng trong trường hợp này xin vui lòng xem trang man cho tên máy chủ và hầu hết nếu không phải tất cả các câu hỏi của bạn sẽ được trả lời. Nó được viết tốt hơn nhiều so với tôi có thể giải thích.

Để cung cấp một số trợ giúp, một số trích đoạn đánh vào câu hỏi của bạn là: - Tên máy chủ của bạn là những gì bạn thấy trong / etc / hosts. - FQDN được trả về dựa trên những gì trình phân giải trả về, do đó tại sao bạn thấy giá trị trong / etc / hosts được trả về khi trình phân giải kiểm tra tệp máy chủ trước, sau đó thực hiện bất kỳ truy vấn DNS cần thiết nào.

Cái mà tôi không tin được chạm vào trong trang man tên máy chủ (dựa trên việc tôi đọc lại trang man) là lý do tại sao các mục trong tệp không kết thúc bằng dấu chấm.

Quy ước đó được sử dụng khi xử lý các bản ghi DNS. Tên máy chủ và tệp máy chủ không thực sự là bản ghi DNS. Nếu bạn đang định cấu hình các mục này trong liên kết để được giải quyết cho tra cứu DNS thì việc sử dụng dấu chấm có thể phát huy tác dụng (hãy xem tài nguyên tốt này: http://www.zytrax.com/books/dns/apa/dot.html ).

Ngoài ra, hãy nhớ rằng tất cả các giá trị này không được phát ra từ hệ thống. Vì vậy, nếu bạn muốn một hệ thống khác truy cập dựa trên FQDN, thì nó dựa trên tệp máy chủ trên hệ thống khác đó hoặc thiếu các mục lưu trữ dựa trên tra cứu DNS mà hệ thống bên ngoài thực hiện trên FQDN để cho phép nó giải quyết trở lại hệ thống.


Liên quan, về dấu chấm cuối cùng trong /etc/hosts: serverfault.com/questions/336056/setting-fqdn-hostname-and-dot
John WH Smith

3

Trong câu trả lời

Điều gì xảy ra nếu IP của tôi là động (DHCP) và thay đổi theo thời gian? Tôi nên sử dụng địa chỉ nào làm tên tôi trong / etc / hosts?

Trước tiên, hãy để tôi chỉ ra rằng / etc / hosts là một định nghĩa tĩnh về ánh xạ tên cho địa chỉ máy chủ được cài đặt và CHỈ được sử dụng bởi máy chủ đó để chuyển đổi tên thành địa chỉ IP.

Vì vậy, có 2 quan điểm cần xem xét - máy chủ 'myname' và mọi người khác.

Đối với máy chủ 'myhost', hãy tham chiếu máy chủ hiện tại bằng cách sử dụng 'localhost' (được định nghĩa trong / etc / hosts là 127.0.0.1) hoặc thêm 'myname' vào dòng / etc / hosts xác định localhost sao cho 'myname 'luôn luôn ánh xạ tới, tốt, localhost. Thích như vậy:

Tên miền cục bộ 127.0.0.1

Sau đó, không có vấn đề gì về địa chỉ IP mà INTERFACE được cung cấp, bạn sẽ luôn có một địa chỉ hoạt động (một phần thưởng bổ sung là bạn không cần nhấn phần cứng để nói từ 'myname' thành 'myname').

Bây giờ, để cho phép các máy chủ KHÁC tìm thấy 'myhost' khi 'myhost' có địa chỉ IP động, bạn phải sử dụng DNS và cho biết máy chủ DNS phải xử lý ánh xạ được gán DHCP. (Chà, ok, có những giải pháp khác tôi có thể nghĩ ra, nhưng mọi thứ xuất hiện trong đầu đều phù hợp với danh mục 'ngoài sự ngớ ngẩn', IMHO. Vâng, có những điều bạn có thể làm với máy chủ để IT nói với DNS nó ở đâu, nhưng đó là một câu hỏi xứng đáng với một câu hỏi / câu trả lời hoàn toàn khác ở đây, IMHO)


2

/ etc / hostname/ etc / hosts rất đơn giản, nhưng cũng không đơn giản ...

Cách nhanh chóng thiết lập Debian /etc/hostname/etc/hosts

1) Chỉnh sửa / etc / tên máy chủ .

Có 2 cách hợp lệ để thiết lập điều này.

Hoặc là làm cho nó:

  • machine, tức là một tên đơn giản, một từ cho bộ xử lý này.
    Ví dụ: ' joe' có thể là tên máy tự chọn của bạn.
    Lưu ý điều này sẽ yêu cầu một bí danh trong / etc / hosts, được mô tả thêm dưới đây.

HOẶC LÀ

  • machine.domain.net, tức là một tên miền đủ điều kiện (FQDN).
    Ví dụ: ' joe.xyz.com'.
    (Điều này giả sử bạn có bản ghi 'A' của Máy chủ DNS trỏ từ joe.xyz.com đến địa chỉ IP của joe, tức là tại máy của bạn có tên là joe. Thông thường, bạn thiết lập bản ghi này ở nơi bạn đã mua tên miền của mình. một khoảnh khắc.)

Khi / etc / hostname được đặt, bước tiếp theo là lấy các lệnh hostname --all-fqdndnsdomainnamehoạt động đúng, theo thứ tự đó, như sau:

2) Chỉnh sửa / etc / hosts .

Trong đó có một dòng cho FQDN của máy chủ này , ví dụ 'machine.domain.net', có tiền tố là địa chỉ IP của máy này (có thể từ máy chủ địa chỉ IP động) như thế này:

#   IP           FQDN (CANONICAL_HOSTNAME)   ALIASES
#-------------- --------------------------- ------------------------
192.168.1.14    Joe.xyz.com                 joe
  • Đầu tiên, lưu ý rằng chữ hoa hoặc chữ thường không quan trọng ở đây. Mẹo: Tuy nhiên, có một số giới hạn cho phép chúng tôi nhận thấy mọi thứ đến từ đâu trong các bước tiếp theo. Vì vậy, tôi đã viết hoa J oe.

  • Cũng lưu ý rằng để đơn giảnhostname (tức là / etc / hostname = 'machine') để tạo chính xác FQDN, một bí danh có tên 'machine' phải có trong / etc / hosts. Đó là lý do bí danh joe là ở đó. (BTW, bạn có thể có bí danh đó ngay cả khi bạn không sử dụng nó.) Nếu không thì bí danh này không cần thiết, cũng không được sử dụng.

  • Cũng lưu ý rằng 'domain.net' phải có thể phân giải được, tức là phải tồn tại một bản ghi A cho nó trong DNS. Đây là cái được gọi là 'có thể phân giải ' (tức là bởi trình phân giải DNS).

3) Bây giờ cài đặt các cài đặt mới này từ / etc / hostname và / etc / hosts vào kernel, bằng cách chạy:

    $ /etc/init.d/hostname.sh       # Or by rebooting

4) Kiểm tra tên máy chủ

$ hostname      # Reports the hostname previously read from in /etc/hostname.
joe

HOẶC LÀ

$ hostname
joe.xyz.com

Lời khuyên:

  • Lưu ý rằng đây không phải là / etc / hostname hiện tại, giống như nếu bạn chỉnh sửa lại ngay bây giờ, mà là những gì đã được đọc bởi tập lệnh /etc/init.d/hostname.sh, có thể là kết quả của việc khởi động lại.

  • Cũng lưu ý rằng 'j' là chữ thường, vì vậy điều này cho thấy nó đến từ / etc / hostname, không phải / etc / hosts.

5) Kiểm tra FQDN

$ hostname --all-fqdn   #reports the FQDN(s) matched in /etc/hosts.
Joe.xyz.com             #  It searches /etc/hosts for the joe in /etc/hostname.
                        #  Notice that the 'J' is uppercase.  
                        #     This suggest it came from /etc/hosts.

6) Kiểm tra tên miền DNS

$ dnsdomainname         #reports the computed DNS doman name    
xyz.com                 #  (i.e. the right most part of the FQDN; 
                        #    the part to the right of the first, left most, dot)
                        #  This is coming from Joe.xyz.com in /hosts, 
                        #    after 'Joe.' is removed.

Bây giờ điều này sẽ làm cho việc thiết lập một máy chủ web và email dễ dàng hơn.

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.