已更新 1个月前
כאשר אתה טוען דף אינטרנט, המחשב שלך לא פשוט מתחבר למחשב אחר. הוא מתחבר לשירות ספציפי על אותו מחשב — שרת הווב, לא שרת הדוא"ל, לא מסד הנתונים, ולא מאות הדברים האחרים שאותו מחשב עשוי להריץ.
איך הוא יודע לאיזה שירות להתחבר? פורטים.
הבניין והמשרד
כתובת IP מביאה אותך לבניין. פורט מביא אותך למשרד הנכון.
בלי פורטים, כל מחשב יכול היה לעשות רק דבר אחד בכל פעם. כתובת IP אחת, שירות אחד. רוצה להריץ גם שרת ווב וגם שרת דוא"ל? היית צריך שני מחשבים, שתי כתובות IP. האינטרנט היה זקוק למיליארדי כתובות נוספות מעבר למה שהוא כבר צריך.
פורטים פותרים את הבעיה הזו. הם מספרים בטווח 0 עד 65535 המזהים שירותים ספציפיים על מחשב. כאשר משלבים כתובת IP עם פורט, מקבלים סוקט — נקודת קצה ייחודית הכתובה בתצורת IP:port:
192.168.1.1:80— שרת ווב208.67.222.222:53— שרת DNS10.0.0.5:22— שרת SSH172.16.0.10:443— שרת HTTPS
כתובת ה-IP אומרת "המחשב הזה." הפורט אומר "השירות הזה על המחשב הזה."
לכל חיבור יש שני קצוות
כאשר הדפדפן שלך מתחבר לאתר אינטרנט, ארבעה מספרים מגדירים את החיבור:
- כתובת ה-IP שלך
- הפורט שלך
- כתובת ה-IP שלהם
- הפורט שלהם
שילוב ארבעת החלקים הזה — הנקרא זוג סוקטים — מזהה את החיבור באופן ייחודי:
המחשב שלך (192.168.1.100) משתמש בפורט 54321, מדבר עם שרת הווב (93.184.216.34) על פורט 443.
פורט השרת (443) צפוי — שם חי HTTPS. אבל הפורט שלך (54321)? מערכת ההפעלה שלך בחרה אותו באקראי ממאגר של פורטים זמניים. זוהי כתובת ההחזרה שלך לשיחה הספציפית הזו.
עשרה טאבים, עשר שיחות
פתח עשרה טאבים בדפדפן לאותו אתר. יצרת עשרה חיבורים נפרדים:
אותה כתובת IP מקור. אותה כתובת IP ופורט יעד. אבל כל טאב מקבל פורט מקור משלו. כך המחשב שלך שומר על כל עשר השיחות בנפרד — לכל אחת כתובת החזרה שונה.
פורטים ידועים
שירותים מאזינים על פורטים צפויים כדי שלקוחות ידעו היכן למצוא אותם:
| פורט | שירות |
|---|---|
| 80 | HTTP (גלישה) |
| 443 | HTTPS (גלישה מאובטחת) |
| 22 | SSH (גישה מרחוק) |
| 25 | SMTP (שליחת דוא"ל) |
| 53 | DNS (פתרון שמות) |
| 3306 | MySQL (מסד נתונים) |
אלה מוסכמות, לא דרישות. ניתן להריץ שרת ווב על פורט 9999 אם רוצים. אבל אז כולם צריכים לדעת לבקש yoursite.com:9999 במקום רק yoursite.com.
NAT: שיתוף כתובת ציבורית אחת
לרוב רשתות הבית יש עשרות מכשירים אך כתובת IP ציבורית אחת בלבד. תרגום כתובות רשת (NAT) פותר זאת על ידי שינוי פורטים.
כאשר המחשב הנייד שלך מתחבר לאתר אינטרנט:
- המחשב הנייד שלך שולח מ-
192.168.1.100:54321 - הראוטר שלך כותב מחדש את הכתובת ל-
203.0.113.50:12345(כתובת ה-IP הציבורית של הראוטר עם פורט חדש) - הראוטר זוכר: "פורט 12345 שייך ל-
192.168.1.100:54321" - כאשר התגובה מגיעה לפורט 12345, הראוטר מעביר אותה חזרה למחשב הנייד שלך
כל מכשיר ברשת שלך מקבל פורט מתורגם משלו. הראוטר מנהל אלפי מיפויים כאלה, ושומר על כל השיחות נפרדות.
העברת פורטים
NAT עובד אוטומטית לחיבורים יוצאים. אבל מה אם אתה מריץ שרת שצריך לקבל חיבורים נכנסים?
העברת פורטים אומרת לראוטר: "כאשר תעבורה מגיעה על פורט 8080, שלח אותה ל-192.168.1.100 על פורט 80."
עכשיו מישהו באינטרנט יכול להגיע לשרת הווב הפנימי שלך על ידי התחברות לכתובת ה-IP הציבורית של הראוטר שלך על פורט 8080.
לראות זאת בפעולה
הרץ netstat -an או ss -tuln על כל מחשב ותראה את זוגות הסוקטים:
השורה הראשונה היא חיבור פעיל לשרת ווב. השנייה מראה SSH מאזין על כל הממשקים. השלישית מראה MySQL מאזין רק על localhost — הוא לא יקבל חיבורים ממחשבים אחרים.
0.0.0.0 פירושו "כל ממשקי הרשת." 127.0.0.1 פירושו "חיבורים מקומיים בלבד." כתובת ה-IP שאליה שירות נקשר קובעת מי יכול להגיע אליו.
מדוע זה חשוב
חומות אש מקבלות החלטות על בסיס שילובי IP-פורט. "אפשר 443, חסום 23" פירושו "תן ל-HTTPS לעבור, עצור Telnet."
מאזני עומסים ממפים סוקט חיצוני אחד לשרתים פנימיים רבים, ומחלקים את התעבורה בין המחשבים.
כל יישום רשת — כל אתר אינטרנט, כל API, כל חיבור מסד נתונים — מסתמך על מערכת הכתובות הזו. כתובת ה-IP מוצאת את המחשב. הפורט מוצא את השירות. זוג הסוקטים מזהה את השיחה.
כך מיליארדי מכשירים מריצים מיליוני שירותים מבלי להפריע אחד לשני.
שאלות נפוצות על פורטים וכתובות IP
האם שני שירותים יכולים להשתמש באותו פורט?
לא על אותה כתובת IP. פורט יכול להיות קשור רק לשירות אחד בכל פעם על ממשק נתון. אבל אותו מספר פורט יכול לשמש על כתובות IP שונות — מחשב עם מספר ממשקי רשת יכול להריץ שרתי ווב שונים על פורט 80 של כל ממשק.
מה קורה אם אני מנסה להתחבר לפורט שאין עליו שירות מאזין?
החיבור נכשל מיד. תקבל שגיאת "connection refused". מערכת ההפעלה יודעת שאין שם שום דבר מאזין ודוחה את הניסיון על הסף — אין timeout, אין המתנה.
מדוע כמה כתובות URL כוללות מספרי פורטים ואחרות לא?
דפדפנים מניחים פורט 80 עבור HTTP ופורט 443 עבור HTTPS. כאשר שירות פועל על הפורט הסטנדרטי, אין צורך לציין אותו. https://example.com זהה ל-https://example.com:443. אבל אם מישהו מריץ את שרת הווב שלו על פורט 8080, אתה צריך את הכתובת המלאה: http://example.com:8080.
האם פורטים מסוימים בטוחים יותר מאחרים?
לא. פורט 443 אינו בטוח מעצם טבעו — הוא פשוט המקום שבו HTTPS חי באופן מוסכם. האבטחה מגיעה מהפרוטוקול וההצפנה, לא ממספר הפורט. הפעלת שירות לא מוצפן על פורט 443 לא הופכת אותו לבטוח.
此页面对您有帮助吗?