شما برای مطالعه این مقاله فقط 7 دقیقه وقت نیاز دارید

tracroute-command-in-linux

آموزش استفاده از دستور traceroute در لینوکس

5/5 - (1 امتیاز)

اگر به دنبال یک ابزار عالی برای شناسایی و ردیابی مسیر بین مبدا و مقصد مشخص هستید تا از گزارشات خروجی برای خطایابی مسائلی مثل تاخیر بالا، از دست دادن پکت ها و اتصال ناموفق استفاده کنید، دستور traceroute در لینوکس می تواند به کمک شما بیاید.

ابزار traceroute با ارسال پکت به سمت مقصد، مسیر بین مبدا و مقصد را در قالب hop ها یا دستگاه های موجود در مسیر نشان می دهد که با بررسی جزئیات مربوط به هر هاپ می توان مسیری که بسته از طریق آن به مقصد رسیده است را به طور دقیق تر شناسایی کرد.

پیش نیازهای استفاده از ابزار traceroute در لینوکس

نصب traceroute در توزیع های مختلف لینوکس

ابزار traceroute به صورت پیش فرض در اکثر توزیع های لینوکس نصب است و آماده استفاده شماست. ولی برای اینکه از این قضیه مطمئن شوید، می توانید از دستور زیر استفاده کنید:

which traceroute

اگر بعد از بررسی خروجی، متوجه شدید که سیستم لینوکس شما مجهز به این ابزار نیست، می توانید از دستورات زیر برای نصب traceroute در توزیع لینوکس خود استفاده کنید.

توزیع های مبتنی بر دبیان مثل اوبونتو 

sudo apt install traceroute

Centos

sudo yum install traceroute

فدورا

sudo dnf install traceroute

توزیع های مبتنی بر آرچ لینوکس

sudo pacman -S traceroute

توزیع های مبتنی بر Open SUSE

sudo zypper in traceroute

حالا که از وجود ابزار traceroute در سیستم لینوکس خود مطمئن شدید، وقت آن است که با سینتکس و نحوه استفاده از آن آشنا شوید.

سینتکس دستور traceroute در لینوکس

سینتکس پایه دستور traceroute به صورت زیر است:

traceroute [options] destination

اصلی ترین پارامتر این دستور، آدرس مقصد است که قرار است پروسه ارسال بسته و ردیابی مسیر بر اساس آن انجام شود.

اما آپشن های زیادی هم وجود دارند که می توانید متناسب با نیاز خود به دستور اضافه کنید و رفتار آن را به شکل دلخواه تغییر دهید.

آپشن های اصلی دستور traceroute

آپشنکاربرد
I-ارسال  ICMP Echo به جای بسته های UDP (پیش فرض)
T-ارسال بسته های TCP SYN به جای UDP یا ICMP
m-تغییر حداکثر هاپ پیش فرض (30)
n-عدم resolve یا ترجمه آدرس های آی پی به اسم های دامنه
p-تعیین پورت مقصد
w-تغییر زمان انتظار پیش فرض (5 ثانیه)
f-تعیین اولین TTL برای شروع نمایش مسیر
s-اضافه کردن آدرس مبدا جایگزین 
g-تعیین آدرس دروازه در کنار دامنه
F-غیرفعال سازی تکه تکه شدن بسته 

برای مشاهده آپشن های دیگر دستور Traceroute می توانید از دستورات زیر استفاده کنید: 

traceroute -h

man traceroute

نحوه تحلیل خروجی دستور Traceroute

بهتر است قبل از شروع به بررسی مثال های کاربردی، نحوه خواندن خروجی آن را یاد بگیرید تا موقع امتحان کردن اشکال مختلف دستور Traceroute، به خوبی از عهده تحلیل خروجی های مربوط به هر کدام از آنها بربیایید.

برای بررسی خروجی این دستور از یک مثال پایه و بدون آپشن استفاده می کنیم:

traceroute 8.8.8.8

بعد از اجرای این دستور باید منتظر بمانید تا خطوط مربوط به هاپ های موجود در مسیر به طور کامل در خروجی نمایش داده شوند.۳ بخش اصلی دستور traceroute در لینوکس

در این مثال، با ۱۴ هاپ به مقصد رسیدیم که هر هاپ حاوی یک سری جزئیات است:

۱. شماره هاپ یا پرش – ترتیب روترهای موجود در مسیر

۲. زمان RTT برای هر ۳ پکت udp – زمان (برحسب میلی ثانیه) دریافت پاسخ از هر هاپ

۳.  شناسه دستگاه – آدرس آی پی یا اسم روتر موجود در هر هاپ

حالا اگر بخواهیم مسیر مربوط به این خروجی را بررسی کنیم، مسیر آن به ۵ قسمت تقسیم می شود:بخش آدرس های دستگاه های هر هاپ

بخش ۱ – شبکه محلی

بخش ۲ –  ISP شبکه محلی

بخش ۳ – شبکه اینترنت

بخش ۴ – شبکه میزبان مقصد

بخش ۵ – آدرس مقصد

