דוגמאות לפקודת פינג בלינוקס בפועל

כלי לא ניתן להתעלם ממנו לניהול רשת הוא פקודת Ping ב-Linux. ייתכן וכבר השתמשת ב־`ping` לפני לתיקון בעיות בסיסיות—אך מה עושה הפקודה הזו בדיוק?

הפקודה `ping` שולחת בקשות לפרוטוקול שליטה ברשת (ICMP) לשרתים רחוקים או מקומיים וממתינה לתשובה. חוסר תגובה עשוי להעיד על בעיה בחיבור או בשרתים עצמם.

המשך קריאה וגלישה בדרכים המעשיות לשימוש בפקודת ping ב-Linux!

דרישות מוקדמות

המדריך הזה יהיה הדגמה מעשית. אם ברצונך להמשיך, וודא שיש לך מחשב Linux עם חיבור לאינטרנט. מדריך זה משתמש במחשב Ubuntu 20.04.

כמו כן, וודא שפתחת כבר מושב טרמינל על המחשב שלך.

בדיקת קישוריות הרשת המקומית

תדמיינו שאתם מפתחים אפליקציית אינטרנט. הבדיקה נכשלת כאשר אתם מנסים לגשת לאפליקציה דרך כתובת הלופבק של המארח (127.0.0.1). לפני שאתם מתפלשים בבעיות בפענוח האפליקציה, וודאו שפרוטוקול TCP/IP פועל באופן פנימי באמצעות הפקודה ping.

כתובות הלופבק המוגדרות כברירת מחדל הן 127.0.0.1 ו-0:0:0:0:0:0:0:1 (או ::1) עבור IPv4 ו-IPv6, בהתאמה.

כדי לבדוק את קישוריות כתובת הלופבק, הפעילו את הפקודה ping הבאה, ואז את כתובת הלופבק בטרמינל. פקודה זו מדגימה את השימוש הבסיסי ביותר של פקודת ping בלינוקס.

ping 127.0.0.1

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

Pinging the loopback address (127.0.0.1)

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

Pinging the loopback address (localhost)

כדי לסיים את פקודת ה־ping, לחצו על CTRL+C בטרמינל. אחרת, פקודת ה־ping תמשיך לרוץ באופן רציף.

הערה: אל תלחצו על CTRL+Z כדי לעצור את פקודת ה־ping. עשיית כן תעצור את הפקודה, אך התהליך יישאר רץ ברקע.

Terminating the ping command in Linux

הבנת פלט פקודת ה־Ping בלינוקס

לפני שממשיכים הלאה, ייתכן ויהיה ניאות מהפלט מבחינה ברורה במקום פשוט לפרש אותו כ "זה עובד". נא להפנות לתמונה למטה ולפירוט הערכים הבאים.

Ping command output
  • A (bytes) – Shows the ICMP echo request (packet) size in bytes.
  • B (from) – Shows the target host’s IP address from where the ping command receives the response.
  • C (icmp_seq) – Indicates the order of packet transmission. As you can see, ping sends the ICMP requests in sequence. The value shows icmp_seq=N, where N is the order number.
  • D (TTL) – Shows the ICMP request’s Time-To-Live (TTL) value. The default value is 64, which means that the request can only live up to a maximum of 64 hops and will expire after. The maximum value possible is 255.
  • E (time) – The total time (milliseconds) elapsed the request reached the destination and circled back to the source. This value is also known as the Round Trip Time (RTT). Notice that the time values are less than 0.1 milliseconds in this example since the target is the same machine. The time value increases naturally when the ping destinations are remote or have an internet address.
  • F (statistics) – Shows the summary and statistics of the ping command results. The summary shows the number of packets transmitted and received, packet loss percentage, and the total time. The bottom line shows the minimum, average (mean value), maximum, and standard deviation of the total RTT.

עקיפת גרסת הפרוטוקול האינטרנטי

הפקודה ping משתמשת ב-IPv4 כברירת מחדל. אך מה קורה אם אתה בודק את תאימות היישום שלך עם IPv6? כדי לכפות על הפקודה ping להשתמש ב-IPv6, עליך לציין את האפשרות -6 לפקודת ping שלך ב-Linux, כפי שאתה יכול לראות בקוד למטה.

ping -6 localhost

כפי שניתן לראות למטה, התשובה מציינת שהתגובה הגיעה מכתובת הלולאת IPv6 (::1).

