แก้ไขคำตอบ:
โฮสต์ไม่ได้จัดการกับ FQDN จริง ที่มีการจัดการโดยDNS FQDN (ชื่อโดเมนที่ผ่านการรับรองโดยสมบูรณ์) ได้รับการจัดการโดย DNS การแปลชื่อเป็นที่อยู่ IP การใช้/etc/hosts
ไฟล์นั้นคุณจะต้องผ่านเซิร์ฟเวอร์ DNS เป็นหลัก คอมพิวเตอร์จะตรวจสอบ/etc/hosts
ไฟล์ก่อนเพื่อดูว่ามีการกำหนดรายการสำหรับชื่อโฮสต์ให้เป็นที่อยู่ IP หรือไม่ รายการใน/etc/hosts
หน้าตาดังต่อไปนี้:
127.0.0.1 localhost
127.0.1.1 terrance-ubuntu.local terrance-ubuntu
รายการเหล่านี้ไม่เฉพาะเจาะจง ระบบปฏิบัติการทั้งหมดใช้รูปแบบเดียวกันสำหรับบรรทัดเหล่านี้ เพียงตำแหน่งของhosts
ไฟล์ที่เปลี่ยนแปลง Linux โดยทั่วไปจะอยู่ใน/etc/
โฟลเดอร์โดยปกติแล้วใน Windows จะอยู่ในC:\Windows\System32\drivers\etc\
โฟลเดอร์
คุณจะเห็นว่าฉันกำลังกำหนดทั้งคู่terrance-ubuntu.local
ซึ่งเป็น FQDN ของฉันเองที่จะแทนที่ DNS เพื่อให้แอปพลิเคชันรู้ว่าไม่ต้องออกจากคอมพิวเตอร์ของฉันและterrance-ubuntu
เป็นชื่อโฮสต์อีกครั้งเพื่อให้แอปพลิเคชันทราบว่าไม่ต้องออกจากคอมพิวเตอร์หรือ 127.0.0.1 ( localhost ) การกำหนดชื่อโฮสต์ของระบบให้127.0.1.1
ไม่มีผลกับคอมพิวเตอร์ส่วนที่เหลือที่กำลังค้นหาโฮสต์ของฉันบนเครือข่าย ถ้า DNS 10.0.0.100
ทำงานอย่างถูกต้องพวกเขาจะเห็นชื่อโฮสต์ของฉันเป็น เหตุผลในการใช้127.0.1.1
คือเพื่อให้แอปพลิเคชันของฉันค้นหาระบบของฉันได้เร็วขึ้นเนื่องจากจะรู้ว่าระบบของฉันไม่ได้อยู่ที่อื่นในเครือข่ายของฉัน ชื่อโฮสต์ที่แท้จริง.local
ของฉันซึ่งเป็น FQDN ของฉัน.local
จริง ๆ แล้ว Domain ของฉันที่ฉันตั้งค่าผ่านเราเตอร์ซึ่งเป็นเซิร์ฟเวอร์ DNS อื่นในเครือข่ายของฉัน
ตอนนี้สมมติว่าบริการ DNS บนเครือข่ายท้องถิ่นไม่ได้กำหนดชื่อโฮสต์หรือ FQDN ให้กับที่อยู่ IP แต่คุณก็รู้ว่าที่อยู่ IP ของโฮสต์ในเครือข่ายท้องถิ่นนั้นคืออะไร จากนั้นคุณจะกำหนดโฮสต์นั้นใน/etc/hosts
ไฟล์ของคุณเพื่อให้คุณไม่จำเป็นต้องพิมพ์ที่อยู่ IP ของโฮสต์ทุกครั้งที่คุณต้องการเข้าถึง โฮสต์อาจเป็นเซิร์ฟเวอร์เครื่องมือเครื่องพิมพ์หรือระบบเชื่อมต่อเครือข่ายอื่น ๆ เพิ่มรายการเหมือนกับที่คุณทำตามปกติใน/etc/hosts
ไฟล์
ฉันจะใช้เครื่องพิมพ์ที่เชื่อมต่อกับเครือข่ายเป็นตัวอย่าง มันมี IP แบบคงที่ 10.0.0.253 ฉันไม่รู้ชื่อของมัน hp_printer
สำหรับวันนี้ผมอยากจะเรียกมันว่า ผมจะ ping ที่ IP /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
ตอนนี้ฉันยังสามารถเข้าถึงหน้าเว็บสำหรับการตั้งค่าเครื่องพิมพ์ของฉันตามชื่อที่ฉันให้ไว้แทนที่อยู่ IP ซึ่งจำได้ง่ายกว่า:
ไฟล์/etc/resolv.confของคุณยังถูกใช้โดย DNS เพื่อช่วยค้นหาชื่อโฮสต์ มันเป็นไฟล์การกำหนดค่าสำหรับโปรแกรมแก้ไข มันมีโดเมนการค้นหาเพื่อให้คุณไม่ต้องระบุ FQDN ของคุณตลอดเวลาเมื่อคุณกำลังมองหาโฮสต์ นอกจากนี้ยังมีที่อยู่ IP สำหรับ DNS หรือเนมเซิร์ฟเวอร์ของเครือข่ายท้องถิ่นของคุณ search
บรรทัดด้านล่างแสดงชื่อlocal
ซึ่งเป็นชื่อโดเมนของฉัน
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
หวังว่าจะช่วยให้เข้าใจถึงวิธีการทำงานของ DNS และ FQDN ได้ดียิ่งขึ้น