دستور Ping در لينوكس

دستور Ping در لينوكس

زهرا عزتی

دستور ping یکی از پرکاربردترین ابزارها برای عیب یابی ، آزمایش و تشخیص مشکلات اتصال به شبکه است. ping با ارسال یک یا چند ICMP كه مخفف (Internet Control Message Protocol) است ، درخواست Packet را به یک IP مقصد مشخص در شبکه ارسال می کند و منتظر پاسخ است. هنگامی که مقصد ، Packet را دریافت می کند با Echo ICMP پاسخ می دهد. ping بخشی از بسته iputils (یا iputils-ping) است که تقریباً در همه توزیع های لینوکس از پیش نصب شده است. همچنین در ویندوز ، macOS و FreeBSD نیز موجود است. با ما در شتابان هاست همراه باشيد.

نحوه استفاده از دستور ping

نحوه دستور ping به شرح زیر است:

ping [OPTIONS] DESTINATION

برای نشان دادن بهتر ، نحوه عملکرد دستور ping ، باید به ping google.com پی ببریم:

ping google.com

خروجی چیزی شبیه به این خواهد بود:

PING google.com (172.217.22.206) 56(84) bytes of data.
۶۴ bytes from muc11s01-in-f14.1e100.net (172.217.22.206): icmp_seq=1 ttl=53 time=40.2 ms
۶۴ bytes from muc11s01-in-f14.1e100.net (172.217.22.206): icmp_seq=2 ttl=53 time=41.8 ms
۶۴ bytes from muc11s01-in-f14.1e100.net (172.217.22.206): icmp_seq=3 ttl=53 time=47.4 ms
۶۴ bytes from muc11s01-in-f14.1e100.net (172.217.22.206): icmp_seq=4 ttl=53 time=41.4 ms
^C
--- google.com ping statistics ---
۴ packets transmitted, 4 received, 0% packet loss, time 7ms
rtt min/avg/max/mdev = 40.163/42.700/47.408/2.790 ms

دستور ping نام دامنه را در یک آدرس IP حل كرده و شروع به ارسال Packets ICMP به IP مقصد می کند. اگر IP مقصد قابل دستیابی باشد ، به آن پاسخ می دهد و دستور ping خطی را چاپ می کند که شامل قسمت های زیر است:

  • تعداد byte هاي داده پیش فرض ۵۶ است ، که به ۶۴ byte داده ICMP ترجمه می شود – ۶۴ bytes
  • آدرس IP مقصد – از muc11s01-in-f14.1e100.net (172.217.22.206).
  • ICMP شماره دنباله : icmp_seq=1
  • زمان – ttl = 53
  • زمان ping ، در میلی ثانیه اندازه گیری شده است که زمان سفر دور برای رسیدن به Packet هاست و پاسخ به بازگشت به فرستنده است. – زمان = ۴۱٫۴ ms.

به طور پیش فرض ، فاصله بین ارسال یک Packet جدید یک ثانیه است.

دستور ping تا زمانی که وقفه ای دریافت نشود ،Packet های ICMP را به آدرس IP مقصد  ارسال می کند. برای متوقف کردن دستور ، کافی است کلید ترکیبی Ctrl + C را بزنید. هنگامی که دستور متوقف می شود ، یک آماری از جمله : درصد از دست رفتن Packet را نشان می دهد. از بین رفتن Packet به این معنی است که داده ها در جایی از شبکه افت كرده و نشان دهنده مسئله درون شبکه است. در صورت از بین رفتن Packet ، می توانید از دستور traceroute برای مشخص کردن محل افت Packet استفاده کنید.

اگر ping پاسخی را برنگرداند ، به این معنی است که ارتباطات شبکه برقرار نشده است. وقتی این اتفاق بیفتد ، همیشه به معنای فعال بودن IP مقصد نیست. ممکن است برخی از هاست ها ، داراي firewall باشند که مانع ترافیک ICMP می شود یا تنظیم شده است که به درخواست های ping پاسخ ندهد. در صورت موفقیت ، دستور ping با کد ۰ خارج مي شود؛ در غیر این صورت ، با کد ۱ یا ۲ از آن خارج می شوید.

تعداد Packets را مشخص کنید

همانطور که قبلاً نیز گفته شد ، به طور پیش فرض ، ping ارسال پیام های ICMP تا زمانی که سیگنال قطع را دریافت کند ، ادامه خواهد داد. برای مشخص کردن تعداد Packet ها ارسال شده ،  ping خارج می شود ، از گزینه -c و به دنبال آن تعداد Packet ها استفاده کنید:

ping -c 1 DESTINATION

به عنوان مثال ، برای ping linuxize.com فقط یک بار استفاده می کنید:

ping -c 1 linuxize.com

منبع اتصال را مشخص کنید

رفتار پیش فرض دستور ping ارسال Packet های ICMP از طریق مسیر پیش فرض است. اگر چندین خط اتصال در دستگاه خود دارید می توانید منبع اتصال را با گزینه -I مشخص کنید:

ping -I INTERFACE_NAME DESTINATION

دستور زیر با استفاده از em2 به عنوان واسط مبدأ ping linuxize.com را در اختیار شما قرار می دهد:

ping -I em2 linuxize.com

پروتکل اینترنت را مشخص کنید

هنگامی که دستور ping را اجرا می کنید ، Packet به تنظیمات DNS دستگاه شما از IPv4 یا IPv6 استفاده خواهد کرد.

برای مجبور کردنping به استفاده از IPv4 ، از گزینه -۴ عبور کرده یا از نام مستعار ping4 خود استفاده کنید:

ping -4 DESTINATION

برای IPv6 ، گزینه -۶ را تصویب کنید یا از ping6 استفاده کنید:

ping -6 DESTINATION

ما را در شتابان هاست دنبال كنيد.