localhost 127.0.0.1 ทำงานอย่างไร


17

ฉันพบบทความบางส่วนที่เกี่ยวข้องกับเรื่องนี้ แต่ก็ไม่เพียงพอสำหรับฉัน ฉันต้องการทราบวิธีการlocalhostทำงานและทำไมมันจึงเหมือนกันในหลาย ๆ เครื่อง?

อย่างไรlocalhostปิดกั้นการเข้าถึงเว็บไซต์เมื่อเราใช้มันในhostไฟล์เพื่อป้องกันการเว็บไซต์ได้หรือไม่


2
ฉันขอโทษ แต่คุณทำให้ฉันหลงทางในคำถามที่สองของคุณ ... คุณหมายถึงอะไร?
— Windos

1
@Windos เมื่อคุณเพิ่มรายการไปยังแฟ้มโฮสต์เช่น "127.0.0.1 www.blah.com" เปลี่ยนเส้นทางเว็บไซต์ที่จะ localhost (ใช้ในการทำงานร่วมกับ IE8 แล้ว)
— tzup

คำตอบ:


23

ฉันจะไม่พูดเกี่ยวกับเคส 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 ฮาร์ดแวร์จริง ๆ


ใน 'dows ระบบย่อย DNS จะแก้ปัญหา localhost ที่ 127.0.0.1 และทราฟฟิกถึง 127.0.0.1 ไม่เคยแม้แต่ไปที่อินเตอร์เฟส แต่เครือข่ายสแต็คจะวนกลับด้านขวา (เป็นแบบเดียวกับ Unix จริงๆ แต่ไม่มีอินเทอร์เฟซเสมือนจริง เป็นการแสดงให้เห็นถึงกระบวนการ)
— jcrawfordor

แม้ว่าคุณจะสามารถติดตั้ง Microsoft Loopback Adapter ได้ แต่ก็ไม่เหมือนกัน
— slhck

ทุกวันนี้ระบบปฏิบัติการหลายระบบรองรับ 0.0.0.0 ดังนั้นควรใช้เพื่อบล็อกเว็บไซต์แทน หลีกเลี่ยงการวนซ้ำ ...
— Tamara Wijsman

8

ที่อยู่ Internet Protocol (IP) อยู่ในหมวดหมู่พื้นฐานสี่ประเภท

  1. ที่อยู่ที่ใช้ในการสื่อสารกับคอมพิวเตอร์เครื่องอื่น ๆ ทั่วโลก
  2. ที่อยู่ที่ใช้ในการสื่อสารกับคอมพิวเตอร์ภายใน บริษัท หรือเครือข่ายเฉพาะ
  3. ที่อยู่ที่ใช้ในการออกอากาศข้อมูลระหว่างคอมพิวเตอร์บนเครือข่าย
  4. ที่อยู่ที่ใช้ในการอนุญาตให้คอมพิวเตอร์พูดคุยกับตัวเอง

ตามข้อตกลง 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 ด้วยชื่อโฮสต์ในคอมพิวเตอร์ของคุณเท่านั้นการเพิ่มรายการในไฟล์โฮสต์ของคุณอาจ (คำหลัก - อาจ) ป้องกันไม่ให้เกิดขึ้น หากเป้าหมายคือการป้องกันไม่ให้เข้าถึงเว็บไซต์ใด ๆ ด้วยวิธีการใด ๆ (ไม่ใช่เฉพาะชื่อโฮสต์) มีวิธีอื่นที่ดีกว่าและเชื่อถือได้มากกว่าในการป้องกันไม่ให้เกิดขึ้นเช่นใช้ไฟร์วอลล์อย่างถูกต้อง


ทุกวันนี้ระบบปฏิบัติการหลายระบบรองรับ 0.0.0.0 ดังนั้นควรใช้เพื่อบล็อกเว็บไซต์แทน หลีกเลี่ยงการวนซ้ำ ...
— Tamara Wijsman

7

Localhost หรือ 127.0.0.1 เป็นเพียง 'built' ในตัวสำหรับคอมพิวเตอร์ของคุณ

นั่นคือ 127.0.0.1 เรียกว่า "loopback" เพราะมันเป็นเพียงตัวชี้ที่ชี้ไปที่เครื่องของคุณ เป็นที่อยู่ IP ที่สงวนไว้ซึ่งสามารถเขียนเป็น localhost ตามคำจำกัดความ

จุดประสงค์ในการทำเช่นนี้คืออนุญาตให้บุคคลหนึ่งพูดคุยกับคอมพิวเตอร์โดยส่งสัญญาณออกไปด้านนอกแล้ววนซ้ำหลังเพื่อให้สัญญาณอ่านด้วยคอมพิวเตอร์เครื่องเดียวกัน

สมมติว่าคุณกำลังใช้เซิร์ฟเวอร์บนเครื่องของคุณ - เพื่อเข้าถึงคุณต้องส่งคำขอไปยังเซิร์ฟเวอร์ (ส่งแพ็คเก็ตไปที่ 127.0.0.1) และเซิร์ฟเวอร์ของคุณต้องอ่าน (ระบบของคุณวนกลับแพ็คเก็ตไปที่ ระบบโลคัลของคุณใน 127.0.0.1 ซึ่งอ่านโดยซอฟต์แวร์เซิร์ฟเวอร์ของคุณ)


5

ฉันค้นพบงานนำเสนอที่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 ยังมีหลักสูตรระบบเครือข่ายที่รวมภาพประกอบปกติของการสื่อสารระหว่างโฮสต์

ปกติการสื่อสารระหว่างโฮสต์

และหนึ่งในการไหลของข้อมูลย้อนกลับนี้:

                                                    การไหลของข้อมูลย้อนกลับ


4

สำหรับส่วนที่สองของคำถามของคุณหากคุณใส่ชื่อโฮสต์ของเว็บไซต์ในไฟล์โฮสต์ของคุณด้วยที่อยู่ 127.0.0.1 หมายความว่าเมื่อคุณพิมพ์ที่อยู่ในเบราว์เซอร์ของคุณแทนที่จะใช้ DNS เพื่อค้นหาที่อยู่ที่ถูกต้อง ในไฟล์โฮสต์ของคุณก่อนแก้ไขให้เป็น localhost และแทนที่จะไปยังที่อยู่ของเว็บไซต์เพียงแค่เริ่มพูดคุยกับเครื่องของคุณซึ่งทำให้เว็บไซต์ไม่สามารถโหลดได้


ทุกวันนี้ระบบปฏิบัติการหลายระบบรองรับ 0.0.0.0 ดังนั้นควรใช้เพื่อบล็อกเว็บไซต์แทน หลีกเลี่ยงการวนซ้ำ ...
— Tamara Wijsman
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.