Trả lời sửa đổi:
Bản thân máy chủ không xử lý FQDN thực tế. Điều đó được xử lý bởi DNS . FQDN (Tên miền đủ điều kiện) được xử lý bằng cách dịch DNS tên thành địa chỉ IP. Sử dụng /etc/hosts
tệp, về cơ bản bạn sẽ ghi đè máy chủ DNS. Trước tiên, máy tính sẽ nhìn vào /etc/hosts
tệp để xem liệu một mục nhập được xác định cho tên máy chủ đến địa chỉ IP. Các mục trong /etc/hosts
hình như sau:
127.0.0.1 localhost
127.0.1.1 terrance-ubuntu.local terrance-ubuntu
Những mục này không phải là distro cụ thể. Tất cả các hệ điều hành sử dụng cùng một định dạng cho các dòng này. Chỉ cần vị trí của hosts
tập tin thay đổi. Linux, thông thường nó nằm trong /etc/
thư mục, trong đó Windows thường nằm trong C:\Windows\System32\drivers\etc\
thư mục.
Phá vỡ dòng đó, bạn có thể thấy rằng tôi đang gán cả hai terrance-ubuntu.local
, chính FQDN của tôi để ghi đè DNS để các ứng dụng biết không rời khỏi máy tính của tôi và terrance-ubuntu
một lần nữa là tên máy chủ để các ứng dụng biết không rời khỏi máy tính của tôi hoặc 127.0.0.1 ( localhost ). Việc chỉ định tên máy chủ của hệ thống của tôi 127.0.1.1
không có tác dụng đối với các máy tính còn lại tìm thấy máy chủ của tôi trên mạng. Nếu DNS hoạt động bình thường, họ sẽ thấy tên máy chủ của tôi là 10.0.0.100
. Lý do sử dụng 127.0.1.1
là để các ứng dụng của tôi tìm thấy hệ thống của tôi nhanh hơn vì nó sẽ biết rằng hệ thống của tôi không ở đâu đó trên mạng của tôi. Tên máy chủ thực tế của tôi với tên .local
là FQDN của tôi,.local
thực sự là Miền của tôi mà tôi thiết lập qua bộ định tuyến cũng là một máy chủ DNS khác trên mạng của tôi.
Bây giờ, giả sử rằng các dịch vụ DNS trên mạng cục bộ không gán tên máy chủ hoặc FQDN cho địa chỉ IP, nhưng bạn biết địa chỉ IP của máy chủ trên mạng cục bộ là gì. Sau đó, bạn sẽ chỉ định máy chủ đó trong /etc/hosts
tệp của mình để không cần nhập địa chỉ IP của máy chủ mỗi khi bạn muốn truy cập. Máy chủ có thể là máy chủ công cụ, máy in hoặc một số hệ thống được kết nối mạng khác. Thêm mục như bạn thường làm vào /etc/hosts
tập tin.
Tôi sẽ sử dụng máy in kết nối mạng của tôi chẳng hạn. Nó có IP tĩnh 10.0.0.253. Tôi không biết tên của nó mặc dù. Đối với điều này, tôi muốn gọi nó hp_printer
. Tôi sẽ ping IP và tên máy chủ cho nó, sau đó thêm vào /etc/hosts
.
terrance@terrance-ubuntu:~$ ping -c 2 10.0.0.253
PING 10.0.0.253 (10.0.0.253) 56(84) bytes of data.
64 bytes from 10.0.0.253: icmp_seq=1 ttl=255 time=0.326 ms
64 bytes from 10.0.0.253: icmp_seq=2 ttl=255 time=0.334 ms
terrance@terrance-ubuntu:~$ ping -c 2 hp_printer
ping: unknown host hp_printer
terrance@terrance-ubuntu:~$ sudo vi /etc/hosts
10.0.0.253 hp_printer.local hp_printer
terrance@terrance-ubuntu:~$ ping -c 2 hp_printer
PING hp_printer.local (10.0.0.253) 56(84) bytes of data.
64 bytes from hp_printer.local (10.0.0.253): icmp_seq=1 ttl=255 time=0.334 ms
64 bytes from hp_printer.local (10.0.0.253): icmp_seq=2 ttl=255 time=0.303 ms
Bây giờ, tôi cũng có thể truy cập trang web để thiết lập máy in của mình với tên tôi đã đặt cho nó thay vì địa chỉ IP có thể dễ nhớ hơn:
Tệp /etc/resolv.conf của bạn cũng được DNS sử dụng để giúp tìm tên máy chủ. Đây là tập tin cấu hình cho trình phân giải. Nó cung cấp miền tìm kiếm để bạn không phải chỉ định FQDN của mình mọi lúc khi bạn tìm kiếm máy chủ lưu trữ. Nó cũng cung cấp địa chỉ IP cho DNS hoặc máy chủ tên của mạng cục bộ của bạn. Các search
dòng dưới đây cho thấy tên local
đó là tên miền của tôi.
terrance@terrance-ubuntu:~$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.0.0.1
search local
Hy vọng rằng điều này sẽ giúp hiểu rõ hơn về cách thức hoạt động của DNS và FQDN.