پس متوجه شدید که بسته ها ابتدا از شبکه محلی خارج می شوند و در اینترنت قرار می گیرند. سپس، از طریق دستگاه ها و روتر های موجود در شبکه اینترنت، وارد شبکه مقصد می شوند و در نهایت به دستگاه مقصد می رسند. 

مثال های کاربردی از دستور Traceroute

مثال های این بخش از ساده تا پیشرفته ترتیب بندی شده اند که با امتحان کردن آنها می توانید مهارت استفاده از این ابزار را تا حد زیادی تقویت کنید.

ردیابی مسیر مقصد موردنظر

traceroute google.com

خروجی این دستور، مسیر سیستم شما تا سرور گوگل را ردیابی می کند و به شما می گوید که چند hop یا جهش انجام شده است و هر کدام از آنها چقدر طول کشیده است.

البته به جای اسم دامنه، می توانید از آدرس آی پی هم استفاده کنید و مسیر بین مبدا و مقصد را ردیابی کنید:

traceroute 8.8.8.8

تغییر نوع پکت های ارسالی

ابزار traceroute در حالت پیش فرض برای ردیابی مسیر از بسته های UDP استفاده می کند. ولی اگر می خواهید نوع این بسته ها را به TCP یا ICMP تغییر دهید، اختیار با شماست.

برای ارسال بسته های TCP از دستور زیر استفاده کنید:

traceroute -T google.com

جهت ارسال بسته های ICMP هم می توانید از دستور زیر استفاده کنید:

traceroute -I google.com

تنظیم تعداد بسته های ارسالی برای هر هاپ

Traceroute به طور پیش فرض برای تست هر هاپ، ۳ بسته UDP ارسال می کند ولی شما می توانید با استفاده از آپشن q این پیش فرض را تغییر دهید.

کلیک کنید  3 روش آموزشی اتصال دامنه به سرور مجازی لینوکس

به عنوان مثال، اگر قصد دارید سرعت هر تست را افزایش دهید، می توانید تعداد بسته های udp هر تست را به ۱ تغییر دهید:

traceroute -q 1 google.com

دستور traceroute با آپشن qیا اگر به توازن بار مسیر مشکوک هستید، می توانید تعداد کوئری هر هاپ را افزایش دهید تا به نتایج دقیق تری برسید.

تنظیم مقدار اولیه TTL

در حال پیش فرض، مسیر بین مبدا تا مقصد از هاپ اول شروع می شود تا اینکه به آخرین هاپ که مربوط به مقصد است، برسد. اگر می خواهید چند هاپ اولیه را رد کنید و از یک هاپ مشخص به بعد، مسیر خروجی را ردیابی کنید، می توانید از آپشن f کمک بگیرید.

به عنوان مثال، برای مشاهده هاپ ۱۰ ام به بعد، می توانید دستور traceroute را به صورت زیر اجرا کنید:

traceroute -f 10 google.com

هاپ اول در خروجی tracerouteمخفی سازی اسم دستگاه های موجود در هر هاپ

اگر موقع بررسی آدرس دستگاه هر مقصد، علاقه ای به مشاهده اسم آنها ندارید و صرفاً می خواهید آدرس آی پی هر کدام از آنها را مشاهده کنید و از این طریق، گزارشات و داده های خروجی را دقیق تر بررسی کنید، می توانید از آپشن n کمک بگیرید:

traceroute -n google.com

تغییر حداکثر تعداد هاپ 

حداکثر هاپ پیش فرض دستور traceroute روی 30 تنظیم است که البته با آپشن m قابل تغییر است.

مثلاً اگر مقصد موردنظر شما با حداکثر هاپ پیش فرض سیستم قابل دسترس نباشد، می توانید این حداکثر را به یک مقدار بیشتر (حداکثر ۲۵۵) تغییر دهید.

traceroute -m 15 www.google.com

البته، از این آپشن می توانید برای آزمون/خطا و تعیین حداکثر هاپ لازم برای رسیدن به مقصد استفاده کنید.

ردیابی مسیر از یک مبدا تا مقصد مشخص

اگر مسیر خاصی را در نظر دارید و می خواهید آدرس مبدا را هم خودتان مشخص کنید، می توانید از آپشن s کمک بگیرید.

traceroute -s 192.168.1.7 google.com

مسیریابی بسته ها از طریق دروازه

اگر می خواهید بسته را از طریق یک gate خاص هدایت کنید تا از این طریق، مسیر مربوط به آن را خطایابی کنید، می توانید از آپشن g کمک بگیرید.

traceroute -g 192.168.1.7 google.com

البته می توانید در این دستور بیش از یک گیت (حداکثر ۸) تعیین کنید. کافیست به ازای هر آدرس گیت، بخش g IP_Addresss- را تکرار کنید.

تعیین پورت مقصد در دستور traceroute

اگر می خواهید در طول پروسه trace، پورت مقصد را هم خودتان مشخص کنید، می توانید از آپشن p استفاده کنید.

