127.0.0.1 และ 0.0.0.0 แตกต่างกันอย่างไร


234

ฉันเข้าใจว่า 127.0.0.1 ชี้ไปที่localhostและ 0.0.0.0 ก็เช่นกัน (แก้ไขฉันหากฉันผิด) ดังนั้นความแตกต่างระหว่าง 127.0.0.1 และ 0.0.0.0 คืออะไร?


1
คุณอาจสนใจการสนทนาตัวติดตามข้อผิดพลาดของ Chromeเกี่ยวกับวิธีจัดการกับ0.0.0.0อินพุตที่อยู่
Jeremy Banks

6
ในการกำหนดค่าเซิร์ฟเวอร์ส่วนใหญ่ 0.0.0.0 หมายถึงฟังที่อยู่ทั้งหมด! นี่จะทำให้เซิร์ฟเวอร์ของคุณพร้อมใช้งานบนอินเทอร์เน็ต หากคุณทำเช่นนั้นกับเซิร์ฟเวอร์ในระบบบางตัวที่ไม่มีระบบรักษาความปลอดภัย อย่าทำอย่างนั้น!
Josef

56
2130706433ตอบคำถามของคุณอย่างแท้จริงแตกต่างกันคือ
Shaz

2
@ เร็ว ๆ นี้คุณเป็นหนึ่งในคนที่ติดตั้งระบบที่ไม่ปลอดภัยทั้งหมดเพราะไฟร์วอลล์จะแก้ไขได้ทั้งหมดเหรอ? โดยทั่วไปแล้วระบบนี้สามารถพบได้ด้วยshodan.io : 3 ระดับต่อไปของความคิดนี้คือ "เราสามารถใช้การติดตั้ง WordPress อายุ 5 ปีทั้งหมดเราได้รับ WAF" ฉันไม่แนะนำให้ใครลงเส้นทางนี้เลย!
Josef

2
@Shaz ฉันต้องการที่จะ upvote ความคิดเห็นของคุณ แต่มันเป็นปัจจุบันอยู่ที่ 42 ฉันไม่สามารถนำตัวเองที่จะทำมัน ...
เจนนี่ D

คำตอบ:


221

127.0.0.1 และ 0.0.0.0 แตกต่างกันอย่างไร

  • 127.0.0.1 คือที่อยู่ลูปแบ็ค (หรือเรียกอีกอย่างว่า localhost)

  • 0.0.0.0 เป็น meta-address ที่ไม่สามารถกำหนดเส้นทางได้ซึ่งใช้เพื่อกำหนดเป้าหมายที่ไม่ถูกต้องไม่ทราบหรือไม่สามารถใช้งานได้ (ไม่มีตัวยึดตำแหน่งที่อยู่เฉพาะ)

    ในบริบทของรายการเส้นทางโดยปกติจะหมายถึงเส้นทางเริ่มต้น

    ในบริบทของเซิร์ฟเวอร์ 0.0.0.0 หมายถึง "ที่อยู่ IPv4 ทั้งหมดบนเครื่องโลคัล" หากโฮสต์มีที่อยู่ IP สองแห่งคือ 192.168.1.1 และ 10.1.2.1 และเซิร์ฟเวอร์ที่ทำงานบนโฮสต์รับฟังที่ 0.0.0.0 จะสามารถเข้าถึงได้ที่ IP ทั้งสองเครื่อง


ที่อยู่ IP 127.0.0.1 คืออะไร

127.0.0.1 เป็นที่อยู่อินเทอร์เน็ตโพรโทคอล (IP) หรือที่เรียกว่า“ localhost” ที่อยู่นี้ใช้เพื่อสร้างการเชื่อมต่อ IP กับเครื่องหรือคอมพิวเตอร์เครื่องเดียวกันที่ผู้ใช้ปลายทางใช้งาน

