رفع ارور EOF و io: read/write در v2rayNG؛ علت و بررسی
ارور EOF یا io: read/write on closed pipe در v2rayNG بهتنهایی علت قطع اتصال را مشخص نمیکند. ابتدا زمان وقوع خطا و چند خط قبل از آن را بررسی کنید، سپس ورودی اشتراک و شبکه را با تغییر یک متغیر در هر آزمایش مقایسه کنید.
ممکن است این پیام هنگام تست اتصال، بازشدن یک سایت، تغییر سرور یا بستن ارتباط ظاهر شود. بنابراین نسخهای مانند «برای همهٔ خطاهای EOF این گزینه را خاموش کن» قابل اتکا نیست. هدف این راهنما جداکردن پیام آخر زنجیره از اتفاقی است که اتصال را پیش از آن متوقف کرده است.
EOF و خطای io دقیقاً چه میگویند؟
در مستندات رسمی بستهٔ io در زبان Go، EOF پایان ورودی را بیان میکند و ErrClosedPipe به عملیات خواندن یا نوشتن روی مسیر بسته مربوط است. این تعریف فنی دربارهٔ نتیجهٔ یک عملیات است؛ از آن نمیتوان بهتنهایی فهمید اپراتور، سرور، اشتراک یا تنظیمات گوشی مقصر بوده است.
برای مثال، اگر ابتدا یک خطای مربوط به برقراری ارتباط رخ دهد و سپس چند پیام بستهشدن مسیر ثبت شود، آخرین پیام لزوماً بهترین سرنخ نیست. همچنین دیدن یک EOF پس از توقف دستی اتصال، با تکرار آن هنگام هر درخواست و نبود اینترنت وضعیت یکسانی نیست. ترتیب رویدادها مهمتر از پیدا کردن یک کلمه در لاگ است.
| پیام یا وضعیت | چیزی که میدانیم | چیزی که هنوز نمیدانیم |
|---|---|---|
| EOF | خواندن به پایان ورودی رسیده است | چرا ارتباط در آن نقطه پایان یافته |
| io: read/write on closed pipe | عملیات روی مسیر بسته انجام شده | چه رویدادی آن مسیر را بسته |
| خطا فقط در تست داخلی | درخواست آزمون شکست خورده | آیا برنامههای واقعی هم مشکل دارند |
| خطا همراه با نبود ترافیک در همهٔ مقصدها | مشکل عملی اتصال وجود دارد | محل دقیق شکست در دستگاه، شبکه یا سرویس |
۱. خطا را در شرایط مشخص بازتولید کنید
یک پروفایل مشخص را انتخاب کنید و نام آن را یادداشت کنید. اتصال را شروع کنید، ساعت را ثبت کنید و فقط یک کار مشخص انجام دهید؛ مثلاً بازکردن همان صفحهای که قبلاً خطا میداد. تغییر پشت سر هم سرور، شبکه و گزینههای برنامه، تشخیص ارتباط بین خطا و عمل شما را دشوار میکند.
حالا بررسی کنید خطا دقیقاً کجا ظاهر میشود. آیا هنگام شروع اتصال است؟ آیا فقط بعد از زدن دکمهٔ تست دیده میشود؟ آیا مرورگر باز میشود اما یک برنامه نه؟ پاسخ این سؤالها تعیین میکند مرحلهٔ بعد چه باشد. اگر مسئله فقط هشدار تست داخلی است، راهنمای Failed to detect internet connection نیت دقیقتری دارد؛ اینجا تمرکز بر EOF و بستهشدن مسیر ارتباط است.
اگر پس از توقف دستی VPN یک پیام بستهشدن میبینید و هنگام استفاده مشکلی ندارید، همان پیام را دلیل خرید مجدد یا تغییر گستردهٔ تنظیمات ندانید. علامت قابل تکرار و اثر واقعی روی استفاده باید مبنای بررسی باشد.
۲. چند خط قبل از EOF را بخوانید
بخش گزارش یا Log را در نسخهٔ نصبشدهٔ v2rayNG باز کنید. نام و جای آن ممکن است تغییر کند. از بازهٔ کوتاه مربوط به آزمایش خودتان اطلاعات بردارید، نه صدها خط مربوط به چند روز و چند سرور. اگر متن طولانی است، ساعت شروع درخواست کمک میکند زنجیرهٔ مربوط را پیدا کنید.
به پیامهایی که پیش از EOF آمدهاند دقت کنید: آیا اشارهای به نام دامنه، دسترسی به مقصد، مذاکرهٔ TLS یا پاسخ نامعتبر دیده میشود؟ هرکدام مسیر بررسی متفاوتی میخواهد. صرف وجود نام یک جزء در لاگ نیز اثبات خرابی آن نیست؛ متن کامل و ترتیب رویدادها را حفظ کنید.
اگر خطای مشخص TLS یا Handshake پیش از EOF ثبت شده است، آن را جدا بررسی کنید. ساعت دستگاه و تطبیق اطلاعات اتصال با نسخهٔ اصلی اشتراک از بررسیهای اولیهاند. خاموشکردن اعتبارسنجی گواهی برای ناپدیدشدن پیام، علت ناسازگاری را برطرف نمیکند و نباید توصیهٔ عمومی باشد.
۳. کانفیگ را با منبع اصلی تطبیق دهید
اگر مشکل بعد از ویرایش دستی شروع شده، نخست به نسخهٔ سالم یا اطلاعات اصلی اشتراک برگردید. نشانی سرور، پورت، نوع انتقال، مسیر WebSocket و تنظیمات TLS باید با سمت سرویس هماهنگ باشند. مقدارهایی که در تصویر یک آموزش میبینید، برای همهٔ فروشندهها یکسان نیستند.
در v2route اتصال VLESS+WS+TLS است. تبدیل انتخاب پروتکل در کلاینت به Reality یا گزینهٔ دیگری، سرویس متناظر را روی سرور ایجاد نمیکند. بهجای حدسزدن مقادیر، اشتراک معتبر را بهروزرسانی کنید و مطمئن شوید همان پروفایل تازه را انتخاب کردهاید، نه یک نسخهٔ قدیمی با نام مشابه.
اگر بهروزرسانی خودش شکست میخورد، این مشکل را از EOF هنگام استفاده جدا کنید. راهنمای خطای دریافت اشتراک برای آن مرحله است. از حذف همهٔ پروفایلها پیش از داشتن لینک اصلی خودداری کنید؛ داشتن راه برگشت برای آزمایش ارزشمند است.
۴. شبکه را با همان پروفایل مقایسه کنید
ابتدا با VPN خاموش، دسترسی پایهٔ اینترنت را بررسی کنید. سپس همان دستگاه و همان پروفایل را یک بار با وایفای و یک بار با دیتای موبایل امتحان کنید. اگر فقط روی یکی خطا تکرار میشود، نتیجه را بهعنوان وابستگی به شبکه ثبت کنید؛ هنوز نمیتوان علت دقیق را به یک تنظیم یا شرکت نسبت داد.
اگر هر دو شبکه خطا دارند، اعتبار اشتراک، وضعیت پروفایل و اطلاعات سمت سرویس اهمیت بیشتری پیدا میکند. در صورت امکان یک پروفایل معتبر دیگر از همان اشتراک را مقایسه کنید، اما تغییر را ثبت کنید. «چند بار زدم بالاخره وصل شد» برای پیدا کردن یک علت پایدار اطلاعات کافی نمیدهد.
گاهی مشکل فقط به یک مقصد محدود است. در این حالت دو مقصد مستقل و سپس برنامهٔ اصلی را بررسی کنید. نتیجهٔ بازنشدن یک سایت را به کل اینترنت تعمیم ندهید. در عین حال، بازشدن یک صفحهٔ سبک هم کیفیت همهٔ تماسها و دانلودها را ثابت نمیکند.
۵. نسخهٔ برنامه و تنظیمات تغییریافته را بررسی کنید
نسخهٔ نصبشده را با انتشارهای مخزن رسمی v2rayNG تطبیق دهید. اگر برنامه از منبع نامعلوم نصب شده است، اصالت آن مسئلهای جداست. پیش از بهروزرسانی، لینک اشتراک و تنظیمات ضروری را در محل امن نگه دارید؛ بهروزرسانی به معنی تضمین رفع هر خطا نیست.
برای بازگشت به نصب پایه و ورود صحیح اطلاعات، راهنمای نصب v2rayNG را ببینید. تنظیماتی را که خودتان تغییر دادهاید مشخص کنید. دستزدن همزمان به DNS، MTU، Mux و مسیر برنامهها باعث میشود ندانید کدام تغییر مؤثر بوده و کدام مشکل تازه ایجاد کرده است.
اگر هنوز کار نکرد، گزارش کوتاه اما قابل استفاده بسازید
گزارش خوب شامل نسخهٔ برنامه و اندروید، نوع شبکه، زمان آزمایش، پروفایل مورد استفاده با نام غیرحساس، متن اولین خطای مرتبط و نتیجهٔ مقایسه با شبکهٔ دوم است. بنویسید آیا درخواست واقعی هم شکست خورده یا فقط تست داخلی پیام داده است.
| نتیجهٔ بررسی | درخواست مناسب از پشتیبانی |
|---|---|
| خطا پس از تازهسازی اشتراک در همهٔ شبکهها | تطبیق اطلاعات پروفایل و وضعیت سرویس |
| خطا فقط روی یک شبکه | بررسی همان شبکه با زمان و نمونهٔ دقیق |
| خطا پس از ویرایش دستی | دریافت مجدد تنظیمات اصلی |
| فقط یک مقصد مشکل دارد | بررسی مسیر و وضعیت همان مقصد |
قبل از ارسال تصویر، لینک اشتراک، UUID، کد QR و اطلاعات خصوصی داخل لاگ را بپوشانید. حذف اطلاعات حساس نباید زمان و متن خود خطا را از بین ببرد. اگر پشتیبانی نیاز به اطلاعات بیشتری دارد، از مسیر خصوصی و رسمی همان سرویس اقدام کنید.
سؤالات متداول
آیا EOF یعنی حجم اشتراک تمام شده است؟
نه؛ این پیام چنین معنای مستقیمی ندارد. اعتبار و حجم را از محل مدیریت اشتراک بررسی کنید. اگر مشکل واقعاً از پایان اعتبار باشد، باید شواهد آن را جدا از متن EOF داشته باشید.
آیا تغییر DNS برای خطای read/write همیشه جواب میدهد؟
خیر. این خطا علت واحد ندارد. تنها وقتی بررسی DNS اولویت پیدا میکند که شواهد مربوط به نامگشایی وجود داشته باشد؛ تغییر تصادفی آن ممکن است فقط شرایط آزمایش را عوض کند.
چرا بعد از قطع دستی VPN هم این پیام دیده میشود؟
ممکن است عملیات باقیمانده به مسیر بستهشده برخورد کند. زمان وقوع را با رفتار واقعی برنامه تطبیق دهید. پیام پس از توقف دستی، بهتنهایی نشانهٔ خرابی اتصال در زمان استفاده نیست.
آیا نصب دوبارهٔ v2rayNG اولین راهحل است؟
خیر. اول لاگ، ورودی و مقایسهٔ شبکه را بررسی کنید. حذف برنامه میتواند تنظیمات و سرنخها را از بین ببرد. اگر نصب دوباره لازم شد، از منبع رسمی و با داشتن اطلاعات اتصال معتبر انجام دهید.
برای انتخاب سرویس هم همین روش تشخیص را نگه دارید: نتیجهٔ واقعی روی شبکهٔ خودتان مهم است. از صفحهٔ اصلی v2route میتوانید به ربات رسمی برسید و تست رایگان ۱۰۰ مگابایتی ۲۴ ساعته را پیش از خرید برای یک بررسی کنترلشده استفاده کنید.
راهحلهای بالا را انجام دادید و هنوز مشکل باقی است؟
اول با یک کانفیگ سالم رایگان مقایسه کنید؛ اگر مشکل حل شد، بعد پلن مناسب را بخرید