שאלה מה ההבדל בין כתובת IP 0.0.0.0 לבין 127.0.0.1?


אני יודע כי 127.0.0.1 ~ 127.255.255.254 הן כתובות ה- loopback עבור רוב מערכות ההפעלה המודרניות, ואת כתובות ה- IP האלה ניתן להשתמש כדי להתייחס למחשב שלנו.

אבל מה זה 0.0.0.0? נראה שזה גם מתייחס למחשב המקומי, אז מה זה ההבדל?

וכן, אתה יכול להסביר את הקישורים הבאים IP בשבילי:

screenshot of netstat -an output


208
2017-10-25 07:22




כמו כן יש להסתכל על שאלה זו, כפי שהוא נותן פרטים על מה 0.0.0.0 הוא (ולא): serverfault.com/questions/228629/... - Ellie Kesselman
מערכת הפעלה מודרנית תשתמש ::1 כמו כתובת loopback. - kasperd


תשובות:


הדבר היחיד הוא שאתה לא אומר "כל הכתובות צריך גישה" - זה נעשה בחומת האש שלך ו / או תוכנת השרת ו / או שכבות אבטחה אחרות כמו tcpwrappers.

0.0.0.0, בהקשר זה, פירושו "כל כתובות ה- IP במחשב המקומי" (למעשה, ככל הנראה, "כל כתובות ה- IPv4 במחשב המקומי"). אז, אם מכונת השרתים שלך יש שתי כתובות IP, 192.168.1.1 ו 10.1.2.1, ואתה מאפשר daemon שרת אינטרנט כמו אפאצ 'י להקשיב על 0.0.0.0, זה יהיה נגיש בשני כתובות IP אלה. אבל רק מה יכול ליצור קשר עם כתובות ה- IP ואת יציאות האינטרנט (ים).