ข้อตกลงเดียวกันถูกกำหนดไว้สำหรับคอมพิวเตอร์ที่รองรับการกำหนดที่อยู่ IPv6 โดยใช้ความหมายของ :: 1 การสร้างการเชื่อมต่อโดยใช้ที่อยู่ 127.0.0.1 เป็นวิธีปฏิบัติทั่วไป อย่างไรก็ตามการใช้ที่อยู่ IP ใด ๆ ในช่วงของ 127 . * จะทำงานในลักษณะเดียวกันหรือคล้ายกัน โครงสร้างลูปแบ็คให้คอมพิวเตอร์หรืออุปกรณ์ที่มีความสามารถในการเชื่อมต่อเครือข่ายความสามารถในการตรวจสอบหรือสร้าง IP สแต็คบนเครื่อง

ที่มา: 127.0.0.1 - มีการใช้อะไรและทำไมจึงมีความสำคัญ


ที่อยู่พิเศษ

คลาสเครือข่ายหมายเลข 127 ได้รับการกำหนดฟังก์ชั่น "วนกลับ" นั่นคือดาตาแกรมที่ส่งโดยโพรโทคอลระดับสูงกว่าไปยังที่อยู่เครือข่าย 127 ที่อยู่ควรวนกลับภายในโฮสต์ ไม่มีดาตาแกรม "ส่ง" ไปยังเครือข่ายที่อยู่ 127 ไม่ควรปรากฏบนเครือข่ายใด ๆ

ที่มา: หมายเลขเครือข่าย


หากเป็นทั้งคลาส A ประเด็นของค่านิยมอื่นสำหรับสามออคเต็ตสุดท้ายคืออะไร?

วัตถุประสงค์ของช่วงลูปแบ็คคือการทดสอบการใช้โปรโตคอล TCP / IP บนโฮสต์ เนื่องจากเลเยอร์ที่ต่ำกว่ามีการลัดวงจรการส่งไปยังที่อยู่ลูปแบ็คทำให้สามารถทดสอบเลเยอร์ที่สูงขึ้น (IP และสูงกว่า) ได้อย่างมีประสิทธิภาพโดยไม่มีโอกาสเกิดปัญหาที่เลเยอร์ล่างจะปรากฏตัว 127.0.0.1 เป็นที่อยู่ที่ใช้บ่อยที่สุดเพื่อจุดประสงค์ในการทดสอบ

ที่มา: IP Reserved, Loopback และที่อยู่ส่วนตัว

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


ที่อยู่ IP 0.0.0.0 คืออะไร

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

ค่าศูนย์ทั้งหมดมีความหมายพิเศษ ดังนั้นจึงเป็น "ถูกต้อง" แต่มีความหมายที่อาจไม่เหมาะสม (และถือว่าเป็นไม่ถูกต้อง) สำหรับสถานการณ์เฉพาะ โดยพื้นฐานแล้วจะเป็นตัวยึดตำแหน่ง "ไม่มีที่อยู่เฉพาะ" สำหรับสิ่งต่างๆเช่นการเชื่อมโยงที่อยู่ของการเชื่อมต่อเครือข่ายผลลัพธ์สามารถกำหนดที่อยู่อินเทอร์เฟซที่เหมาะสมให้กับการเชื่อมต่อ หากคุณใช้เพื่อกำหนดค่าอินเทอร์เฟซก็สามารถลบที่อยู่ออกจากอินเตอร์เฟสแทน มันขึ้นอยู่กับบริบทของการใช้งานเพื่อกำหนดว่า "ไม่มีที่อยู่เฉพาะ" ทำอะไรได้บ้าง

ในบริบทของรายการเส้นทางก็มักจะหมายถึงเส้นทางเริ่มต้น ที่เกิดขึ้นเป็นผลมาจากรูปแบบที่อยู่ซึ่งเลือกบิตที่จะเปรียบเทียบ รูปแบบของ "0.0.0.0" ไม่เลือกบิตดังนั้นการเปรียบเทียบจะประสบความสำเร็จเสมอ ดังนั้นเมื่อเส้นทางดังกล่าวได้รับการกำหนดค่ามีแพ็คเก็ตไปที่ไหนสักแห่งเสมอ

