אנדרואיד

כיצד לבדוק אם יציאות האזנה בלינוקס (יציאות בשימוש)

Os humildes serão exaltados (Homilia Diária.1619: Sábado da 30.ª Semana do Tempo Comum)

Os humildes serão exaltados (Homilia Diária.1619: Sábado da 30.ª Semana do Tempo Comum)

תוכן עניינים:

Anonim

כשאתה פותר בעיות קישוריות רשת או בעיות ספציפיות ליישום, אחד הדברים הראשונים שיש לבדוק צריך להיות אילו יציאות משמשות למעשה במערכת שלך ואיזה יישום מקשיב ביציאה ספציפית.

מאמר זה מסביר כיצד לגלות אילו שירותים מקשיבים לאילו יציאות המשתמשות בפקודות netstat , ss ו- lsof . ההוראות חלות על כל מערכות ההפעלה מבוססות לינוקס ו- Unix כמו macOS.

מה זה נמל האזנה

יציאת הרשת מזוהה על פי המספר שלה, כתובת ה- IP המשויכת וסוג פרוטוקול התקשורת כמו TCP או UDP.

יציאת האזנה היא יציאת רשת שעליה מקשיב יישום או תהליך הפועל כנקודת קצה לתקשורת.

כל יציאת האזנה יכולה להיות פתוחה או סגורה (סינון) באמצעות חומת אש. באופן כללי, יציאה פתוחה היא יציאת רשת המקבלת מנות נכנסות ממקומות מרוחקים.

אין לך שני שירותים להאזין לאותה יציאה באותה כתובת IP.

לדוגמה, אם אתה מפעיל שרת אינטרנט של Apache שמאזין ביציאות 80 ו- 443 ואתה מנסה להתקין את Nginx המאוחר יותר לא יצליח להפעיל מכיוון שיציאות HTTP ו- HTTPS כבר נמצאות בשימוש.

בדוק יציאות האזנה באמצעות netstat

netstat הוא כלי בשורת פקודה שיכול לספק מידע על חיבורי רשת.

לרשימה של כל יציאות TCP או UDP בהן מקשיבים, כולל השירותים המשתמשים ביציאות ומצב השקע, השתמש בפקודה הבאה:

sudo netstat -tunlp

לאפשרויות המשמשות בפקודה זו המשמעות הבאה:

  • -t - הצגת יציאות TCP. -u - הצג יציאות UDP. -n - הצג כתובות מספריות במקום לפתור מארחים. -l - הצג רק יציאות האזנה. -p - הצג את ה- PID ואת שם תהליך המאזין. מידע זה מוצג רק אם אתה מפעיל את הפקודה כמשתמש שורש או כ- sudo.

הפלט ייראה כך:

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 445/sshd tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 929/master tcp6 0 0:::3306:::* LISTEN 534/mysqld tcp6 0 0:::80:::* LISTEN 515/apache2 tcp6 0 0:::22:::* LISTEN 445/sshd tcp6 0 0:::25:::* LISTEN 929/master tcp6 0 0:::33060:::* LISTEN 534/mysqld udp 0 0 0.0.0.0:68 0.0.0.0:* 966/dhclient

העמודות החשובות בענייננו הן:

  • Proto - הפרוטוקול שמשמש את השקע. Local Address - Local Address ה- IP ומספר היציאה אליהם מקשיב התהליך. PID/Program name - ה- PID ושם התהליך.

sudo netstat -tnlp | grep:22

הפלט מראה שביציאת מכונה זו משמש שרת SSH:

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 445/sshd tcp6 0 0:::22:::* LISTEN 445/sshd

אם הפלט ריק זה אומר ששום דבר לא מקשיב ביציאה.

אתה יכול גם לסנן את הרשימה על סמך קריטריונים, למשל PID, פרוטוקול, מצב וכן הלאה.