Pinging the IPv6 loopback address

במקום האפשרות -6, האפשרות -4 מכפה על ping להשתמש ב-IPv4. אך מכיוון ש-ping ברירת המחדל היא IPv4, בדרך כלל אין צורך לציין את האפשרות -4.

הגבלת מספר התגובות

בדוגמאות הקודמות, עליך ללחוץ על CTRL+C כדי לסיים את הפקודה ping מכיוון שהיא תרוץ באופן רציני אחרת.

האפשרות -c מאפשרת לך לציין את מספר התגובות שהפקודה ping תקבל לפני שהיא תפסיק. למה להשתמש באפשרות זו? במקרים מסוימים, תרצה לבדוק איך המערכת שלך עונה ל-10, 100, 1000 חבילות ICMP, וכן הלאה.

הפעל את הפקודה הבאה כדי לשלוח חמישה חבילות ICMP למארח היעד. החלף 5 במספר התגובות שברצונך לקבל לפני שהיא תפסיק.

ping -c 5 localhost

כפי שניתן לראות למטה, הפקודה ping הפסיקה לאחר הבקשה החמישית (icmd_seq=5), ולא הייתה צורך ללחוץ על CTRL+C כדי לסיים אותה.

Ping with a limited request count

התאמת המרווח בין הבקשות

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

הפקודה ping שולחת את בקשת ICMP הבאה שנייה אחת אחרי שהקודמת הושלמה כברירת מחדל. כדי להתאים את העיכוב, עליך לציין את האפשרות -i ולאחר מכן את ערך העיכוב בשניות.

לדוגמה, הריץ את הפקודת ping הבאה כדי לשלוח חמישה בקשות ICMP עם מרווח של שתי שניות בין הבקשות.

ping -c 5 -i 2 localhost

דוגמה נוספת, הריץ את הפקודת ping הבאה כדי לשלוח חמישה בקשות ICMP עם מרווח של חצי שנייה בין כל בקשה.

ping -c 5 -i 0.5 localhost

השוואת תוצאות של שתי הפקודות שיש להן מרווחים שונים מציגה את ההבדל בין ערכי ה-time הכוללים.

Comparing ping results with different intervals

מדמה התקפת Flood

A ping flood is a type of Denial of Service (DoS) attack in which the attacker attempts to overwhelm a targeted device with ICMP packets. The attack aims to overwhelm the targeted machine to respond to so many requests that it becomes overloaded and unavailable to legitimate users.

ניתן למדוד איך המערכת שלך מגיבה להתקפה פלאודית כדי לבדוק. אל תדאג, אף על פי שזהו סימולציה של הפקודת ping, ניתן לעצור אותה בכל עת על ידי לחיצה על CTRL+C.

הרץ את הפקודה הבאה על המחשב המקומי שלך כדי לראות כמה בקשות המכשיר שלך יכול לטפל בהן לכל שנייה. האפשרות -f משמעה לשלוח חבילות ping מהר יחסית וללא הגבלה של מספר מסוים.

החלף את localhost בכתובת ה-IP או שם המארח שברצונך לבדוק. בדוגמה זו, הסימולציה עובדת על localhost בלבד. הרץ את הפקודה של ping כשעה חמישה שניות ולאחר מכן לחץ על CTRL+C כדי לסיים.

הפקודה ping -f מחייבת שתהיה משתמש ראשי או שיש לך הרשאות sudo.

ping -f localhost

כפי שניתן לראות מתחת, פקודת ה-Ping הצליחה לשלוח ולקבל 124,685 חבילות ICMP בתוך 4276 מילישניות עם אפס אובדן חבילות. די טוב, לא? אך, בשימוש במצב חי, ייתכן שתראו כמה אובדן של חבילות. אובדן חבילות הוא לא נמנע מאחר שהרשת אינה מושלמת.

Simulating a ping flood attack

בדיקת החיבור לאינטרנט

כולם משתמשים באינטרנט באופן מסוים, נכון? נניח שאתם מנסים לטעון אתר באמצעות הדפדפן שלכם, אך זמן טעינת העמוד מרגיש אטי. הסימפטום מרמז על כך שהרזולוציית DNS עובדת, אך משהו משפיע על מהירות הרשת.