ในบางกรณีเพียงแค่ "0" จะทำงานและมีผลเหมือนกัน แต่นี่ไม่รับประกัน แบบฟอร์ม "0.0.0.0" เป็นวิธีมาตรฐานในการพูดว่า "ไม่มีที่อยู่เฉพาะ" (ใน IPv6 ที่เป็น ":: 0" หรือเพียงแค่ "::")

ที่มา: ความหมายของที่อยู่ IP คืออะไร 0.0.0.0


ใน Internet Protocol รุ่น 4 ที่อยู่ 0.0.0.0 เป็น meta-address ที่ไม่สามารถกำหนดเส้นทางได้ซึ่งใช้เพื่อกำหนดเป้าหมายที่ไม่ถูกต้องไม่ทราบหรือไม่เกี่ยวข้อง การให้ความหมายพิเศษกับชิ้นส่วนของข้อมูลที่ไม่ถูกต้องเป็นแอปพลิเคชันของการส่งสัญญาณในวง

ในบริบทของเซิร์ฟเวอร์ 0.0.0.0 หมายถึง "ที่อยู่ IPv4 ทั้งหมดบนเครื่องโลคัล" หากโฮสต์มีที่อยู่ IP สองแห่งคือ 192.168.1.1 และ 10.1.2.1 และเซิร์ฟเวอร์ที่ทำงานบนโฮสต์รับฟังที่ 0.0.0.0 จะสามารถเข้าถึงได้ที่ IP ทั้งสองเครื่อง

ในบริบทของการกำหนดเส้นทาง 0.0.0.0 มักจะหมายถึงเส้นทางเริ่มต้นเช่นเส้นทางที่นำไปสู่ ​​"ส่วนที่เหลือของ" อินเทอร์เน็ตแทนที่ไหนสักแห่งในเครือข่ายท้องถิ่น

ใช้รวมถึง:

  • ที่อยู่ที่โฮสต์อ้างว่าเป็นของตัวเองเมื่อยังไม่ได้รับที่อยู่ เช่นเมื่อส่งแพ็กเก็ต DHCPDISCOVER เริ่มต้นเมื่อใช้ DHCP
  • ที่อยู่ที่โฮสต์กำหนดให้กับตัวเองเมื่อคำขอที่อยู่ผ่าน DHCP ล้มเหลวหาก IP สแต็คของโฮสต์รองรับสิ่งนี้ การใช้งานนี้ถูกแทนที่ด้วยกลไก APIPA ในระบบปฏิบัติการที่ทันสมัย
  • วิธีระบุ "IPv4-host ใด ๆ เลย" มันถูกใช้ในวิธีนี้เมื่อระบุเส้นทางเริ่มต้น
  • วิธีระบุอย่างชัดเจนว่าเป้าหมายไม่พร้อมใช้งาน 1
  • วิธีการระบุ "ที่อยู่ IPv4 ใด ๆ เลย" มันถูกใช้ในลักษณะนี้เมื่อกำหนดค่าเซิร์ฟเวอร์ (เช่นเมื่อเชื่อมซ็อกเก็ตการฟัง) เป็นที่ทราบกันดีว่าโปรแกรมเมอร์ TCP นั้นชื่อว่า INADDR_ANY (ผูก (2) เชื่อมโยงกับที่อยู่ไม่ใช่ส่วนต่อประสาน)

ใน IPv6 all-zeros-address จะถูกเขียนเป็น "::"

ที่มา: 0.0.0.0


การค้นพบ DHCP / คำขอ