به عنوان مثال برای ردیابی مسیر از مبدا تا پورت 33434 مقصد، کافیست دستور traceroute را به صورت زیر اجرا کنید:

traceroute  -p 33434 google.com

تغییر حداکثر سایز پکت

به طور پیش فرض، دستور traceroute حداکثر اندازه هر پکت ارسال را ۶۰ بایت در نظر گرفته است. اگر می خواهید این مقدار پیش فرض را تغییر دهید، کافیست مقدار بایت موردنظر را به انتهای دستور اضافه کنید:

traceroute google.com 100

تعیین نوع پروتکل اینترنت

اگر قصد خطایابی اتصالات مربوط به آدرس های آی پی IPv4 یا IPv6 را دارید و می خواهید این پروتکل را از طریق دستور traceroute مشخص کنید، می توانید از دستورات زیر استفاده کنید:

traceroute -4 google.com #IPv4

traceroute -6 google.com #IPv6

متوقف کردن خروجی دستور traceroute

اگر در حین اجرای دستور traceroute نیاز به این داشتید که خروجی را متوقف کنید تا به خط فرمان دسترسی پیدا کنید، می توانید کلید ترکیبی Ctrl + C را فشار دهید.

نحوه خطایابی شبکه با traceroute

اکنون که نحوه استفاده از traceroute و تحلیل خروجی آن را یاد گرفتید وقت آن است با مشکلات رایجی که این دستور قادر به رمزگشایی آنها است نیز آشنا شوید:

تاخیر بالا در یک هاپ

این مشکل می تواند ناشی از عملکرد ضعیف دستگاه مربوط به هاپ باشد که با مشاهده چنین مسئله ای می توانید دستگاه های کند موجود در مسیر را شناسایی کنید.

عدم دریافت پاسخ از هاپ

اگر به جای RTT خروجی فقط ۳ ستاره وجود داشته باشد، به معنی این است روتر دچار اختلال شده است یا اینکه برای بلاک کردن نتایج traceroute پیکربندی شده است. البته، فعال بودن فایروال در روتر هم می تواند دلیلی برای این موضوع باشد. همه اینها باعث می شوند که هاپ موردنظر بدون پاسخ بماند.

طولانی بودن مسیر

اگر تعداد هاپ های مسیر بیش از حد باشد، احتمالاً با مسیریابی غیربهینه مواجه هستید که باعث افزایش زمان پاسخ و عملکرد ضعیف شبکه شده است.

با کشف هر نوع اختلال و ضعف در شبکه، اولین کاری که باید انجام دهید این است که روترهای خراب را شناسایی و تعمیر کنید.

سپس، جدول مسیریابی را بررسی کنید و پیکربندی های نادرست آن را اصلاح کنید. همچنین، عملکرد قوانین ACL ها و فایروال ها را هم تصحیح کنید تا پکت های موجود در شبکه را به اشتباه مسدود نکنند.

محدودیت های دستور traceroute در لینوکس

با اینکه این دستور به عنوان یکی از رقبای پیشرفته دستور ping، عملکرد خوبی در خطایابی شبکه از خود نشان می دهد و مثل ping فقط به بررسی وضعیت اتصال مبدا و مقصد بسنده نمی کند ولی با محدودیت هایی هم روبرو است:

  • ایجاد مسیر بر اساس رابط ها
  • مسدود شدن بسته ها توسط فایروال
  • عدم پاسخ گویی بعد عبور از حداکثر هاپ
  • نمایش * موقع عدم دریافت پاسخ

اگر این محدودیت ها برایتان مهم نیست که با خیال راحت می توانید به استفاده از این ابزار خطایاب قدرتمند ادامه دهید.

دستورات MTR ،Dig و nmap از ابزارهای خطایاب دیگری هستند که می توانید به عنوان جایگزین یا در کنار traceroute استفاده کنید تا وضعیت شبکه خود را به طور همیشگی در حالت بهینه نگه دارید.

سخن آخر

دستور traceroute در لینوکس یکی از بهترین ابزارهای خطایاب شبکه است که به کمک آن می توانید مسیر بین دستگاه خود و مقصد را به طور دقیق ردیابی کنید و از اطلاعات مربوط به هر هاپ برای شناسایی ضعف های شبکه خود کمک بگیرید.

مطالب مشابهی که شاید علاقمند باشید

من زهرا پیرجانی دانشجوی رشته نرم افزار هستم. علاقه ای که به یادگیری مطالب جدید دارم باعث شد که انگیزم برای فعالیت در حوزه تولیدمحتوا بیشتر شود. تمام تلاشم این است که با درک کامل موضوع، محتوایی ساده و کامل تهیه کنم که برای همه علاقمندان مفید و کاربردی باشد. یادگیری مطالب جدید و آموزش اونها به بقیه، بهترین کاری هست که می توانم برای رشد خودم و همچنین کمک به رشد علاقمندان به مباحث مورنظر انجام بدم.

دیدگاه های شما

برای دریافت این مقاله لطفا ایمیلتان را وارد کنید

می توانید مقاله را دانلود کنید یا پرینت بگیرید