שים לב שבקשר אחר (ניתוב) 0.0.0.0 פירושו בדרך כלל נתיב ברירת המחדל (המסלול אל "שאר" האינטרנט, מלבד מסלולים ברשת המקומית וכו ').


145
2017-10-25 08:55



אז אתה מתכוון כי שרת האינטרנט של שקע קשורה לכל הכתובות הזמינות כאשר הוא מקשיב על 0.0.0.0? - onmyway133
0.0.0.0 פירושו נתיב ברירת המחדל רק אם הוא מלווה בקידומת /0 (או מסכת רשת 0.0.0.0) - minmaxavg
כדי לציין: אם תהליך כלשהו מקשיב על 0.0.0.0, הוא יהיה נגיש בכתובת כתובת IP של כל ממשקי הרשת של המכונה הכוללים את הכתובת הנוכחית המוגדרת של ממשק לולאה בחזרה. אבל אם התהליך מקשיב רק ביציאה <portNumber> של כתובת לולאה חוזרת, למשל. 127.0.0.1, ולאחר מכן התהליך נגיש רק מאותה מכונה על ידי מיקוד בדיוק 127.0.0.1: <portNumber>. נסה זה כלי פיתון  לשחק! - Gab是好人


כאשר שירות מקשיב על 0.0.0.0 זה אומר השירות מקשיב על כל ממשקי הרשת שהוגדרו, כאשר האזנה על 127.0.0.1 השירות מחובר רק לממשק loopback (זמין רק במחשב המקומי)


76
2017-10-25 07:33





כתובת ה- IP 0.0.0.0 יכול להיות משמעויות שונות מאוד, תלוי איפה זה משמש.

  • אין זו כתובת תקפה לממשק רשת בפועל, יחד עם כל כתובת אחרת בתת רשת 0.0.0.0/8 (כלומר, כתובת שמתחילה 0.).
  • זה לא יכול לשמש כתובת המקור על כל מנות IP, אלא אם כן זה קורה כאשר המחשב עדיין לא יודע כתובת ה- IP שלו והוא מנסה לרכוש אחד (דוגמה קלאסית: DHCP).
  • אם נעשה שימוש בטבלת ניתוב, הוא מזהה את שער ברירת המחדל; נתיב ל -0.0.0.0 הוא ברירת המחדל של אחד, כלומר זה המשמש כאשר אין נתיב ספציפי יותר זמין לכתובת היעד.
  • לבסוף, כאשר רואים את הפלט של netstat (וזה מה שביקשת), זה אומר שקלט נתון מקשיב לכל כתובות ה- IP הזמינות במחשב; כאשר למחשב יש יותר מכתובת IP אחת, ניתן לחבר שקע רק לכתובת ספציפית ולזוג יציאה או ליציאה את כל כתובות; אם אתה רואה כתובת IP שם, זה אומר כי שקע מקשיב רק על יציאה כי כתובת ספציפית; אם אתה רואה 0.0.0.0, זה אומר שזה מקשיב על הנמל ב את כל כתובות של המכונה, כולל loopback אחד (127.0.0.1).

38
2017-08-12 06:45



מה זה אומר אם אתה סלסל 0.0.0.0? האם סלסל למעשה יצירת קשר ושליחת בקשה דרך ממשקים זמינים? איך הוא יודע איזה ממשק הוא הנכון? אני מבין איך שרת יכול להקשיב על כל הממשקים, אבל מה הוא המנגנון עבור לקוח כדי לבקש את כל ממשקים כגון כאשר אני עושה סלסול 0.0.0.0 או סלסול [::]. - CMCDragonkai
מערכת ההפעלה סביר מאוד לחסום אותך עושה את זה, כפי שהוא לא רק הגיוני מנקודת המבט ברשת. מנסה ping 0.0.0.0 על מערכת Windows תוצאות הודעת שגיאה. - Massimo
curl 0.0.0.0 תשואות connection refusedעל לינוקס. ping 0.0.0.0, לעומת זאת, נראה כינוי עבור ping 127.0.0.1 אשר עובד בסדר. - Matthias Braun
@MatthiasBraun connection refused יכול להיות בגלל סלסול כברירת מחדל לנסות להתחבר ליציאה 80 / tcp. נסה למצוא את היציאות הפתוחות שלך nmap -sV localhost ולאחר מכן למשל עבור 631 / tcp: curl 0.0.0.0:631. - Pablo Bianchi


התשובה של לי B היא ממש על, אבל הנה כמה RFCs רלוונטי במקרה שאתה מעוניין.

0.0.0.0:

מ RFC1122, סעיף 3.1.2.3:

כעת אנו מסכמים את המקרים המיוחדים החשובים לכיתה א ', ב'               ו- C, תוך שימוש בסימון הבא עבור כתובת IP               כתובת:

            { <Network-number>, <Host-number> }

        or
            { <Network-number>, <Subnet-number>, <Host-number> }

...

          (a)  { 0, 0 }

             This host on this network.  MUST NOT be sent, except as
             a source address as part of an initialization procedure
             by which the host learns its own IP address.

רק זה, "זה מארח על רשת זו" ... כמו תשובתו של לי B זה מתרגמת את כל כתובות ה- IP הזמינות על המארח שלך. אירוח שירות ב 0.0.0.0 באופן אוטומטי לארח את השירות על כל ממשק הניתן לצפייה.

127.0.0.1:

מ RFC5735You

127.0.0.0/8 - בלוק זה מוקצה לשימוש ככתובת המארח של האינטרנט המארח. Datagram שנשלח על ידי פרוטוקול ברמה גבוהה יותר לכתובת בכל מקום בתוך בלוק זה לולאות בחזרה לתוך המארח. זה מיושם בדרך כלל רק באמצעות 127.0.0.1 / 32 עבור לולאבק. כפי שמתואר בסעיף [RFC1122], סעיף 3.2.1.3, כתובות בתוך הבלוק 127.0.0.0/8 כולו אינן מופיעות באופן חוקי ברשת כלשהי בשום מקום.

ההבדל בין 0.0.0.0 לבין כתובת loopback 127.0.0.1 היא שכתובת ה- loopback נועדה לאפשר ממשק IP מתפקד במלואו בתוך המארח עצמו, ללא קשר לשאר הגדרות הרשת, אם בכלל. כל תנועה שנשלחו להתקן לולאבק מתקבלת מיד על זה. זה לא כל כך כי הרשת loopback "מתייחס" לארח שלך ... זה יותר כמו שיש לך קטע רשת מיני המארח שלך התקנים, תהליכים ארובות יכול לפתוח ולהתחבר.


27
2017-08-12 06:20





במילים פשוטות: האזנה ב 0.0.0.0 פירושה להקשיב מכל מקום שיש לו גישה לרשת למחשב זה, למשל, מהמחשב הזה, מהרשת המקומית או מהאינטרנט, תוך הקשבה ב 127.0.0.1 פירושו להקשיב רק מהמחשב הזה


3
2017-12-28 10:28