ฉันพบบทความบางส่วนที่เกี่ยวข้องกับเรื่องนี้ แต่ก็ไม่เพียงพอสำหรับฉัน ฉันต้องการทราบวิธีการlocalhost
ทำงานและทำไมมันจึงเหมือนกันในหลาย ๆ เครื่อง?
อย่างไรlocalhost
ปิดกั้นการเข้าถึงเว็บไซต์เมื่อเราใช้มันในhost
ไฟล์เพื่อป้องกันการเว็บไซต์ได้หรือไม่
ฉันพบบทความบางส่วนที่เกี่ยวข้องกับเรื่องนี้ แต่ก็ไม่เพียงพอสำหรับฉัน ฉันต้องการทราบวิธีการlocalhost
ทำงานและทำไมมันจึงเหมือนกันในหลาย ๆ เครื่อง?
อย่างไรlocalhost
ปิดกั้นการเข้าถึงเว็บไซต์เมื่อเราใช้มันในhost
ไฟล์เพื่อป้องกันการเว็บไซต์ได้หรือไม่
คำตอบ:
ฉันจะไม่พูดเกี่ยวกับเคส Windows ที่นี่เพราะมันแตกต่างกันเล็กน้อย แต่สมมุติว่า: ในระบบปฏิบัติการ * Unix ที่เหมือนกันคุณมีอุปกรณ์เครือข่ายสองตัว:
คนแรกคือ "เสมือน" ล้วนๆ มันเหมือนกับปลั๊กอีเธอร์เน็ตที่คุณมองไม่เห็น อันที่สองเกี่ยวข้องกับปลั๊กอีเทอร์เน็ตในคอมพิวเตอร์ของคุณ
อินเทอร์เฟซแบบวนรอบทำอะไรได้บ้าง การรับส่งข้อมูลทุกครั้งที่คุณส่งไปยังลูปแบ็คจะกลับมา
เช่นเดียวกับอุปกรณ์อีเธอร์เน็ตของคุณจะได้รับที่อยู่ IP (เช่น 192.168.1.20) อุปกรณ์ลูปแบ็คจะมีที่อยู่ IP เช่น 127.0.0.1 เพื่อให้ง่ายขึ้นคุณสามารถเข้าถึงได้localhost
เช่นกัน
หากคุณดู/etc/hosts
ไฟล์Unix ทั่วไปคุณจะเห็นว่า 127.0.0.1 ถูกแมปกับ "localhost" ดังนั้นเมื่อใดก็ตามที่คุณพิมพ์ "localhost" คอมพิวเตอร์ของคุณจะรู้ว่าจะเรียก 127.0.0.1
และนี่คือเหตุผลที่คุณสามารถ "บล็อก" แอปพลิเคชันได้ สมมติว่าคุณไม่ต้องการให้คอมพิวเตอร์ของคุณส่งข้อมูลไปยัง Microsoft จากนั้นคุณสามารถเปลี่ยนเส้นทางทุกคำขอmicrosoft.com
เป็น 127.0.0.1 แทน การพยายามติดต่อทุกครั้งmicrosoft.com
จะทำให้เกิดความล้มเหลว
* ทุกระบบที่มีพอร์ต Ethernet ฮาร์ดแวร์จริง ๆ
ที่อยู่ Internet Protocol (IP) อยู่ในหมวดหมู่พื้นฐานสี่ประเภท
ตามข้อตกลง 127.0.0.1 เป็นหนึ่งในที่อยู่เหล่านั้นที่อยู่ในหมวดหมู่สุดท้าย
ในฐานะมนุษย์เรามักจะจำหมายเลข IP ได้ไม่ดีนัก แต่เราไม่มีปัญหาในการจดจำชื่อเช่น superuser.com, www.google.com และชื่ออื่น ๆ ที่คล้ายกัน เมื่ออินเทอร์เน็ตมีขนาดเล็ก (เล็กมาก) มนุษย์แบ่งปันไฟล์ "โฮสต์" กับคนอื่น ๆ บนอินเทอร์เน็ตดังนั้นพวกเขาจึงไม่ต้องจำหมายเลข ไฟล์โฮสต์นั้นมีคู่ของที่อยู่ IP และชื่อโฮสต์อย่างน้อยหนึ่งชื่อ เมื่อมีคนพยายามเข้าถึงโฮสต์โดยใช้ชื่อซอฟต์แวร์คอมพิวเตอร์รู้พอที่จะค้นหาในไฟล์โฮสต์ อินเทอร์เน็ตเติบโตขึ้นอย่างมากตั้งแต่นั้นมาตอนนี้เราใช้ระบบชื่อโดเมน (DNS) เพื่อแก้ไขชื่อเป็นหมายเลข IP นอกเหนือจากการใช้ไฟล์โฮสต์แบบเก่า คอมพิวเตอร์ส่วนใหญ่มีการตั้งค่าให้ค้นหาชื่อในไฟล์โฮสต์ก่อนจากนั้นใน DNS หากล้มเหลว
ตอนนี้คุณมีพื้นหลังต่อไปนี้เป็นวิธีการใช้งาน (ปกติ):
เมื่อคุณเพิ่มรายการนี้ลงในไฟล์โฮสต์ของคุณทุกครั้งที่คอมพิวเตอร์ของคุณพยายามค้นหา www.foo.com เกินไปก็จะพยายามเข้าถึงเว็บไซต์นั้นในที่อยู่ IP 127.0.0.1 เพราะคุณบอกว่าเป็นที่อยู่อินเทอร์เน็ตสำหรับ www foo.com โปรดจำไว้ว่า 127.0.0.1 จะอนุญาตให้คอมพิวเตอร์พูดคุยกับตัวเองดังนั้นการพยายามไปที่ 127.0.0.1 ในเบราว์เซอร์ของคุณจะพยายามติดต่อเว็บเซิร์ฟเวอร์ในคอมพิวเตอร์ของคุณ หากคุณใส่ 2.3.4.5 แทน 127.0.0.1 มันจะพยายามติดต่อคอมพิวเตอร์ตามที่อยู่ 2.3.4.5 เมื่อเปิด www.foo.com
127.0.0.1 localhost
127.0.0.1 www.foo.com
127.0.0.1 foo.com
สิ่งที่ไม่ดีเกี่ยวกับการใช้ไฟล์โฮสต์สำหรับสิ่งต่าง ๆ เช่นนี้คือเมื่อคุณเพิ่มรายการในไฟล์โฮสต์คุณจะถือว่ารับผิดชอบในการรักษาข้อมูลนั้นให้ทันสมัย หากคุณไม่ใส่รายการในไฟล์โฮสต์คอมพิวเตอร์ของคุณจะพยายามใช้ DNS เพื่อค้นหาที่อยู่ IP จากนั้นใช้ที่อยู่ IP นั้นเพื่อติดต่อกับเซิร์ฟเวอร์
สิ่งที่ดีเกี่ยวกับมันคือถ้าคุณไม่ต้องการให้ใครคุยกับ www.foo.com ด้วยชื่อโฮสต์ในคอมพิวเตอร์ของคุณเท่านั้นการเพิ่มรายการในไฟล์โฮสต์ของคุณอาจ (คำหลัก - อาจ) ป้องกันไม่ให้เกิดขึ้น หากเป้าหมายคือการป้องกันไม่ให้เข้าถึงเว็บไซต์ใด ๆ ด้วยวิธีการใด ๆ (ไม่ใช่เฉพาะชื่อโฮสต์) มีวิธีอื่นที่ดีกว่าและเชื่อถือได้มากกว่าในการป้องกันไม่ให้เกิดขึ้นเช่นใช้ไฟร์วอลล์อย่างถูกต้อง
Localhost หรือ 127.0.0.1 เป็นเพียง 'built' ในตัวสำหรับคอมพิวเตอร์ของคุณ
นั่นคือ 127.0.0.1 เรียกว่า "loopback" เพราะมันเป็นเพียงตัวชี้ที่ชี้ไปที่เครื่องของคุณ เป็นที่อยู่ IP ที่สงวนไว้ซึ่งสามารถเขียนเป็น localhost ตามคำจำกัดความ
จุดประสงค์ในการทำเช่นนี้คืออนุญาตให้บุคคลหนึ่งพูดคุยกับคอมพิวเตอร์โดยส่งสัญญาณออกไปด้านนอกแล้ววนซ้ำหลังเพื่อให้สัญญาณอ่านด้วยคอมพิวเตอร์เครื่องเดียวกัน
สมมติว่าคุณกำลังใช้เซิร์ฟเวอร์บนเครื่องของคุณ - เพื่อเข้าถึงคุณต้องส่งคำขอไปยังเซิร์ฟเวอร์ (ส่งแพ็คเก็ตไปที่ 127.0.0.1) และเซิร์ฟเวอร์ของคุณต้องอ่าน (ระบบของคุณวนกลับแพ็คเก็ตไปที่ ระบบโลคัลของคุณใน 127.0.0.1 ซึ่งอ่านโดยซอฟต์แวร์เซิร์ฟเวอร์ของคุณ)
ฉันค้นพบงานนำเสนอที่The TCP / IP Guideที่ทำให้ฉันมีความกระจ่าง:
โดยปกติเมื่อมีการประยุกต์ใช้ TCP / IP ต้องการส่งข้อมูลข้อมูลที่เดินทางลงชั้นโปรโตคอล IP ซึ่งจะมีการห่อหุ้มในดาต้า IP ดาตาแกรมนั้นจะส่งผ่านไปยังเลเยอร์ดาต้าลิงค์ของเครือข่ายฟิสิคัลของอุปกรณ์เพื่อส่งไปยังฮอปถัดไประหว่างทางไปยังปลายทาง IP
อย่างไรก็ตามที่อยู่ช่วงพิเศษหนึ่งชุดถูกตั้งค่าไว้สำหรับการทำงานย้อนกลับ นี่คือช่วง 127.0.0.0 ถึง 127.255.255.255 IP datagrams ส่งโดยโฮสต์ไปยัง 127 x x . ที่อยู่ลูปแบ็คxจะไม่ถูกส่งผ่านไปยังชั้นดาต้าลิงค์สำหรับการส่งข้อมูล แต่จะ "วนกลับ" ไปยังอุปกรณ์ต้นทางที่ระดับ IP แทน ในสาระสำคัญนี้หมายถึง "การลัดวงจร" ของสแต็คโปรโตคอลปกติ ข้อมูลถูกส่งโดยการติดตั้ง IP สามชั้นของอุปกรณ์จากนั้นรับทันที
นอกจากนี้ Rutgers ยังมีหลักสูตรระบบเครือข่ายที่รวมภาพประกอบปกติของการสื่อสารระหว่างโฮสต์
และหนึ่งในการไหลของข้อมูลย้อนกลับนี้:
สำหรับส่วนที่สองของคำถามของคุณหากคุณใส่ชื่อโฮสต์ของเว็บไซต์ในไฟล์โฮสต์ของคุณด้วยที่อยู่ 127.0.0.1 หมายความว่าเมื่อคุณพิมพ์ที่อยู่ในเบราว์เซอร์ของคุณแทนที่จะใช้ DNS เพื่อค้นหาที่อยู่ที่ถูกต้อง ในไฟล์โฮสต์ของคุณก่อนแก้ไขให้เป็น localhost และแทนที่จะไปยังที่อยู่ของเว็บไซต์เพียงแค่เริ่มพูดคุยกับเครื่องของคุณซึ่งทำให้เว็บไซต์ไม่สามารถโหลดได้