آموزش دستور ping در لینوکس با استفاده از مثال های کاربردی
اگر به دنبال بررسی این هستید که دستگاه شما به اینترنت وصل است یا وبسایت یا دستگاه موردنظر قادر به پاسخگویی به درخواست های شما است یا نه، دستور ping در لینوکس یکی از اصلی ترین دستورات لینوکس است که می تواند شما را در این مسیر همراهی کند.
ایده کلی دستور پینگ در لینوکس این است که یک یا چند بسته ICMP به دستگاه موردنظر ارسال می کند و منتظر پاسخ آن می ماند که دریافت پاسخ ICMP echo به معنای برقراری اتصال است. البته، سینتکس و آپشن های این دستور می توانند به شما کمک کنند که به جزئیات بیشتری برای تست و تشخیص مشکلات شبکه دست پیدا کنید.
به این صورت که علاوه بر بررسی فعال یا غیرفعال بودن دستگاه موردنظر می توانید تاخیر رفت و برگشت، درصد از دست رفتن بسته ها و انحراف استاندارد میانگین را هم بررسی کنید و از این اطلاعات برای شناسایی و رفع مشکلات شبکه استفاده کنید.
ولی در کل، اکثر کاربران لینوکس برای بررسی میزان تاخیر اتصالات خود از دستور ping استفاده می کنند. روبرو شدن با تاخیر و از دست رفتن داده ها از جمله مشکلاتی است که می تواند اهمیت روش های کاهش پینگ را برای شما پررنگ تر کند و سرور مجازی یکی از بهترین روش هایی است که می توانید انتخاب کنید. خرید سرور مجازی لینوکس قدرتمند و پرسرعت می تواند پایانی برای تمام نگرانی ها و ناراحتی های شما باشد و انتظارات شما را در عرض سه سوت برآورده کند.
* جا دارد به این نکته هم اشاره کنیم که این دستور علاوه بر لینوکس در سیستم عامل های دیگری مثل ویندوز و مک هم موجود و قابل استفاده است.
حالا بیایید با استفاده از مثال های کاربردی با نحوه استفاده از دستور ping در لینوکس آشنا شویم:
دستور پینگ چیست؟
دستور ping یکی از دستورات پایه ای لینوکس است که برای بررسی اتصال و پایداری شبکه استفاده می شود. پس هر موقع که از اتصال خود مطمئن نبودید و خواستید مطمئن شوید که اتصال شما با ip یا دامنه موردنظر برقرار است یا نه، می توانید این دستور را اجرا کنید. بررسی وضعیت اتصال به شبکه موردنظر اصلی ترین کاربرد دستور ping است و با اینکه موقع مشاهده چند خروجی اولیه که در مورد پکت های ارسالی است، می توان از اتصال موفق مطمئن شد:
ولی کافیست با فشردن دکمه ترکیبی Ctrl + C این پروسه ارسال پکت را متوقف کنید تا به اطلاعات آماری مفیدی در مورد درصد از دست رفتن داده ها و زمان ارسال و دریافت پاسخ (rtt) دست پیدا کنید و از این اطلاعات برای بررسی عملکرد شبکه استفاده کنید.
همه این اطلاعات از طریق ارسال درخواست های ICMP echo و انتظار برای پاسخ انجام می شود که اگر اتصال برقرار باشد، هر درخواست یک پاسخ اکو دریافت می کند و این پروسه به کار خود یعنی ارسال درخواست و دریافت پاسخ ادامه می دهد تا زمانی که شما آن را متوقف کنید.
اگر کنجکاو هستید که اطلاعات بیشتری در مورد پینگ و نحوه کار آن کسب کنید می توانید مقاله ای که در مورد پینگ تهیه کرده ایم را مطالعه کنید.
سینتکس و آپشن های دستور ping در لینوکس
سینتکس کلی دستور پینگ به صورت زیر است:
ping [option] [hostname] or [IP address]
این بستگی به ترجیح شما دارد که دستگاه یا شبکه موردنظر را با آی پی مشخص کنید یا اینکه به خاطر راحتی بیشتر از اسم هاست استفاده کنید. مهم این است که آدرس درستی را وارد کنید تا اطلاعات خروجی برای شما مفید واقع شوند.
آپشن ها هم برای مدیریت نحوه رفتار پینگ استفاده می شوند که در ادامه به چند مورد از مهم ترین آنها اشاره می کنیم:
c: این آپشن برای مشخص کردن تعداد پکت های ارسالی استفاده می شود. اگر این آپشن را مشخص نکنید، دستور ping بی نهایت بار پکت ارسال می کند تا زمانی که شما آن را با Ctrl + C متوقف نکنید.
s: این آپشن برای تعیین سایز پکت ها استفاده می شود که واحد آن بر حسب بایت است.
i: اگر قصد دارید ارسال پکت ها را به صورت زمان بندی شده جلو ببرید، به عنوان مثال هر ۵ ثانیه یک بار، پکت ارسال کنید، می توانید از این آپشن کمک بگیرید.
t: این آپشن برای تعیین زمان TTL هر کدام از پکت ها استفاده می شود. در واقع، مقدار این آپشن تعیین می کند که بسته ها قبل از منقضی شدن، حداکثر از چند هاب عبور کنند.
q: اگر از آپشن c استفاده کرده اید و صرفاً می خواهید خلاصه اماری این دستور را ببینید، باید q را هم به دستور ping در لینوکس اضافه کنید.
w: برای اینکه عملیات پینگ بعد از یک مدت مشخص (برحسب ثانیه) به صورت خودکار متوقف شوند، می توانید از این آپشن استفاده کنید.
f: اگر می خواهید بسته ها را در سریع ترین حالت ممکن ارسال کنید، این آپشن برای شما بسیار مفید است چون حالت flood را فعال می کند.
W: برای تعیین زمان انتظار برای دریافت هر پاسخ، باید از این آپشن استفاده کنید.
p: اگر قصد دارید بسته ها را به شکل دلخواه پر کنید، باید از این آپشن استفاده کنید. مثلاً برای پر کردن بسنه با ۱، باید مقدار ff را برای آپشن p لحاظ کنید.
بعد از آشنایی با آپشن ها، نوبت به بررسی مثال های کاربردی و نحوه استفاده از این آپشن ها می رسد.
مثال های کاربردی از دستور ping در لینوکس
بیایید با پایه ترین مثال دستور ping شروع کنیم و خروجی آن را تحلیل کنیم:
ping google.com
خروجی این دستور حاوی اطلاعات زیر است:
۱. آدرس آی پی مقصد
۲. شماره بسته ارسالی
۳. زمان ttl یا حداکثر تعداد هاب عبوری برای هر بسته قبل از منقصی شدن
۴. مدت زمان رسیدن درخواست به مقصد و برگشت پاسخ به مبدا
۵. تعداد پکت های ارسال شده
۶. تعداد پکت های دریافت شده
۷. درصد از دست رفتن داده ها
8. حداقل/ میانگین/ حداکثر / انحراف معیار -> زمان پاسخ گویی
با یادگیری نحوه تحلیل خروجی می توانید آپشن های دیگر را هم وارد عمل کنید و رفتار پینگ را تحت کنترل نگه دارید.
پینگ لوکال هاست برای بررسی شبکه محلی
اگر در دسترسی به یک وبسایت یا دستگاه ریموت به مشکل خورده اید، با پینگ کردن لوکال هاست می توانید اتصال به شبکه را بررسی کنید. برای این کار می توانید از سه دستور زیر استفاده کنید:
ping 0
ping localhost
ping 127.0.0.1
خروجی پینگ هر ۳ دستور یکی است و شما را از وضعیت اتصال به اینترنت مطمئن می کند.
تعیین تعداد پینگ در لینوکس
برای این کار باید از آپشن c استفاده کنید و تعداد را به آن اضافه کنید:
ping -c 5 google.com
تعیین سایز بسته های ارسالی
سایز بسته ها بر حسب بایت مشخص می شود:
ping -s 500 google.com
این دستور ping برای تست عملکرد شبکه در لینوکس مفید است و می توانید میزان توانایی شبکه را در برابر بسته های بزرگتر بسنجید.
تغییر فاصله زمانی بین هر پینگ
زمان بر حسب ثانیه مشخص می شود:
ping -i 2 google.com
دریافت خلاصه اطلاعات آماری (بدون عملیات ping)
برای استفاده از آپشن q، باید محدودیت تعداد پینگ را هم مشخص کنید تا فرصت به خلاصه آماری برسد و به شما نمایش داده شود:
ping -c 3 -q google.com
تعیین محدودیت زمانی برای عملیات ping
برای اینکه عملیات پینگ بعد از یک مدت مشخص به طور خودکار متوقف شود، باید آپشن w را همراه با تعداد ثانیه موردنظر به دستور ping اضافه کنید:
ping -w 3 google.com
افزایش سرعت ارسال پکت ها با دستور ping
برای این کار می توانید حالت flood را فعال کنید تا عملکرد شبکه را موقع بار سنگین تست کنید. اجرای دستور ping با آپشن f یا همان flood به دسترسی روت نیاز دارد و به همین خاطر باید sudo را هم به دستور اضافه کنید:
sudo ping -f google.com
اضافه کردن timestamp به خروجی هر عمل ping
برای این کار باید از T و یکی از مقدارهای tsandaddr ،tsonly و tsprespec را برای آن لحاظ کنید:
ping -T tsonly -c 2 google.com
ping -T tsandaddr -c 2 google.com
البته آپشن D هم تایم استمپ را به ابتدای عملیات پینگ اضافه می کند:
ping -D google.com
تعیین زمان انتظار برای پاسخ
این زمان بر اساس ثانیه مشخص می شود:
ping -c 5 -W 3 google.com
تعیین رابط شبکه برای اجرای دستور ping
برای این کار باید از آپشن I استفاده کنید. به عنوان مثال اگر رابط شبکه em2 را درنظر دارید، باید دستور پینگ را به صورت زیر اجرا کنید:
ping -I em2 google.com
نحوه پر کردن بسته ارسالی به مقصد
با استفاده از آپشن p می توانید داده های موجود در بسته های ارسال به دستگاه موردنظر را خودتان مشخص کنید.
مثلا اگر می خواهید متن hello را در بسته قرار دهید، باید آن را به هگزادسیمال تبدیل کنید و الگوی هگزادسیمال آن را به دستور ping اضافه کنید که برای این کار می توانید از مبدل هایی مثل rapidtables استفاده کنید:
ping -p 68656C6C6F google.com
توجه داشته باشید که بسته ها باید کمتر از مقدار حداکثر MTU (Maximum Transmission Unit) باشند وگرنه بسته ها به صورت قطع و وصل شده ارسال می شوند و کیفیت و سرعت شبکه افت می کند.
تعیین حداکثر سایز بسته داده ای قابل ارسال کمتر از MTU
برای این کار باید سایز موردنظر را تست کنید و بعد ببینید که شبکه پتانسیل ارسال آن را دارد یا با خطا مواجه می شود.
پس باید از دستور زیر برای کشف MTU استفاده کنید.
ping -M do -s [packet_size] [destination]
مثلا اگر می خواهید ببینید که بسته داده ای با سایز ۱۵۰۰ بایت قابل ارسال است یا نه، می توانید از دستور زیر استفاده کنید:
ping -M do -s 1500 google.com
اگر این دستور با خطای “packet needs to be fragmented but DF set” همراه شد، نشاندهنده این است که این بسته قابل ارسال نیست. سایز را کم کنید و دوباره امتحان کنید. این کار را آنقدر ادامه دهید تا اینکه از حداکثر سایز MTU مطلع شوید.
تعیین حداکثر تعداد هاب عبوری برای هر پکت
برای این کار باید از آپشن t استفاده کنید:
ping -c 5 -t 64 google.com
شما می توانید هر مقداری از بین ۱ تا ۲۵۵ را برای این آپشن قرار دهید. اگر این آپشن را با 0 مقدار دهی کنید، بسته به همان میزبان یا دستگاه مبدا محدود می شود و مسیری طی نمی کند.
پینگ تمام آدرس های آی پی متصل به شبکه محلی
برای اینکار باید از آپشن b که نماد broadcast است، استفاده کنید:
ping -b 192.168.0.0
تعیین پروتکل اینترنت برای دستور ping در لینوکس
برای درخواست آدرس IPv4 یا IPv6 باید ۴ یا ۶ را به دستور ping در لینوکس اضافه کنید و بعد نام میزبان هم، پروتکل مربوط به آن را وارد کنید:
ping -6 hostname/IPv6
ping -4 hostname/IPv4
پخش صدا موقع دریافت پاسخ از هاست موردنظر
این قابلیت دستور ping موقع خطایابی اتصال شبکه بدون نگاه کردن به صفحه ترمینال کارساز است.
ping -a google.com
هر موقع که صدا قطع شد، متوجه می شوید که اتصال هم قطع شده است.
با اینکه سعی کردیم تمام مثال های کاربردی دستور ping در لینوکس را در اختیار شما قرار دهیم ولی اگر باز هم علاقمند به یادگیری مثال های دیگر این دستور بودید می توانید حالت ترکیبی از آنها را امتحان کنید. البته با دستورات زیر می توانید به آپشن ها و امکانات دیگر این دستور دست پیدا کنید:
man ping
ping –help
کلام آخر
دستور ping در لینوکس یکی از پرکاربردترین ابزارها برای تست وضعیت اتصال و خطایابی مشکلات شبکه است. این دستور به غیر از لینوکس در بیشتر سیستم های ویندوز و مک هم قابل استفاده است و اطلاعات موردنیاز شما در مورد وضعیت شبکه را ارائه می دهد. با اضافه کردن آپشن های مناسب به دستور می توانید رفتار دستور پینگ را بر اساس نیازهای خود مدیریت کنید و به خروجی دلخواه خود برسید.
از اینکه تا انتهای مقاله با ما همراه بودید، از شما متشکریم. امیدواریم که مطالعه این مقاله برای شما مفید واقع شده باشد. در صورت داشتن هرگونه سوال، درخواست و نیاز به راهنمایی، می توانید با ثبت نظر خود، با ما وارد ارتباط شوید تا هر چه زودتر به شما پاسخ دهیم.
سوالات متداول:
برای اینکه تعداد عملیات پینگ را محدود کنم باید از چه آپشنی استفاده کنم؟
برای اینکه تعداد عملیات ارسال درخواست - دریافت پاسخ را محدود کنید باید آپشن c را به دستور اضافه کنید و تعداد موردنظر را هم بعد از آن وارد کنید.