رفتن به محتوای اصلی
FA

خانه / وبلاگ / پیشرفته

لاگ‌ها و صفحهٔ اتصال‌ها را بخوانید تا بیشتر مشکل‌ها را خودتان حل کنید

لاگ‌ها و صفحهٔ اتصال‌ها را بخوانید تا بیشتر مشکل‌ها را خودتان حل کنید

پاسخ بیشتر «باز نمی‌شود»، «کند است» و «از مسیر اشتباه رفت» همان‌جا روی صفحه‌های Connections و Logs نشسته است. یاد گرفتن خواندن این دو صفحه از جست‌وجو در اینترنت مفیدتر است.

صفحهٔ اتصال‌ها، ستون به ستون

از منوی کناری Connections را باز کنید تا یک جدول زنده ببینید:

ستونمعنیبه چه درد می‌خورد
Hostدامنه یا IP مقصدپیدا کردن سایتی که برایتان مهم است
Ruleکدام قاعده تطبیق دادهباارزش‌ترین ستون
Chainگره یا زنجیرهٔ سیاستی که به کار رفتهتأیید مستقیم بودن یا پروکسی‌شدن
Processکدام برنامه آن را باز کردهفهمیدن اینکه چه کسی حرف می‌زند
Upload / Downloadترافیک این اتصالپیدا کردن مصرف‌کنندهٔ سنگین
Timeچه مدت باز بودهاتصال‌های طولانی در فهرست می‌مانند

رایج‌ترین کاربرد: این سایت از گره رفت؟

فرض کنید می‌خواهید بدانید github.com واقعاً پروکسی می‌شود یا نه:

سه گامصفحهٔ Connections را باز کنیدبگذارید زنده به‌روز شودسایت را در مرورگر باز کنیدیک اتصال تازه ساخته می‌شوددامنه را در جدول جست‌وجو کنیدستون‌های Rule و Chain را بخوانیدنتیجهDIRECT یعنی مستقیم، نام گره یعنی پروکسی‌شده
از هر سایت «IP من چیست» قابل‌اعتمادتر است، چون تصمیم واقعی هسته را می‌خوانید

خواندن ستون Chain:

  • DIRECT ← مستقیم، هیچ گره‌ای در کار نیست
  • نام یک گره یا گروه ← پروکسی‌شده
  • REJECT ← با یک قاعده مسدود شده، معمولاً فیلتر تبلیغات

ستون Rule می‌گوید چرا — مثلاً GEOIP,CN یعنی مستقیم رفت چون IP مقصد در آن منطقه حل شد.

کاربرد دوم: فهمیدن اینکه چه چیزی ترافیک را می‌خورد

بر اساس ستون Download مرتب کنید و چند ردیف بالا را ببینید. ستون Process نام برنامه را می‌گوید.

غافلگیری‌های رایج: نرم‌افزاری که در پس‌زمینه به‌روزرسانی می‌شود، فضای ابری که همگام‌سازی می‌کند، یا زبانهٔ مرورگری که بی‌سروصدا ویدیو پخش می‌کند.

کاربرد سوم: تعداد غیرعادی اتصال‌ها

مرور معمولی در حد چند ده اتصال است. اگر صدها یا هزاران دیدید و رو به افزایش بود:

  • چیزی دارد دیوانه‌وار دوباره وصل می‌شود (ستون Process را ببینید)
  • ممکن است نرم‌افزار P2P باشد
  • یا یک پیکربندی غلط باعث می‌شود اتصال‌ها شکست بخورند و بلافاصله تکرار شوند

دکمهٔ «بستن همهٔ اتصال‌ها» در بالا سمت راست فهرست را پاک می‌کند؛ ببینید کدام مدخل‌ها فوراً برمی‌گردند.

صفحهٔ لاگ: اول سطح را تعیین کنید

صفحهٔ Logs بالا سمت راست یک انتخابگر سطح دارد:

چهار سطح لاگsilentچیزی بیرون نبرای تشخیص بی‌فایدهinfo (پیش‌فرض)اتصال‌ها و ببرای استفادهٔ روزمره مناسبwarningفقط هشدارها وقتی سکوت می‌خواهیدdebugهر تطبیق قاعبرای مشکل‌های سختبسیار پرحرف
معمولاً info، و وقتی چیزی واقعاً مبهم است موقتاً debug

جدول ترجمهٔ خطاهای رایج