เมื่อไคลเอนต์บูทขึ้นเป็นครั้งแรกจะมีการกล่าวว่าอยู่ในสถานะเริ่มต้นและส่งข้อความ DHCPDISCOVER บนซับเน็ตฟิสิคัลในระบบผ่านโลคอลย่อยทางกายภาพบนพอร์ต User Datagram Protocol (UDP) พอร์ต 67 (เซิร์ฟเวอร์ BootP) เนื่องจากไคลเอ็นต์ไม่มีวิธีการรู้ซับเน็ตที่เป็นของมัน DHCPDISCOVER จึงเป็นเครือข่ายย่อยทั้งหมดที่ออกอากาศ (ที่อยู่ IP ปลายทาง 255.255.255.255) โดยมีที่อยู่ IP ต้นทางเป็น 0.0.0.0 ที่อยู่ IP ต้นทางคือ 0.0.0.0 เนื่องจากไคลเอ็นต์ไม่มีที่อยู่ IP ที่กำหนดค่าไว้หากเซิร์ฟเวอร์ DHCP มีอยู่ในเครือข่ายย่อยในพื้นที่นี้และได้รับการกำหนดค่าและทำงานอย่างถูกต้องเซิร์ฟเวอร์ DHCP จะได้ยินการออกอากาศและตอบกลับด้วยข้อความ DHCPOFFER หากเซิร์ฟเวอร์ DHCP ไม่มีอยู่บนเครือข่ายย่อยท้องถิ่นจะต้องมีตัวแทนการถ่ายทอด DHCP / BootP บนเครือข่ายย่อยนี้เพื่อส่งต่อข้อความ DHCPDISCOVER ไปยังเครือข่ายย่อยที่มีเซิร์ฟเวอร์ DHCP

เอเจนต์รีเลย์นี้อาจเป็นโฮสต์เฉพาะ (ตัวอย่างเช่น Microsoft Windows Server) หรือเราเตอร์ (ตัวอย่างเช่นเราเตอร์ Cisco ที่กำหนดค่าด้วยคำสั่งผู้ช่วย IP ระดับอินเตอร์เฟส)

...

หลังจากไคลเอ็นต์ได้รับ DHCPOFFER ไคลเอ็นต์จะตอบกลับด้วยข้อความ DHCPREQUEST ซึ่งระบุถึงเจตนาที่จะยอมรับพารามิเตอร์ใน DHCPOFFER และย้ายไปยังสถานะที่ร้องขอ ไคลเอ็นต์อาจได้รับข้อความ DHCPOFFER หลายข้อความหนึ่งข้อความจากเซิร์ฟเวอร์ DHCP แต่ละตัวที่ได้รับข้อความ DHCPDISCOVER ดั้งเดิม ไคลเอนต์เลือกหนึ่ง DHCPOFFER และตอบกลับไปที่เซิร์ฟเวอร์ DHCP นั้นเท่านั้นปฏิเสธข้อความ DHCPOFFER อื่นทั้งหมดโดยปริยาย ไคลเอ็นต์ระบุเซิร์ฟเวอร์ที่เลือกโดยการเติมฟิลด์ตัวเลือก Server Identifier ด้วยที่อยู่ IP ของเซิร์ฟเวอร์ DHCP DHCPREQUEST นั้นเป็นรายการออกอากาศด้วยดังนั้นเซิร์ฟเวอร์ DHCP ทั้งหมดที่ส่ง DHCPOFFER จะเห็น DHCPREQUEST และแต่ละคนจะรู้ว่า DHCPOFFER นั้นเป็นที่ยอมรับหรือปฏิเสธ ตัวเลือกการกำหนดค่าเพิ่มเติมใด ๆ ที่ลูกค้าต้องการจะรวมอยู่ในฟิลด์ตัวเลือกของข้อความ DHCPREQUESTแม้ว่าไคลเอนต์จะได้รับการเสนอที่อยู่ IP ก็จะส่งข้อความ DHCPREQUEST ที่มีที่อยู่ IP ต้นทางของ 0.0.0.0 ในขณะนี้ลูกค้ายังไม่ได้รับการตรวจสอบว่ามีความชัดเจนในการใช้ที่อยู่ IP

...

การสนทนาไคลเอนต์เซิร์ฟเวอร์สำหรับไคลเอนต์การรับที่อยู่ DHCP ที่ไคลเอนต์และเซิร์ฟเวอร์ DHCP อยู่บนซับเน็ตเดียวกัน

ป้อนคำอธิบายภาพที่นี่