netstat מיושן ומוחלף ב- ss ו- ip , אך עדיין זו הפקודות המשומשות ביותר לבדיקת חיבורי רשת.

בדוק יציאות האזנה עם ss

ss הוא netstat חדש. הוא חסר כמה מתכונות ה- netstat אך חושף יותר מצבי TCP וזה מעט מהיר יותר. אפשרויות הפקודה לרוב זהות כך שהמעבר מ- netstat ל- ss אינו קשה.

כדי לקבל רשימה של כל יציאות ההאזנה עם ה- ss , הקלד:

sudo ss -tunlp

התפוקה כמעט זהה לזו שדווחה netstat :

State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd", pid=445, fd=3)) LISTEN 0 100 0.0.0.0:25 0.0.0.0:* users:(("master", pid=929, fd=13)) LISTEN 0 128 *:3306 *:* users:(("mysqld", pid=534, fd=30)) LISTEN 0 128 *:80 *:* users:(("apache2", pid=765, fd=4), ("apache2", pid=764, fd=4), ("apache2", pid=515, fd=4)) LISTEN 0 128:22:* users:(("sshd", pid=445, fd=4)) LISTEN 0 100:25:* users:(("master", pid=929, fd=14)) LISTEN 0 70 *:33060 *:* users:(("mysqld", pid=534, fd=33))

בדוק יציאות האזנה עם lsof

lsof הוא כלי שורת פקודה רב עוצמה המספק מידע על קבצים שנפתחו על ידי תהליכים.

בלינוקס הכל קובץ. אתה יכול לחשוב על שקע כקובץ שכותב לרשת.

כדי לקבל רשימה של כל יציאות TCP ההאזנה עם סוג lsof :

sudo lsof -nP -iTCP -sTCP:LISTEN

האפשרויות בהן נעשה שימוש הן כדלקמן:

  • -n - אל תמיר מספרי יציאה לשמות פורטים. -p - אל תפתור שמות מארחים, הראה כתובות מספריות. -iTCP -sTCP:LISTEN - הצגת קבצי רשת בלבד עם מצב TCP LISTEN.

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 445 root 3u IPv4 16434 0t0 TCP *:22 (LISTEN) sshd 445 root 4u IPv6 16445 0t0 TCP *:22 (LISTEN) apache2 515 root 4u IPv6 16590 0t0 TCP *:80 (LISTEN) mysqld 534 mysql 30u IPv6 17636 0t0 TCP *:3306 (LISTEN) mysqld 534 mysql 33u IPv6 19973 0t0 TCP *:33060 (LISTEN) apache2 764 www-data 4u IPv6 16590 0t0 TCP *:80 (LISTEN) apache2 765 www-data 4u IPv6 16590 0t0 TCP *:80 (LISTEN) master 929 root 13u IPv4 19637 0t0 TCP *:25 (LISTEN) master 929 root 14u IPv6 19638 0t0 TCP *:25 (LISTEN)

מרבית שמות עמודות הפלט מסבירים את עצמם:

  • COMMAND , PID , USER - השם, ה- pid והמשתמש שמריץ את התוכנית המשויכת ליציאה. NAME - מספר היציאה.

כדי למצוא באיזה תהליך מקשיב ביציאה מסוימת, לדוגמה, ביציאה 3306 תשתמש בה:

sudo lsof -nP -iTCP:3306 -sTCP:LISTEN

הפלט מראה כי יציאה 3306 משמשת לשרת MySQL:

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 534 mysql 30u IPv6 17636 0t0 TCP *:3306 (LISTEN)

למידע נוסף בקר בדף lsof man וקרא על כל האפשרויות החזקות האחרות של הכלי הזה.

סיכום

הראינו לכם מספר פקודות בהן תוכלו להשתמש בכדי לבדוק באילו יציאות משתמשים במערכת שלכם, וכיצד ניתן למצוא באיזה תהליך מקשיב ביציאה מסוימת.

מסוף