אבחון הבעיה בלעדי כלי צד שלישי יכול לכלול את פקודת ה-Ping. שימוש בפקודה דומה לכאשר אתה בודק את החיבור לרשת המקומית. אך במקום למטרת כתובת הלולאה, תציין כתובת IP ציבורית או כתובת אינטרנטית.

הריצו את הפקודה הבאה כדי לבצע Ping לאתר ציבורי חיצוני. החליפו adamtheautomator.com בכתובת אינטרנט אחרת כפי שתרצו.

ping -c 5 adamtheautomator.com

מיד תשימו לב שערך הזמן גבוה יחסית לעת שבה אתם מבצעים Ping אל המארח המקומי. הגבירה זו בזמן הנדרש מתרחשת עקב כך שכתובת היעד adamtheautomator.com לא נמצאת באותו מארח ואף לא באותה רשת.

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

הנה כמה שגיאות נפוצות ואיך לאבחן אותן.

  • יעד אירח אינגובל – השגיאה הזו אומרת שאין מסלול אל יעד המארח. השגיאה יכולה לקרות אם המארח או הדומיין לא זמין.
  • בקשה נכשלה במהלך הזמן – השגיאה הזו אומרת שהבקשה אל יעד המארח לקחה יותר זמן מדי (לקחה מעל 4 שניות או 4000 מילישניות), והחיבור פג תוקף. השגיאה יכולה לקרות אם המארח היעד הוא עמוס מדי להגיב, יש חוסם אש מונע את החיבור או חומרת רשת פגומה (כגון כבל, נתב, וכו ').
  • מארח לא ידוע – השגיאה הזו אומרת שה-DNS לא יכול לפתור את שם המארח לכתובת IP. ודא שהזנת את השם הנכון. אם יש לך חשש שהנתב שלך לא עובד כראוי, נסה לאתחל את הנתב שלך.
  • תם תוקף במהלך ההעברה – השגיאה הזו אומרת שהבקשה ICMP פג תוקף לפני שהגיעה ליעדה. החבילת ping שלך יורדת לאפס (0) לפני שהגעה למארח היעד. ברוב המקרים, התקנות לא נכונות בטבלת המסלול שלך עשויות לגרום לשגיאה זו. שקול בדיקת טבלת המסלול שלך כדי לראות אם יש בעיה.

במקרה שלא ידעת: השחקנים מתייחסים ל-ping כלחיבורם לשרת המשחק בקהילת הגיימינג. Ping נמוך אומר חיבור תגובה יותר גבוה, במיוחד במשחקים מהירים. Ping גבוה מציין חיבור פחות גבוה ויכול לגרום לתחושה שלעצלנות במשחק.

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

שמירת פלט ה-Ping לקובץ

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

האופרטורים להפניה אלו הם:

התו (>), שידרוג שיכתוב על קובץ התוכן הקיים, ו-;

התו (>>), שידרוג שיכתוב את הפלט כתוספת לתוכן הקיים.

אך למה תרצה לשמור את תוצאות ה-ping לקובץ? בעיקר לצורך תיעוד וניתוח מאוחר יותר באמצעות עורך טקסט או מנתח לוגים.

בנוסף, תוכל להשתמש בתוכנת גיליון נתונים כדי ליצור גרף שמציג איך הזמן של ה-ping משתנה לאורך זמן.

הרץ את הפקודה הבאה כדי לשמור את תוצאת ה-ping לקובץ. הפקודה תכתוב את כל הפלט התקני מהפקודה ping לקובץ בשם log.txt בדיסק.

ping -c 10 localhost > log.txt

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

כעת, פתח את קובץ log.txt בעורך טקסט, כגון nano. או הצג את תוכן הקובץ על ידי הרצת הפקודה cat.

# פתחו בעורך טקסט
nano log.txt
# או
# הצגת התוכן על המסך
cat log.txt
Opening the ping output file in a text editor
Displaying the ping output file contents on the screen

סיכום

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

בנקודה זו, אתה אמור להבין טוב כיצד פקודת ה-ping עובדת ואיך זה יכול להיות שימושי. אך לפני שתתחיל להפקיד בפקודת ping לכל דבר שנמצא במרחק הראייה שלך, ישנם כמה כללים שעליך להפעיל בקבוצות האבטחה שלך כדי לאפשר תעבורת ICMP.

תודה על הקריאה ושמח למדינך!

Source:
https://adamtheautomator.com/ping-command-in-linux/