ที่มา: การทำความเข้าใจและการแก้ไขปัญหา DHCP ในสวิตช์ Catalyst หรือเครือข่ายองค์กร


เส้นทางเริ่มต้น

เอกสารนี้อธิบายวิธีกำหนดค่าเส้นทางเริ่มต้นหรือเกตเวย์สุดท้าย ใช้คำสั่ง IP เหล่านี้:

  • ip default-gateway

  • IP เริ่มต้นเครือข่าย

  • และเส้นทาง ip 0.0.0.0 0.0.0.0

เส้นทาง ip 0.0.0.0 0.0.0.0

การสร้างเส้นทางสแตติกไปยังเครือข่าย 0.0.0.0 0.0.0.0 เป็นอีกวิธีหนึ่งในการตั้งค่าเกตเวย์ของวิธีสุดท้ายในเราเตอร์ เช่นเดียวกับคำสั่ง ip-network default การใช้เส้นทางแบบสแตติกถึง 0.0.0.0 ไม่ขึ้นอยู่กับโปรโตคอลการเราต์ใด ๆ อย่างไรก็ตามการกำหนดเส้นทาง ip ต้องเปิดใช้งานบนเราเตอร์

หมายเหตุ: IGRP ไม่เข้าใจเส้นทางถึง 0.0.0.0 ดังนั้นจึงไม่สามารถเผยแพร่เส้นทางเริ่มต้นที่สร้างขึ้นโดยใช้คำสั่ง ip 0.0.0.0 0.0.0.0 เส้นทาง ใช้คำสั่ง ip-network default เพื่อให้ IGRP เผยแพร่เส้นทางเริ่มต้น

ที่มา: การกำหนดค่าเกตเวย์ของทางเลือกสุดท้ายโดยใช้คำสั่ง IP


3
ในบริบทของเซิร์ฟเวอร์ 0.0.0.0 หมายถึง "ที่อยู่ IPv4 ทั้งหมดบนเครื่องโลคัล" หากโฮสต์มีที่อยู่ IP สองแห่งคือ 192.168.1.1 และ 10.1.2.1 และเซิร์ฟเวอร์ที่ทำงานบนโฮสต์รับฟังที่ 0.0.0.0 จะสามารถเข้าถึงได้ที่ IP ทั้งสองเครื่อง - นั่นทำเพื่อฉัน
Rafael Eyng

112

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

127.0.0.1 เป็นส่วนหนึ่งของเครือข่าย 127/8 ซึ่งสงวนไว้และชี้ไปยังคอมพิวเตอร์เครื่องเดียวกัน

0.0.0.0 เป็นที่อยู่ IP พิเศษที่หมายถึงสิ่งต่าง ๆ ขึ้นอยู่กับบริบท

ใน Internet Protocol รุ่น 4 ที่อยู่ 0.0.0.0 เป็น meta-address ที่ไม่สามารถกำหนดเส้นทางได้ซึ่งใช้เพื่อกำหนดเป้าหมายที่ไม่ถูกต้องไม่ทราบหรือไม่สามารถใช้งานได้ การให้ความหมายพิเศษกับชิ้นส่วนของข้อมูลที่ไม่ถูกต้องเป็นแอปพลิเคชันของการส่งสัญญาณในวง

คุณอาจเข้าใจผิด 0.0.0.0 สำหรับ 127.0.0.1 เมื่อคุณดู netstat และดูที่อยู่โลคอลฟังเป็น 0.0.0.0 แต่นี่เป็นวิธีที่แตกต่างกันในการใช้ 0.0.0.0

ในบริบทของเซิร์ฟเวอร์ 0.0.0.0 หมายถึง "ที่อยู่ IPv4 ทั้งหมดบนเครื่องโลคัล" หากโฮสต์มีที่อยู่ IP สองแห่งคือ 192.168.1.1 และ 10.1.2.1 และเซิร์ฟเวอร์ที่ทำงานบนโฮสต์รับฟังที่ 0.0.0.0 จะสามารถเข้าถึงได้ที่ IP ทั้งสองเครื่อง

