برای عیبیابی شبکه از پایین به بالا بروید: اول مطمئن شوید دستگاه آدرس IP و Gateway درست دارد، بعد اتصال به Gateway و به اینترنت را با ping امتحان کنید، بعد DNS را بررسی کنید، و در آخر خود سرویس را روی پورتش تست کنید. ابزارهای اصلی این مسیر ping، traceroute یا mtr، nslookup یا dig، ss و curl هستند. با این ترتیب، بیشتر وقتها معلوم میشود مشکل از آدرسدهی، مسیر، نام دامنه یا خود سرویس است.
این راهنما برای لینوکس و ویندوز نوشته شده است. نام دستورها در دو سیستم کمی فرق دارد و در جدولها هر دو آمدهاند. اگر مشکل از DNS است، رکوردهای دامنه را در انواع رکورد DNS هم ببینید.
لایه اول: آدرس و مسیر خود دستگاه
اول ببینید دستگاه چه آدرسی دارد:
| کار | لینوکس | ویندوز |
|---|---|---|
| دیدن آدرسها | ip addr | ipconfig /all |
| دیدن مسیر پیشفرض (Gateway) | ip route | route print |
| جدول ARP | ip neigh | arp -a |
اگر آدرسی که با 169.254 شروع میشود میبینید، دستگاه از DHCP جواب نگرفته است. اگر آدرس درست است ولی Gateway در شبکه دیگری قرار دارد، ماسک یا آدرس را اشتباه تنظیم کردهاید. برای بررسی اینکه دو آدرس در یک زیرشبکهاند، ابزار محاسبه ساب نت را ببینید. تنظیمات شبکه در توزیعهای لینوکس را در تنظیمات شبکه لینوکس توضیح دادهایم.
ping: آیا مقصد جواب میدهد؟
ping بسته ICMP میفرستد و زمان رفت و برگشت را نشان میدهد:
ping -c 4 192.168.1.1
ping -c 4 8.8.8.8
ping -c 4 example.comدر ویندوز بهجای -c از -n استفاده کنید. روش پیشنهادی سه مرحله است: اول Gateway، بعد یک IP در اینترنت و بعد یک نام دامنه. نتیجه هر مرحله جایی را که مشکل در آن است نشان میدهد:
| نتیجه | معنی محتمل |
|---|---|
| Gateway جواب نمیدهد | مشکل در لینک، VLAN یا آدرسدهی داخلی |
| Gateway جواب میدهد ولی IP اینترنت نه | مشکل در روتر، اینترنت یا NAT |
| IP اینترنت جواب میدهد ولی نام دامنه نه | مشکل DNS |
| همه جواب میدهند ولی سرویس باز نمیشود | مشکل در فایروال یا خود سرویس |
جواب ندادن ping همیشه به معنی قطع بودن نیست، چون بسیاری از فایروالها ICMP را میبندند. اگر ping جواب نمیدهد ولی سرویس کار میکند، با تست پورت ادامه دهید.
traceroute و mtr: مسیر کجا قطع میشود؟
traceroute مسیر بستهها را مرحلهبهمرحله نشان میدهد:
traceroute example.com
tracert example.com
mtr -rwzc 50 example.comدستور دوم برای ویندوز است. ابزار mtr ترکیب ping و traceroute است و برای هر مرحله درصد از دست رفتن بسته و زمان پاسخ را نشان میدهد. گزینهها: -r گزارش، -w نام کامل، -z شماره AS و -c 50 تعداد ارسال. تفسیر آن نیاز به احتیاط دارد: اگر یک مرحله میانی بسته از دست داده ولی مراحل بعدی سالماند، آن مسیریاب فقط پاسخ ICMP را محدود کرده و مشکل واقعی نیست. افت بستهای که تا مرحله آخر ادامه دارد، نشانه مشکل واقعی است.
DNS: نام دامنه درست حل میشود؟
nslookup example.com
dig example.com +short
dig @8.8.8.8 example.com +shortاگر نتیجه با DNS پیشفرض و DNS عمومی فرق دارد، DNS سیستم یا شبکه شما جواب اشتباه میدهد یا رکورد تازه تغییر کرده و هنوز بهروز نشده است. کش DNS ویندوز را با ipconfig /flushdns پاک میکنید. اگر دامنه شما است، برای دیدن همه رکوردها و SPF و DMARC، ابزار بررسی DNS دامنه را ببینید.
پورت و سرویس: روی آن گوش داده میشود؟
روی خود سرور:
sudo ss -ltnpاز سیستم دیگر، باز بودن یک پورت را با nc یا PowerShell امتحان کنید:
nc -zv 192.168.1.10 443
Test-NetConnection 192.168.1.10 -Port 443اگر پورت روی سرور باز است ولی از شبکه دیگر نه، فایروال سرور، فایروال شبکه یا NAT راه را بستهاند. فهرست پورتهای رایج و کاربردشان در پورتهای رایج شبکه و سرور آمده است.
curl: خود پاسخ وبسرور
curl نشان میدهد درخواست HTTP واقعاً چه جوابی میگیرد:
curl -I https://example.com
curl -v https://example.com
curl -o /dev/null -s -w "%{http_code} %{time_total}s\n" https://example.comگزینه -I فقط هدرها را میگیرد و -v جزئیات اتصال و گواهی SSL را نشان میدهد. کد وضعیت 502 یا 504 یعنی مشکل در سرویس پشت وبسرور است؛ عیبیابی آن در خطای 502 Bad Gateway آمده است. برای بررسی گواهی SSL هم ابزار بررسی SSL سایت را ببینید.
تست MTU
اگر ping کوچک کار میکند ولی اتصالهای سنگین قطع میشوند، ممکن است MTU مشکل داشته باشد، مثلاً در تونلها و VPN. با بستهای که تکهتکه نشود امتحان کنید:
ping -M do -s 1472 example.com
ping -f -l 1472 example.comدستور اول برای لینوکس و دوم برای ویندوز است. اگر جواب نداد، عدد را کم کنید تا بزرگترین اندازهای که رد میشود پیدا شود؛ MTU برابر این عدد بهاضافه ۲۸ بایت هدر است.
ابزارهای ثبت و تحلیل
وقتی ابزارهای بالا کافی نیستند، بستهها را ببینید. روی لینوکس tcpdump و روی هر سیستم Wireshark بستههای واقعی را نشان میدهند:
sudo tcpdump -i eth0 host 192.168.1.10 and port 443این ابزارها اطلاعات حساس را هم نمایش میدهند و فقط روی دستگاههایی که اجازه دارید و برای مدت کوتاه استفاده کنید. نام اینترفیس را با ip addr پیدا کنید.
جدول خلاصه عیبیابی شبکه: علامت و بررسی اول
| علامت | اول چه کنید |
|---|---|
| اینترنت نیست | ip addr، ping Gateway، ping 8.8.8.8 |
| سایتها باز نمیشوند ولی IP جواب میدهد | nslookup و DNS |
| فقط یک سرویس کار نمیکند | ss -ltnp روی سرور، تست پورت از کلاینت |
| شبکه کند است | mtr برای افت بسته، مصرف پهنای باند |
| ارتباط گاهی قطع میشود | لاگ تجهیزات، کابل و پورت سوئیچ، MTU |
| فقط از یک شبکه کار نمیکند | فایروال، مسیر و ACL بین شبکهها |
برای شبکه سازمانی که بخشها VLAN دارند، قطع شدن ارتباط بین VLANها معمولاً به مسیر یا ACL برمیگردد؛ ساخت و عیبیابی VLAN در آموزش VLAN در سیسکو آمده است.
سوالات متداول
در عیبیابی شبکه چرا ping جواب میدهد ولی سایت باز نمیشود؟
ping فقط ICMP را امتحان میکند. سایت به پورت ۸۰ یا ۴۴۳ نیاز دارد که ممکن است فایروال، سرویس متوقف یا مشکل DNS مانع آن باشد. با curl و تست پورت ادامه دهید.
جواب ندادن ping یعنی سرور خاموش است؟
نه لزوماً. خیلی از سرورها و فایروالها ICMP را میبندند. اگر پورت سرویس جواب میدهد، سرور روشن است.
فرق tracert و traceroute چیست؟
هر دو یک کار میکنند؛ tracert نام دستور ویندوز و traceroute نام آن در لینوکس و مک است. روش ارسال بستهها کمی فرق دارد.
mtr را روی ویندوز میشود به کار برد؟
بله، با برنامههایی مثل WinMTR یا با WSL. mtr بیشتر روی لینوکس رایج است.





