已更新 1个月前
כשאתה מקליד 127.0.0.1 או localhost בדפדפן, אתה משתמש בכתובת הלולאה החוזרת — קיצור דרך מובנה שהופך את המחשב שלך גם לשולח וגם למקבל. התעבורה לא נוגעת בכבל, לא פוגעת בכרטיס הרשת שלך, לא עוזבת את המחשב שלך. זוהי שיחה שהמחשב מנהל עם עצמו, באמצעות אותם פרוטוקולים שבהם היה משתמש כדי לדבר עם שרת בצד השני של כדור הארץ.
זו לא תעלול ולא עקיפה. זוהי ארכיטקטורה בסיסית, מובנית בכל מערכת הפעלה מאז תחילת שנות השמונים. וברגע שתבין מה קורה בפועל, עשרות התנהגויות מפתחים מסתוריות יהפכו פתאום להגיוניות.
הכתובת שתמיד מצביעה הביתה
127.0.0.1 היא כתובת הלולאה החוזרת. שלח לשם מנה, ומערכת ההפעלה תתפוס אותה לפני שתגיע לכל חומרה. אין כרטיס רשת. אין נתב. אין כבל. המנה חוזרת פנימה בתוך מחסנית TCP/IP, כולה בתוכנה.
מנגנון זה מובנה בכל מערכת שמדברת TCP/IP. Windows, macOS, Linux, הטלפון שלך — 127.0.0.1 תמיד אומרת "המחשב הזה" ולא שום דבר אחר. אף פעם לא מכשיר אחר ברשת שלך. אף פעם לא שרת במרכז נתונים. תמיד הביתה.
הבחירה הספציפית ב-127.0.0.1 באה מ-Bill Joy ו-Sam Leffler ב-1983, כשעבדו על בסיס הקוד של Berkeley Unix שהפך ל-4.2BSD. הם היו צריכים כתובת קבועה וקלה לזכירה עבור פונקציונליות הלולאה החוזרת. ארבעים שנה אחר כך, אנחנו עדיין משתמשים בבחירה שלהם.
שישה עשר מיליון כתובות לדיבור עם עצמך
רוב האנשים מכירים רק את 127.0.0.1, אבל כל הבלוק 127.0.0.0/8 שמור ללולאה החוזרת. זה 16,777,216 כתובות — מ-127.0.0.0 עד 127.255.255.255 — כולן מיועדות למחשב שלך לדבר עם עצמו.
ייעוד זה נקבע ב-RFC 776 משנת 1981. ל-Jon Postel הייתה מדיניות של שמירת הרשת הראשונה והאחרונה של כל מחלקת כתובות; נראה שלא הייתה לו כוונה ספציפית ל-127. RFC 1122 (1989) הפך את תמיכת הלולאה החוזרת לחובה עבור כל מארחי האינטרנט.
הנה הדבר: ב-1981, כתובות IPv4 נראו אינסופיות. אף אחד לא דמיין שנמצה אותן. היום, ארגונים משלמים כסף רב על הקצאות IPv4, עסקים שלמים קיימים לתיווך העברות כתובות, ופרסנו תוכניות NAT נואשות יותר ויותר כדי למתוח את ההיצע הנותר. בינתיים, 1/256 מכל כתובות IPv4 יושבות שמורות למחשבים לדבר עם עצמם — ורק אחת מ-16 מיליון הכתובות האלה בשימוש נפוץ.
כל כתובת בטווח הזה חייבת לחזור בלולאה. אם נתב רואה מנות עם כתובות 127.x.x.x בממשק שאינו לולאה חוזרת, אותן מנות נחשבות "מאדים" — בלתי אפשריות, לא חוקיות, ממש ממאדים — ויש להשמיטן מיידית.
מה הלולאה החוזרת מאפשרת
פיתוח ללא חיבוריות לרשת. אפשר להריץ אפליקציית ווב שלמה — חזית, עורף, מסד נתונים, מטמון, תור — כולה על המחשב הנייד שלך בגובה 35,000 רגל עם מצב טיסה מופעל. ממשק הלולאה החוזרת לא אכפת לו מ-Wi-Fi או כבלי אתרנט.
תוכניות שמדברות אחת עם השנייה. תהליכים באותו מחשב יכולים לתקשר באמצעות פרוטוקולי רשת מוכרים. אחד משמש כשרת על 127.0.0.1:8080, אחר כלקוח. אותם APIs שהיית משתמש בהם לתקשורת מרחוק — רק שהתעבורה לעולם לא עוזבת את המחשב שלך.
אימות מחסנית הרשת. אם אתה יכול לשלוח ping ל-127.0.0.1, מחסנית TCP/IP שלך עובדת. זה נכון גם אם כרטיס הרשת מנותק, ה-Wi-Fi שבור, או הנתב בוער. הלולאה החוזרת מוכיחה שתוכנת הרשת שלך תקינה, ללא תלות בכל חומרה.
אבטחה דרך בידוד. שירות שקשור ל-127.0.0.1 אינו נגיש ממכשירים אחרים. נקודה. לא מהטלפון שלך על אותו Wi-Fi. לא ממחשב אחר ב-LAN שלך. לא מהאינטרנט.
localhost לעומת 127.0.0.1
אנשים משתמשים בהם לסירוגין, אבל יש הבדל עדין.
127.0.0.1 היא כתובת IP ישירה. המערכת שלך מדלגת על פענוח שמות ומתחברת מיידית. מובטח לעבוד אפילו אם DNS שבור.
localhost הוא שם מארח שצריך פענוח. המיפוי מתרחש בדרך כלל דרך /etc/hosts במערכות מבוססות Unix או C:\Windows\System32\drivers\etc\hosts ב-Windows. תצורה סטנדרטית ממפה את localhost ל-127.0.0.1 עבור IPv4 ו-::1 עבור IPv6.
תקורת הפענוח זניחה — בדרך כלל מאוחסנת במטמון לאחר הבדיקה הראשונה. אבל ההבחנה חשובה בהקשרים מסוימים. MySQL מתייחס אליהם אחרת: localhost מפעיל חיבור Unix domain socket, בעוד ש-127.0.0.1 משתמש ב-TCP דרך הלולאה החוזרת. הרשאות שונות, מאפייני ביצועים שונים, נתיבי איתור שגיאות שונים.
בעת פתרון בעיות DNS, או כשאתה זקוק ל-IPv4 ספציפית, השתמש ישירות ב-127.0.0.1.
איפה אתה רואה לולאה חוזרת כל יום
שרתי פיתוח מקומיים. הרץ npm start או flask run, ותראה משהו כמו "Server running at http://127.0.0.1:3000". שרת הווב והדפדפן שלך נמצאים שניהם על אותו מחשב, מתקשרים דרך ממשק הלולאה החוזרת.
מסדי נתונים. PostgreSQL, MySQL, MongoDB — רוב מערכות מסד הנתונים קשורות ל-127.0.0.1 כברירת מחדל. הן מקבלות חיבורים רק מהמחשב המקומי. רוצה גישה מרחוק? יש לשנות את התצורה במפורש.
Docker וקונטיינרים. Docker Desktop, אשכולות Kubernetes, שרתי פיתוח ספציפיים לשפה — כולם נשענים בכבדות על הלולאה החוזרת. אפשר לבנות ולבדוק ארכיטקטורות מיקרו-שירותים מורכבות לחלוטין על המחשב הנייד.
מנהרות SSH. התחבר לשרת מרוחק, העבר את פורט 5432 המרוחק ל-127.0.0.1:5432 על המחשב שלך — ועכשיו אתה יכול להתחבר למסד נתונים מרוחק כאילו הוא פועל מקומית.
למה תעבורה לעולם לא בורחת
זה פיזית בלתי אפשרי שתעבורה שנשלחת ל-127.0.0.1 תגיע למכשיר אחר.
כשיישום שולח מנה לכל כתובת בטווח 127.0.0.0/8, מערכת ההפעלה מיירטת אותה בשכבת הקישור — לפני שהיא מגיעה לחומרה. המנה לא נוגעת בכרטיס ממשק הרשת. לא עולה על כבל או אות Wi-Fi. לא מופיעה ביומני הנתב.
מנקודת המבט של היישום, הוא שולח בקשת רשת רגילה. מחסנית הרשת מטפלת בה כמו בכל תעבורה אחרת — פרט לכך שהסיבוב מתרחש לחלוטין בתוכנה, ללא כל מרחק פיזי.
ניתן לנטר את הרשת עם חומרה מיוחדת ולעולם לא תראה תעבורת לולאה חוזרת. היא לא קיימת מחוץ למחשב שלך.
לולאה חוזרת של IPv6: ::1
ל-IPv6 יש כתובת לולאה חוזרת משלה: ::1. זהו הצורה הדחוסה של 0000:0000:0000:0000:0000:0000:0000:0001 — 128 ביטים, כולם אפסים פרט לביט האחרון.
בניגוד ל-16 מיליון כתובות הלולאה החוזרת של IPv4, IPv6 מייעד כתובת אחת בלבד. עם 340 אנדציליון כתובות IPv6 זמינות בסך הכל, אין צורך לשמור טווח שלם. אבל זוהי גם הודאה ארכיטקטונית: מעולם לא היינו צריכים 16 מיליון כתובות לולאה חוזרת. אחת הייתה מספיקה.
הכתובת משרתת את אותה מטרה בדיוק כמו 127.0.0.1. מנות ל-::1 לא עוזבות את המארח.
כשאתה מתחבר ל-localhost, המערכת שלך עשויה לפתור אותו ל-127.0.0.1 או ל-::1 בהתאם לתצורה. מערכות הפעלה מסוימות מעדיפות IPv6 כברירת מחדל. לרוב היישומים, ההבחנה הזו אינה נראית — שניהם עובדים בצורה זהה. אבל בעת איתור בעיות רשת, כדאי לדעת איזו כתובת בשימוש בפועל.
127.0.0.1 לעומת 0.0.0.0: הבחנת האבטחה שחשובה
הבנת אופן קישור השירותים לכתובות היא חיונית. ההבדל בין 127.0.0.1 לבין 0.0.0.0 יכול להיות ההבדל בין שירות נעול למחשב שלך לבין שירות חשוף לכל הרשת.
קישור ל-127.0.0.1: השירות מקבל חיבורים רק מהמחשב המקומי. גם אם למחשב שלך יש כתובת LAN כמו 192.168.1.100 או IP ציבורי, ממשקים אלה לא יכולים להגיע לשירות הקשור ללולאה החוזרת. אף מכשיר אחר לא יכול להתחבר.
קישור ל-0.0.0.0: השירות מאזין על כל ממשקי הרשת הזמינים בו-זמנית. כל מי שיכול לנתב מנות לכל אחת מכתובות ה-IP שלך יכול פוטנציאלית להתחבר.
מסד נתונים הקשור ל-0.0.0.0:5432 עלול להיות נגיש לכל אחד ברשת שלך — או לתוקפים מרוחקים אם לחומת האש יש פרצות. אותו מסד נתונים הקשור ל-127.0.0.1:5432 אינו נגיש מחוץ למחשב שלך, ללא קשר לחוקי חומת האש.
ברירת המחדל היא 127.0.0.1 — אלא אם כן אתה זקוק לגישה חיצונית. בודק את אפליקציית הנייד שלך מול API מקומי? קשור זמנית ל-0.0.0.0, שתף את כתובת ה-IP של המחשב שלך, וחזור ל-127.0.0.1 בסיום.
שירותי ייצור בדרך כלל קשורים ל-0.0.0.0 כי הם צריכים חיבורים חיצוניים — אבל הם נשענים על שכבות אבטחה מרובות: חומות אש, שערי API, פרוקסי הפוכים, פילוח רשת.
העיקרון: ברירת המחדל היא התצורה המגבילה ביותר שעונה על הצרכים שלך.
שאלות נפוצות על Localhost
למה 127.0.0.1 נקרא "localhost"?
localhost הוא שם מארח, ו-127.0.0.1 היא כתובת ה-IP שאליה הוא בדרך כלל מפוענח. השם מגיע מהמושג "המארח המקומי" — המחשב שבו אתה משתמש כעת. המיפוי בין שם המארח לכתובת ה-IP מוגדר בקובץ ה-hosts של המערכת, לא דרך DNS.
האם מישהו יכול לפרוץ אלי דרך localhost?
לא מרחוק. תעבורה ל-127.0.0.1 לא עוזבת את המחשב שלך, כך שאין נתיב רשת לתוקף לנצל. עם זאת, אם תוכנה זדונית כבר פועלת על המחשב שלך, היא יכולה להתחבר לשירותים הקשורים ל-localhost בדיוק כמו כל תהליך מקומי אחר. ההגנה היא מפני גישה חיצונית — לא מפני תוכנה מקומית שנפגעה.
למה חלק מהיישומים משתמשים ב-127.0.0.1 ואחרים ב-localhost?
שימוש ב-127.0.0.1 ישירות מדלג על פענוח DNS ומבטיח IPv4. שימוש ב-localhost קריא יותר אבל דורש פענוח שמות ועלול להתפענח ל-::1 (IPv6) על מערכות מסוימות. יישומים מסוימים (כמו MySQL) מתייחסים אליהם אחרת — localhost עלול להפעיל חיבורי Unix socket בעוד ש-127.0.0.1 מכריח TCP. בספק, השתמש ב-127.0.0.1 לעקביות.
מה קורה אם אני מנסה לגשת ל-127.0.0.1 ממחשב אחר?
המחשב האחר יתחבר לממשק הלולאה החוזרת שלו עצמו — לא שלך. 127.0.0.1 של כל מכשיר מצביע על עצמו. אי אפשר להשתמש בכתובת זו כדי להגיע למחשב אחר. זו לא מוסכמה — זו פיזיקה.
מקורות
此页面对您有帮助吗?