ในบริบทของการกำหนดเส้นทาง 0.0.0.0 มักจะหมายถึงเส้นทางเริ่มต้นเช่นเส้นทางที่นำไปสู่ ​​"ส่วนที่เหลือของ" อินเทอร์เน็ตแทนที่ไหนสักแห่งในเครือข่ายท้องถิ่น

https://en.wikipedia.org/wiki/0.0.0.0


0.0.0.0บางครั้งยังสามารถระบุการออกอากาศซึ่งหมายถึงคอมพิวเตอร์ทุกเครื่องในเครือข่าย
James Mertz

8
@ KronoS ฉันคิดว่าการออกอากาศเป็นสิ่งที่ชอบ255.255.255.255(หรือมากกว่านั้นคล้ายกับบางสิ่งบางอย่างที่เหมือน192.168.1.255เครือข่ายท้องถิ่น)
Nick T

1
@NickT Ah คุณอยู่ที่ถูกต้อง :A special definition exists for the IP broadcast address 255.255.255.255. It is the broadcast address of the zero network or 0.0.0.0, which in Internet Protocol standards stands for this network, i.e. the local network. Transmission to this address is limited by definition, in that it is never forwarded by the routers connecting the local network to other networks.
เจมส์ Mertz

@ KronoS คุณกำลังสับสนกับ addr broadcast ด้วย loopback ลูปแบ็คคือ 0.0.0.0 ซึ่งตามที่อธิบายไว้ข้างต้นฟังที่อยู่ภายในเครื่องทั้งหมด การออกอากาศ (ในวิธีที่ง่าย) คือ 255 เครือข่ายเพื่อ "กระจาย" ไปยังที่อยู่ทั้งหมดในเครือข่ายนั้น
ลำดับ

สิ่งนี้ไม่สมบูรณ์ - ระบบปฏิบัติการหลายระบบให้คุณเชื่อมต่อกับ 0.0.0.0 ซึ่งจะทำงานเหมือนที่อยู่ลูปแบ็ค
grawity

16

127.0.0.1 เป็นหนึ่งในที่อยู่ของเครื่องคอมพิวเตอร์ แต่ที่อยู่ใดก็ได้ 127.xyz ยังเป็นที่อยู่อื่นของคอมพิวเตอร์ (เรียกว่า "ที่อยู่ลูปแบ็ค") ยกเว้น 127.0.0.0 (เครือข่ายย่อยลูปแบ็ค) และ 127.255.255.255 (ออกอากาศที่อยู่สำหรับ subnet ลูปแบ็ค)

127.xyz แปลว่า "ที่นี่"

0.0.0.0 นั้นแตกต่างกันอย่างสิ้นเชิง: 0.0.0.0 ไม่ใช่ที่อยู่ของอะไรเลยมันเป็นโจ๊กเกอร์เหมือน*เชลล์

คุณไม่สามารถส่งข้อมูลไปที่ 0.0.0.0 หรือเปิดการเชื่อมต่อ TCP ไปที่ 0.0.0.0 ได้เนื่องจากไม่มีสิ่งใดอยู่ที่นั่น 0.0.0.0 ไม่ได้เป็นแม้กระทั่งไม่สามารถเข้าถึงหรือไม่อยู่ routable, มันเป็นความหมายในบริบทที่มีที่อยู่เป็นที่คาดว่า

คุณสามารถใช้ 0.0.0.0 โจ๊กในบริบทที่อยู่สามารถให้เลือกเพื่อหมายความว่าฉันไม่สนใจ

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

การbindเรียกระบบใช้เพื่อเลือกโลคัลแอดเดรสของซ็อกเก็ต TCP ข้อมูลที่ถูกส่งผ่านไปbindนั้นเป็นชุดของข้อ จำกัด : ข้อ จำกัด ของที่อยู่ IP ข้อ จำกัด ของพอร์ต TCP สัญกรณ์ข้อความปกติคือ IP: พอร์ต 0.0.0.0.00 หมายถึง IP ใด ๆ และพอร์ตใด ๆ ที่ยอมรับได้ซึ่งเป็นข้อ จำกัด ที่ว่างเปล่า 0.0.0.0:20 หมายความว่าพอร์ตในท้องถิ่นจะต้องมี 20 IP ใด ๆ ที่เป็นที่ยอมรับ (0.0.0.0:20 ถูกใช้โดยการทำตามเซิร์ฟเวอร์ FTP สำหรับการเชื่อมต่อข้อมูลในโหมดแอ็คทีฟ)

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

