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.