ความแตกต่างระหว่างที่อยู่ IP ของเครื่องและโฮสต์ในพื้นที่คืออะไร


12

สงสัยยกมาจากคำถามอื่นของฉันที่ถ้าฉันให้ localhost กับเส้นทางของฉันมันทำงานได้ แต่มันไม่ทำงานถ้าฉันให้ไอพีกับระบบของฉัน

127.0.0.1 ถูกแมปกับ localhost ใน / etc / hosts ของฉัน ฉันจำเป็นต้องแมป ip ของฉันกับ localhost หรือไม่ ไม่เปลี่ยนแปลง

พวกเขาไม่เหมือนกันหรือ

คำตอบ:


14

บริการบางอย่างได้รับการกำหนดค่าให้รับฟังเฉพาะที่อยู่ IP ในพื้นที่

ตัวอย่างจะเป็นฐานข้อมูล MySQL - คุณต้องการให้แอพพลิเคชัน PHP ของคุณทำงานบนเซิร์ฟเวอร์เดียวกันเพื่อเชื่อมต่อ แต่ไม่ต้องการบริการภายนอกหรือแม้แต่แฮกเกอร์จากภายนอกเพื่อเชื่อมต่อ โดยการกำหนดค่า MySQL ให้ยอมรับเฉพาะที่อยู่ localhost ( 127.0.0.1ตัวอย่าง) และไม่ใช่ที่อยู่ IP จริงของเซิร์ฟเวอร์ของคุณ ( 10.x.x.xตัวอย่าง) คุณกำลังลดโอกาสที่จะถูกบุกรุก

ดังนั้นเพื่อตอบคำถามของคุณ - ใช่พวกเขาแตกต่างกัน

localhostจะได้รับที่อยู่ IP ในเครือข่ายและการให้กับอุปกรณ์เครือข่ายเสมือนย้อนกลับ127.0.0.0 loอุปกรณ์นี้มีอยู่ในทุกระบบไม่ว่าจะมีการติดตั้งอุปกรณ์เครือข่ายทางกายภาพ (WiFi หรือ Ethernet เป็นต้น) ระบบที่ไม่ได้เชื่อมต่อกับเครือข่ายใด ๆ จะมีอุปกรณ์ลูปแบ็คและด้วยเหตุนี้ที่127.0.0.0อยู่ ชื่อlocalhostเป็นเพียงชื่อที่แก้ไขนี้ที่อยู่ IP /etc/hostsและมีการกำหนดค่าใน

ที่อยู่ IP จริงของคุณ(ตัวอย่างเช่น 10.xxx) ถูกจัดสรรให้กับอุปกรณ์เครือข่าย โดยปกติจะเป็นอุปกรณ์เครือข่ายทางกายภาพ (WiFi หรือ Ethernet) แม้ว่าการตั้งค่าขั้นสูงที่ใช้tunหรือtapอุปกรณ์ก็สามารถใช้งานได้เช่นกัน อีกครั้งการแก้ปัญหาชื่อ (ตัวอย่างเช่นwww.example.orgไป10.0.1.1) สามารถกำหนดค่าใน/etc/hostsหรือสามารถตั้งค่าให้ใช้ DNS


4

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

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

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

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


ขอบคุณสำหรับคำอธิบายที่ยาว อีกข้อสงสัย: ถ้าฉันบอกว่าบริการของฉันเพื่อ localhost มันจะไม่ไปกับเราเตอร์ แต่ถ้าฉันระบุ IP มันจะเปลี่ยนเส้นทางโดยเราเตอร์ ดังนั้นฉันต้องมีการเชื่อมต่ออินเทอร์เน็ตในกรณีที่สองของฉัน ไม่ได้อยู่กับ localhost โปรดแจ้งให้เราทราบ
Gibbs

คุณต้องเชื่อมต่อกับเราเตอร์มิฉะนั้นคุณจะได้รับnetwork is unreachableหรือสิ่งที่คล้ายกัน เคล็ดลับคือ (อย่างน้อยกับ dhcp) เป็นเราเตอร์ที่ให้ LAN ip แก่คุณตั้งแต่แรก อาจเป็นไปได้ว่าสิ่งนี้อาจแตกต่างกันไปในบางกรณีหากเส้นทางยังคงมีอยู่ แต่โดยพื้นฐานแล้วสำหรับ LAN ip คุณต้องใช้ LAN และสำหรับ ip ภายนอกคุณต้องเชื่อมต่อกับ ISP
orion

3

เมื่อคุณเข้าถึงไฟล์localhostของคุณ/etc/hostsจะบอกให้คอมพิวเตอร์ของคุณไม่ต้องมองหาสิ่งใดเพิ่มเติมและนำคุณไปยังคอมพิวเตอร์ของคุณเอง เมื่อคุณเข้าถึงที่อยู่ IP ในเครื่องคอมพิวเตอร์ของคุณจะขอให้เราเตอร์ดึงข้อมูลจากนั้นเราเตอร์ของคุณจะกลับไปที่คอมพิวเตอร์ของคุณ


3
@serenesat - ไม่เมื่อคุณเข้าถึงที่อยู่ IP 'ของจริง' คุณจะไม่ไปไกลเท่าที่เราเตอร์ - คุณจะไม่ออกจากเครื่องนั้น ลองส่งที่อยู่ IP ของคุณและดูเวลาเดินทางไปกลับ ...
garethTheRed

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