ก่อนหน้านี้ฉันได้พูดถึงเชลล์ "meta-character" *แต่พลังของการรวม meta-character กับตัวละครเช่น*foo*(ชื่อไฟล์ใด ๆ ที่มี "foo") ไม่มีอยู่ด้วยข้อ จำกัด ที่อยู่ IP ทั้งหมดหรือไม่มีอะไร: ทั้งที่อยู่ IP เดียว ถือว่ายอมรับได้หรือที่อยู่ทั้งหมดเป็น ลอจิกไม่ได้บอกว่ามันต้องเป็นแบบนี้ คุณสามารถขยายส่วนต่อประสานด้วยภาษาที่มีข้อ จำกัด มากขึ้น

ความแม่นยำ:

ประโยคที่127.xyz แปลว่า "ที่นี่"ไม่ได้แปลว่าที่อยู่เหล่านี้เหมือนกันทั้งหมด พวกเขาเป็นตัวแทนของ "สถานที่" ที่แตกต่างกัน (ที่อยู่ซ็อกเก็ต) ภายใน "คอมพิวเตอร์" ท้องถิ่นภายในสแต็ค IP ท้องถิ่นจริง

หมายเหตุ: คอมพิวเตอร์ที่มีการจำลองเสมือน (การจำลอง, การจำลองเสมือนสำหรับฮาร์ดแวร์, การจำลองเสมือนจริง, สิ่งที่คุณคิดได้ ... ) มีสแต็ค IP อิสระหลายตัว


เมื่อฉันพิมพ์ที่อยู่แบบสุ่มเริ่มต้นด้วย 127 (เช่น 127.16.23.42) ในเบราว์เซอร์ของฉันมันไม่ได้เชื่อมต่อกับ localhost
whoKnows

@whoKnows แน่นอน localhost คือ 127.0.0.1 ไม่ใช่ 127.16.23.42
curiousguy

ฉันเห็น. ดังนั้น 127.0.0.1 หมายถึง localhost แต่ 127.xyz อาจหมายถึงคอมพิวเตอร์ในพื้นที่หากมีการตั้งค่าแบบนั้น
whoKnows

2
@whoKnows No: 127.xyz เป็นของคอมพิวเตอร์เครื่องนี้สำหรับ xy z "localhost" เป็นเพียงชื่อสำหรับ 127.0.0.1 ดังนั้นลืม "localhost" ใช้-nหรือ-dตั้งค่าสถานะหรือnetstatและโปรแกรมที่เกี่ยวข้องเพื่อแสดงที่อยู่ตัวเลขไม่ใช่ชื่อ 127.0.0.1 ไม่ใช่ที่อยู่ IP เดียวกันกับ 127.16.23.42 ดังนั้น 127.0.0.1:80 และ 127.16.23.42:80 แสดงที่อยู่ปลายทางของ TCP ที่แตกต่างกันเว็บเซิร์ฟเวอร์ที่อยู่หนึ่งไม่สามารถพบได้ที่อยู่อื่น
curiousguy

6

โดยทั่วไปคุณใช้ bind-address 0.0.0.0 เพื่ออนุญาตการเชื่อมต่อจากเครือข่ายภายนอกและแหล่งที่มา เซิร์ฟเวอร์จำนวนมากเช่น MySQL โดยปกติจะผูกกับ 127.0.0.1 อนุญาตการเชื่อมต่อวนย้อนกลับเท่านั้นผู้ดูแลระบบต้องเปลี่ยนเป็น 0.0.0.0 เพื่อเปิดใช้งานการเชื่อมต่อภายนอก

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