پیام لاگمعنی‌اشچه کنید
dial tcp x.x.x.x:443: i/o timeoutمهلت اتصال به گره تمام شدگره در دسترس نیست؛ یکی دیگر امتحان کنید
connection refusedمقصد فعالانه رد کردپورت گره اشتباه است یا سرویس پایین است
unsupported proxy type: xxxهسته این پروتکل را نمی‌شناسدهستهٔ Mihomo را به‌روز کنید
unmarshal error / yaml: line Nخطای نحوی در پیکربندیاشتراک یا پیکربندی سفارشی را بررسی کنید
no such host / DNS resolve failedحل نام شکست خوردمشکل پیکربندی DNS، پایین‌تر ببینید
EOFطرف مقابل اتصال را قطع کردگره ناپایدار یا محدودشده
context deadline exceededمهلت داخلیمعمولاً گره بسیار کند
بعد از Start initial provider گیر می‌کندیک مجموعه قاعده دانلود نمی‌شودمشکل شبکه، یا URL مردهٔ مجموعه قاعده

سه مشکل معمول که با همین دو صفحه حل می‌شوند

«این سایت باز نمی‌شود»

ترتیب بررسیصفحهٔ Connections را باز کنید، سایت را بزنید، ببینید اتصال تازه‌ای پیدا می‌شود یا نهپیدا شد — ستون Chain را بخوانید، آیا مسیر اشتباه رفتهچیزی پیدا نشد — درخواست اصلاً به هسته نرسیده، روشن بودن پروکسی سیستم را بررسی کنیدChain می‌گوید DIRECT ولی باید پروکسی می‌شد — یک مدخل prepend-rules اضافه کنیدChain گره را نشان می‌دهد ولی باز هم شکست می‌خورد — گره دیگری امتحان کنید و لاگ را برای timeout ببینید

«کند است»

اول نرخ واقعی انتقال همان اتصال را روی صفحهٔ Connections بخوانید.

  • خود نرخ پایین است ← مشکل گره یا خط؛ گره دیگری را بیازمایید
  • نرخ خوب است ولی صفحه‌ها کند بالا می‌آیند ← احتمالاً DNS کند، یا صفحه منابعش را از چند مسیر مختلف می‌کشد

لاگ را روی debug بگذارید و زمان‌بندی پرس‌وجوهای DNS را ببینید. تعداد زیاد پرس‌وجوهای چندصد میلی‌ثانیه‌ای یعنی پیکربندی DNS شما کار دارد.

«پروکسی روشن است ولی این برنامه باز هم مستقیم می‌رود»

برنامه را در ستون Process پیدا کنید.

  • اصلاً اتصالی از آن نیست ← پروکسی سیستم را نمی‌خواند؛ به TUN نیاز دارید
  • هست، ولی Chain می‌گوید DIRECT ← یک قاعده مستقیمش کرده؛ ستون Rule بگویید کدام
  • هست، Chain گره را نشان می‌دهد، ولی برنامه باز هم شکایت می‌کند ← مشکل خود برنامه است، یا گره چیزی را که لازم دارد (مثلاً UDP) پشتیبانی نمی‌کند

یک ترفند پیشرفته: از اتصال به عقب تا مشکل قاعده

فرض کنید api.example.com مستقیم می‌رود و شما پروکسی می‌خواهید. صفحهٔ Connections در ستون Rule GEOIP,CN نشان می‌دهد.

یعنی: دامنه به آدرسی در آن منطقه حل شد، پس قاعدهٔ GEOIP مستقیمش کرد.

راه‌حل، درج یک قاعدهٔ مشخص‌تر پیش از GEOIP است:

prepend-rules:
  - DOMAIN-SUFFIX,example.com,PROXY

چون قواعد از بالا به پایین تطبیق داده می‌شوند، اولی برنده است.

بیرون دادن لاگ برای درخواست کمک

وقتی به چشم دیگری نیاز دارید، دادن اطلاعات مفید تفاوت بزرگی می‌سازد:

هنگام پرسیدن چه چیزی بفرستید1بخش مربوط لاگdebug بگذارید، مشکل را بازتولید کنید، ده‌دوازده خط قبل و بعد از خطا را بردارید2تصویری از صفحهٔ Connectionsکه Host و Rule و Chain را نشان بدهد3محیط شمانسخهٔ کلاینت، نسخهٔ هسته، سیستم‌عامل4آنچه قبلاً امتحان کرده‌ایدتا کسی وادارتان نکند تکرارش کنید
«کار نمی‌کند» عملاً غیرقابل تشخیص است

خلاصه

  • ستون‌های Rule و Chain با هم سریع‌ترین راه تشخیص مسیریابی‌اند
  • به debug بروید تا جزئیات DNS و تطبیق قواعد را ببینید، بعد به info برگردید
  • بیشتر مشکل‌های «باز نمی‌شود» با یک نگاه به صفحهٔ Connections حل می‌شوند: یا اصلاً مسیریابی نشده، یا اشتباه مسیریابی شده، یا خود گره پایین است

بیشتر بخوانید: سه حالت پروکسی و توضیح تنظیمات پورت.