وسط ثبت یک سفارش هستید. روی دکمه کلیک میکنید، زبانه یک ثانیه میچرخد و کروم صفحهای نشان میدهد با عنوان «نمیتوان به این سایت دست یافت»، زیر آن سطر «اتصال مجدداً برقرار شد.» و در پایین صفحه ERR_CONNECTION_RESET. این سطر ترجمه فارسی خود کروم است و معنای درستی نمیدهد: متن انگلیسی آن "The connection was reset." است، یعنی اتصال بازنشانی و قطع شده، نه اینکه دوباره برقرار شده باشد. فایرفاکس همین را در یک سطر میگوید: «اتصال قطع و بازنشانی شد». سایتهای دیگر بیمشکل باز میشوند و شاید یک دقیقه بعد همین سایت هم باز شود.
در ادامه میخوانید بازنشانی چیست، چه کسی میتواند آن را بفرستد، چگونه بفهمید بازنشانی شما از کجا آمده است، راهحلها در رایانه و گوشی کداماند، اگر سایت از آن خودتان است چه چیزی را بررسی کنید، و همین خطا در کد، جایی که نامش "connection reset by peer"، ECONNRESET یا WinError 10054 است.
خطای ERR_CONNECTION_RESET یعنی چه؟
پیش از آنکه صفحهای بارگذاری شود، مرورگر شما و سرور سایت یک اتصال باز میکنند: خطی دوطرفه که تا وقتی دادهها رفتوآمد میکنند باز میماند. بازنشانی این خط را در میانه کار قطع میکند. فهرست خطاهای شبکه پروژه کرومیوم کد -101 را اتصالی توصیف میکند که "was reset (corresponding to a TCP RST)"، یعنی بازنشانی شده است و با یک RST در TCP مطابقت دارد. کروم، اج، بریو و اپرا از همین فهرست استفاده میکنند و برای همین همه همان کد را نشان میدهند.
تفاوت این خطا با خطاهای همخانوادهاش در زمان است. در ERR_CONNECTION_REFUSED خط هرگز باز نشد؛ در ERR_CONNECTION_TIMED_OUT هیچ چیزی پاسخ نداد. بازنشانی وقتی میرسد که خط کار میکرده است. کدهای دیگر این صفحه خاکستری در خطای This Site Can't Be Reached چیست و چرا رخ میدهد؟ با هم مقایسه شدهاند.
اتصال چگونه بازنشانی میشود؟
TCP، پروتکلی که صفحههای وب را جابهجا میکند، به دو روش میتواند اتصالی را پایان دهد: بستن آرامی که نخست ارسال را تمام میکند، یا بازنشانیای که همه چیز را همان لحظه متوقف میکند. RFC 9293، بخش 3.5.2 به هر برنامه اجازه میدهد هر زمان که بخواهد بازنشانی بفرستد، و خود TCP هم وقتی بستهای برای اتصالی برسد که ماشین دیگر آن را نمیشناسد، یک بازنشانی میفرستد.
- مرورگر شما اتصالی باز میکند و در سایتهای
https://رمزگذاری (TLS) را برقرار میکند. - درخواست را میفرستد و خواندن پاسخ را شروع میکند.
- جایی در مسیر، برنامهای تصمیم میگیرد که اتصال باید پایان یابد، یا ماشینی بستهای برای اتصالی دریافت میکند که آن را فراموش کرده است. آن برنامه یا ماشین یک بازنشانی میفرستد.
- رایانه شما همان لحظه که بازنشانی میرسد اتصال را رها میکند و کروم خطا را نشان میدهد.
بازنشانی هیچ دلیلی با خود ندارد و طوری به نظر میرسد که گویی سایت آن را فرستاده است، اما دستگاهی در میانه راه میتواند به نام سایت آن را بفرستد. پژوهشگران ICSI و دانشگاه UC Berkeley بازنشانیهای جعلی TCP را مستند کردهاند که از محصولات کنترل ترافیک ارائهدهندگان اینترنت، نرمافزارهای آنتیویروس و فیلترهای ملی میآمدند. مرورگر میتواند بگوید «بازنشانی شد»، اما هرگز نمیتواند بگوید «به دست چه کسی».
چه کسی میتواند بازنشانی را بفرستد؟
| چه کسی | چرا | نشانه معمول | گام نخست |
|---|---|---|---|
| سرور سایت | راهاندازی دوباره، از کار افتادن، سقف تعداد اتصالها | برای همه شکست میخورد، میآید و میرود | بعداً دوباره بارگذاری کنید |
| نرمافزار امنیتی | «محافظت وب» یا «اسکن HTTPS» | همه مرورگرهای یک رایانه | محافظت وب را برای یک آزمایش متوقف کنید |
| افزونه مرورگر | افزونه VPN، پروکسی یا مسدودکننده تبلیغات | یک مرورگر؛ پنجره ناشناس کار میکند | افزونهها را خاموش کنید |
| VPN یا پروکسی | تونل قطع شده، اتصالهای بیکار بسته شدهاند | فقط وقتی روشن است | آن را خاموش کنید |
| فیلتر شبکه | قاعدهای در محل کار، مدرسه یا نزد ارائهدهنده اینترنت | یک سایت، همه دستگاههای یک شبکه | از مدیر شبکه بپرسید |
| مودم یا خط | خرابی کوتاه | چند سایت برای چند دقیقه | مودم را دوباره راهاندازی کنید |
| متعادلکننده بار جلوی سایت | مهلت بیکاری، قاعده حفاظتی | صفحههایی که مدت طولانی باز میمانند، آپلودهای بزرگ | تنظیمات صاحب سایت |
تنظیم نادرست MTU، یعنی بزرگترین اندازه بستهای که یک پیوند شبکه حمل میکند، هم اغلب مقصر دانسته میشود، اما معمولاً صفحهها را معلق نگه میدارد، نه اینکه اتصال را بازنشانی کند: بستههای بیش از حد بزرگ بدون هیچ سیگنالی ناپدید میشوند.
مشکل از سایت است، از دستگاه شما یا از شبکه؟
پنج بررسی، از سریعترین به کندترین. در نخستین بررسیای که نتیجه را تغییر داد، متوقف شوید.
- یک بار دوباره بارگذاری کنید. یک بازنشانی تکی پس از راهاندازی دوباره سرور یا تغییر وایفای خودبهخود برطرف میشود.
- مرورگر دیگری را امتحان کنید. اگر فایرفاکس سایتی را باز کند که کروم نمیتواند، علت درون کروم است: یک افزونه یا یک تنظیم. بازنشانی در همه مرورگرها به چیزی اشاره دارد که کل رایانه در آن مشترک است.
- سایت را در گوشی با وایفای خاموش باز کنید. اگر با اینترنت همراه بارگذاری شد، سایت در دسترس است و مشکل از شبکه یا رایانه شماست. اگر نه، مشکل از سایت است.
- دستگاه دیگری را روی همان وایفای امتحان کنید. اگر آن دستگاه کار کرد، رایانه نخست را بررسی کنید: نرمافزار امنیتی، یک VPN، یک تنظیم پروکسی.
- همه دستگاههای این وایفای فقط در همین یک سایت شکست میخورند. قطع شدن در مسیر رخ میدهد: مودم، ارائهدهنده اینترنت یا یک فیلتر.
خطای ERR_CONNECTION_RESET را در رایانه چگونه رفع کنیم؟
پس از هر گام صفحه را دوباره بارگذاری کنید.
- افزونهها را از فهرست علتها خارج کنید. در کروم، بیشتر > پنجره ناشناس جدید را انتخاب کنید. افزونهها آنجا فقط وقتی اجرا میشوند که گزینه در «حالت ناشناس» مجاز است را برایشان روشن کرده باشید، پس صفحهای که اینجا باز شود به یک افزونه اشاره دارد. به بیشتر > افزونهها > مدیریت افزونهها بروید و افزونهها را یکییکی خاموش کنید، اول افزونههای VPN و پروکسی. در فایرفاکس، راهنما > حالت عیبیابی… مرورگر را با افزونههای خاموش اجرا میکند.
- برنامه VPN یا پروکسی را خاموش کنید. سپس دنبال پروکسیای بگردید که هرگز خودتان تنظیم نکردهاید: در ویندوز 11 مسیر Settings > Network & internet > Proxy (تنظیمات > شبکه و اینترنت > پروکسی) را باز کنید و زیر Manual proxy setup (تنظیم دستی پروکسی)، کنار Use a proxy server (استفاده از سرور پروکسی) گزینه Set up (راهاندازی) را انتخاب کنید. اگر روشن است و شما روشنش نکردهاید، آن را خاموش کنید و Save (ذخیره) را انتخاب کنید. کروم همین صفحه را از مسیر تنظیمات > سیستم > تنظیمات پراکسی رایانه را باز کنید باز میکند. فایرفاکس فارسی پروکسی را «پیشکار» مینامد و تنظیم خودش باید بدون پیشکار یا استفاده از تنظیمات پیشکار سیستم باشد، مگر اینکه عمداً پروکسیای انتخاب کرده باشید.
- نرمافزار امنیتی را آزمایش کنید. فقط بخش «محافظت وب» یا «اسکن HTTPS» آن را برای یک دقیقه متوقف کنید. اگر سایت باز شد، حفاظت را دوباره روشن کنید، برنامه را بهروز کنید و سایت را به فهرست استثناهای آن اضافه کنید. فایروال را خاموش نکنید.
- مودم را دوباره راهاندازی کنید. دوشاخه آن را 30 ثانیه از برق بکشید؛ دکمه سوزنی ریست (reset) را فشار ندهید، چون تنظیمات کارخانه را برمیگرداند.
- در آخر، تنظیمات شبکه را بازنشانی کنید. فقط وقتی که همه سایتها در این رایانه بازنشانی میشوند و دستگاههای دیگر روی همان وایفای کار میکنند: Settings > Network & internet > Advanced network settings > Network reset (تنظیمات > شبکه و اینترنت > تنظیمات پیشرفته شبکه > بازنشانی شبکه)، سپس Reset now (اکنون بازنشانی شود) و Yes (بله). پس از آن ممکن است لازم باشد نرمافزار VPN را دوباره راهاندازی کنید.
فهرست این موارد را امتحان کنید: در صفحه خطای کروم هم به همین سمت اشاره میکند: «بررسی پروکسی و دیوار آتش» و «اجرای Windows Network Diagnostics».
در اندروید و آیفون
- جابهجا شدن میان شبکهها. گوشیای که از وایفای به اینترنت همراه میرود، اتصالهای باز را رها میکند؛ چند ثانیه بعد صفحه را دوباره بارگذاری کنید.
- برنامههای VPN و مسدودکننده تبلیغات. بسیاری از آنها ترافیک را از یک پروفایل VPN عبور میدهند و وقتی از کار بیفتند، اتصالها را بازنشانی میکنند. در اندروید تنظیمات > شبکه و اینترنت > VPN را باز کنید و آن را خاموش کنید؛ گزینه VPN همیشه روشن یک VPN را در پسزمینه روشن نگه میدارد. در آیفون، پروفایلهای نصبشده در Settings > General > VPN & Device Management (تنظیمات > عمومی > VPN و مدیریت دستگاه) قرار دارند؛ به پروفایلهای محل کار یا مدرسه دست نزنید.
- وایفای کافه و هتل. این شبکهها میتوانند تا وقتی در صفحه ورودشان وارد نشدهاید، اتصالها را قطع کنند.
چرا فقط یک سایت اتصال را بازنشانی میکند؟
اگر یک سایت در همه دستگاههای شبکه شما شکست میخورد اما با اینترنت همراه باز میشود، فرستنده احتمالی فیلتری در شبکه است. در سایتهای https:// محتوا رمزگذاری شده است، اما نام سایت در آغاز اتصال بهصورت خوانا منتقل میشود. فیلتری که ترافیک را بررسی میکند، با روشی به نام بازرسی عمیق بسته (DPI)، میتواند آن نام را با یک فهرست مقایسه کند و به نام سایت یک بازنشانی بفرستد. DPI چیست؟ بازرسی عمیق بسته چگونه کار میکند؟ توضیح میدهد این بازرسی چگونه انجام میشود.
چنین فیلترهایی در شبکههای اداری و مدرسه، در مودمهایی با کنترل والدین و نزد ارائهدهندگان اینترنتی کار میکنند که قانون آنها را به مسدودسازی موظف کرده است. در شبکه محل کار یا مدرسه از مدیر شبکه بپرسید. اگر مسدودسازی نزد ارائهدهنده اینترنت شماست، هیچ چیزی در دستگاه شما آن را رفع نمیکند و این راهنما به راههای گذر از آن نمیپردازد.
حالت دیگری که فقط یک سایت درگیر است، خود سایت است: سیستم حفاظتی آن ممکن است آدرسی را که همزمان اتصالهای زیادی باز میکند بازنشانی کند. چند دقیقه صبر کنید، یا زمان خطا و کد دقیق آن را برای پشتیبانی سایت بفرستید.
سطح پیشرفته: اتصال را بیرون از مرورگر آزمایش کنید
میتوانید از این بخش بگذرید. یک فرمان در PowerShell در ویندوز 10 یا 11 نشان میدهد که بازنشانی به مرورگر وابسته است یا نه:
curl.exe -sS -o NUL https://example.com/به جای example.com آدرسی را بگذارید که باز نمیشود. curl نه افزونهای دارد و نه از تنظیمات مرورگر استفاده میکند. ما آن را روی یک سرور آزمایشی محلی اجرا کردیم که یک بار هنگام برقراری اتصال امن و یک بار پس از درخواست، بازنشانی میفرستد؛ curl 8.21.0 روی ویندوز 11 این را چاپ کرد:
curl: (35) Recv failure: Connection was reset
curl: (56) Recv failure: Connection was resetاگر هیچ خروجیای نبود، curl صفحه را بارگذاری کرده است، پس علت درون مرورگر است. سطری با Connection was reset یعنی چیزی بیرون از مرورگر اتصال را قطع کرده است: نرمافزار امنیتی، یک VPN، شبکه یا خود سایت.
اگر سایت متعلق به شماست: بازنشانیها از کجا میآیند؟
بازدیدکنندگان ممکن است بازنشانیهایی ببینند که هرگز در لاگهای برنامه شما ظاهر نمیشوند. لایههای اطراف برنامه را بررسی کنید:
- راهاندازی دوباره بدون تخلیه اتصالها (draining). استقراری (deploy) که فرایند سرور را ناگهان متوقف میکند، همه اتصالهای باز را بازنشانی میکند. نخست پذیرفتن اتصالهای تازه را متوقف کنید و بگذارید درخواستهای در حال اجرا تمام شوند.
- مهلتهای بیکاری ناهماهنگ. AWS در مستندات خود میگوید Network Load Balancer آن بهطور پیشفرض جریانهای TCP بیکار را پس از 350 ثانیه کنار میگذارد و به دادههایی که پس از آن برسد با بازنشانی پاسخ میدهد. برای Application Load Balancer هم توصیه میکند مهلت بیکاری (idle timeout) برنامه از مهلت متعادلکننده بار طولانیتر باشد.
- قواعد حفاظتی. فایروالها، فیلترهای DDoS و سقفهای تعداد اتصال اغلب به جای پاسخ دادن، بازنشانی میفرستند. لاگهای آنها را برای آدرس و زمان بازدیدکننده جستوجو کنید.
اگر در کد با "connection reset by peer" روبهرو میشوید
واژه peer یعنی طرف دیگر اتصال و، مانند مرورگر، ممکن است دستگاهی در میانه راه باشد. هر ابزار این رویداد را به نام دیگری میخواند. ما حالتهای ویندوز و Node.js را روی ویندوز 11 در برابر یک سرور محلی که بازنشانی میفرستد ایجاد کردیم:
| کجا | آنچه میبینید |
|---|---|
| Python در لینوکس | ConnectionResetError: [Errno 104] Connection reset by peer |
| Python در ویندوز | ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host |
| Requests در Python | requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(10054, ...)) |
| Requests، قطع در میانه دانلود | requests.exceptions.ChunkedEncodingError: ("Connection broken: ConnectionResetError(10054, ...)", ...) |
http در Node.js | Error: read ECONNRESET |
| Node.js، بسته شدن پیش از پاسخ | Error: socket hang up (کد ECONNRESET) |
fetch در Node.js | TypeError: fetch failed و cause.code برابر ECONNRESET |
ویندوز بخش مربوط به خودش را به زبان نمایش سیستم چاپ میکند؛ متن انگلیسی از فهرست خطاهای Winsock مایکروسافت است که علتهای 10054 را برمیشمارد: برنامه طرف مقابل متوقف شده، میزبان دوباره راهاندازی شده، یا طرف دیگر از «بستن سخت» ("hard close") استفاده کرده است. سطر لینوکس متن استاندارد آن سیستم برای خطای 104 است.
علتهای رایج در کد:
- اتصال بازاستفادهشدهای که سرور همین حالا بسته است. کلاینتها اتصالها را میان درخواستها باز نگه میدارند (keep-alive). اگر سرور اتصال بیکاری را درست همان لحظهای ببندد که شما روی آن چیزی میفرستید، بازنشانی میگیرید. مستندات Node.js درباره
request.reusedSocketاین رقابت زمانی (race) را توضیح میدهد و پیشنهاد میکند دقیقاً همین حالت را دوباره امتحان کنید. - تعداد زیاد اتصال همزمان. سرور یا فایروال آن ممکن است کلاینتی را که دهها اتصال موازی باز میکند قطع کند. تعداد اتصالهای همزمان را کم کنید، به
429وRetry-Afterاحترام بگذارید و هرجا سایت API دارد از آن استفاده کنید. عوض کردن آدرسهای IP برای گذشتن از یک محدودیت راهحل نیست. - دستدادن TLS. بازنشانی در این مرحله میتواند به این معنا باشد که سرور یا یک فیلتر چیزی را که کلاینت پیشنهاد داده رد کرده است، مثلاً یک نسخه قدیمی TLS؛ نخست کتابخانه کلاینت را بهروز کنید.
- یک پروکسی در میانه راه. پروکسی تونلهای بیکار را میبندد و بازنشانیهای سایت را به شما منتقل میکند. در آزمایشهای ما Requests چنین بازنشانیای را
ProxyError('Unable to connect to proxy', ConnectionResetError(...))نامید، با اینکه سایت آن را فرستاده بود؛ وقتی پروکسی سمت ما را به روش عادی بست، Python خطایRemoteDisconnectedیا، هنگام دستدادن،SSLEOFErrorرا گزارش کرد. درخواست را یک بار با پروکسی و یک بار بدون آن بفرستید تا ببینید کدام مرحله اتصال را قطع میکند. خطای Max Retries Exceeded With URL چیست و چگونه رفع میشود؟ نشان میدهد چگونه کل زنجیره خطا را بخوانید.
تلاش دوباره با انتظار نمایی، فقط جایی که امن است
بازنشانی به شما نمیگوید سرور درخواستتان را پیش از آن اجرا کرده است یا نه. فقط درخواستهایی را خودکار دوباره بفرستید که تکرارشان امن است، مانند GET؛ هر بار بیشتر صبر کنید و پس از چند تلاش متوقف شوید:
"""GET a URL through a proxy and retry connection resets with exponential backoff."""
import random
import time
import requests
PROXY = "http://user:pass@pr.proxynet.io:8000"
PROXIES = {"http": PROXY, "https": PROXY}
def was_reset(exc):
"""True if a ConnectionResetError is wrapped anywhere inside the exception."""
stack, seen = [exc], set()
while stack:
e = stack.pop()
if id(e) in seen:
continue
seen.add(id(e))
if isinstance(e, ConnectionResetError): # RemoteDisconnected is a subclass
return True
inner = (*e.args, e.__cause__, e.__context__, getattr(e, "reason", None))
stack.extend(x for x in inner if isinstance(x, BaseException))
return False
def get_with_retry(session, url, attempts=4, base=1.0, cap=30.0):
"""GET is safe to repeat; wait about 1, 2, 4 s (plus jitter) between attempts."""
for attempt in range(1, attempts + 1):
try:
return session.get(url, proxies=PROXIES, timeout=(5, 30))
except (requests.exceptions.ConnectionError, requests.exceptions.ChunkedEncodingError) as exc:
if not was_reset(exc) or attempt == attempts:
raise
delay = min(cap, base * 2 ** (attempt - 1)) + random.uniform(0, base / 2)
print(f"attempt {attempt}: connection reset, retrying in {delay:.1f} s")
time.sleep(delay)
if __name__ == "__main__":
with requests.Session() as s:
s.headers["User-Agent"] = "example-crawler/1.0 (+https://example.com/bot)"
r = get_with_retry(s, "https://example.com/")
print(r.status_code, len(r.content), "bytes")- کد فقط بازنشانیها را دوباره امتحان میکند؛ رمز عبور نادرست، پورت ردشده یا خطای گواهی بیدرنگ بهصورت خطا برگردانده میشود. Requests بازنشانی را دو یا سه لایه پایینتر پنهان میکند و جستوجو در زنجیره خطا به همین دلیل است.
RemoteDisconnected("Remote end closed connection without response") زیرکلاسی ازConnectionResetErrorاست، پس آن هم به حساب میآید. - زمان انتظار هر بار دو برابر میشود، بهعلاوه بخشی تصادفی (jitter) تا فرایندهای موازی همگام با هم دوباره تلاش نکنند، و هر تلاش یک اتصال تازه باز میکند.
ما آن را روی Python 3.13 با Requests 2.34.2، از طریق یک پروکسی آزمایشی محلی با احراز هویت user:pass، در برابر سرور آزمایشیای اجرا کردیم که دو اتصال نخست را بازنشانی میکند:
attempt 1: connection reset, retrying in 1.2 s
attempt 2: connection reset, retrying in 2.3 s
200 3 bytesدر برابر سروری که هر بار بازنشانی میکند، کد پس از چهار تلاش با همان ProxyError بالا دست کشید. با یک پروکسی مسکونی در حالت چرخشی، هر تلاش دوباره اتصال تازهای باز میکند و ممکن است از یک آدرس IP تازه بیرون برود؛ برای نشستی که با حساب کاربری وارد شده و باید یک آدرس را نگه دارد، از نشست ثابت (1 تا 60 دقیقه) استفاده کنید و تلاشهای دوباره را درون همان نشست نگه دارید.
کجا با این خطا روبهرو میشوید؟
- صفحههای فروشگاه و بانک که در شبکه اداری یا مدرسه در مرحله پرداخت متوقف میشوند.
- آپلودهای بزرگ که هر بار در همان نقطه متوقف میشوند.
- کارهای اسکرپینگ، پایش و API که ساعتها پشت پروکسیها و متعادلکنندههای بار اجرا میشوند.
اشتباههای رایج
- پاک کردن کش و کوکیها. صفحه هرگز نرسیده است، پس چیز کهنهای علت آن نبوده است.
- خاموش کردن همیشگی فایروال یا آنتیویروس. یک بخش را برای یک آزمایش متوقف کنید.
- تلاش دوباره خودکار برای پرداخت یا ارسال فرم در کد. ممکن است سرور پیش از بازنشانی آن را پردازش کرده باشد.
- بالا بردن تعداد تلاشهای دوباره تا 20. بازنشانیای که هر بار رخ میدهد یک تصمیم است، نه بدشانسی.
راهنمای انتخاب
| وضعیت | چه کنید |
|---|---|
| یک بازنشانی، سپس صفحه کار میکند | کاری لازم نیست؛ رویدادی گذرا بود |
| فقط کروم شکست میخورد، پنجره ناشناس کار میکند | افزونهها را یکییکی خاموش کنید |
| همه مرورگرهای یک رایانه شکست میخورند | VPN، تنظیم پروکسی و محافظت وب را بررسی کنید |
| همه دستگاههای وایفای شما در یک سایت شکست میخورند | یک فیلتر یا ارائهدهنده اینترنت؛ از مدیر شبکه بپرسید |
| آن سایت در همه شبکهها شکست میخورد | مشکل از سایت است؛ صبر کنید یا با آن تماس بگیرید |
| سایت خودتان اتصال بازدیدکنندگان را بازنشانی میکند | راهاندازیهای دوباره، مهلتهای بیکاری و لاگهای فایروال را بررسی کنید |
اسکریپت شما گاهبهگاه Errno 104، 10054 یا ECONNRESET میگیرد | درخواستهای امن را با انتظار نمایی دوباره بفرستید و تعداد اتصالهای همزمان را کم کنید |
پرسشهای متداول
آیا ERR_CONNECTION_RESET مشکل من است یا مشکل سایت؟
هر دو ممکن است. سایت را در گوشی با اینترنت همراه باز کنید: اگر بارگذاری شد، مشکل از شبکه یا رایانه شماست؛ اگر همهجا شکست میخورد، مشکل از سایت است.
چرا ERR_CONNECTION_RESET در همه مرورگرها ظاهر میشود؟
علت چیزی است که همه آنها در آن مشترکاند: نرمافزار امنیتی، یک VPN، تنظیم پروکسی سیستم، مودم یا یک فیلتر شبکه. افزونهها و تنظیمات مرورگر از فهرست علتها خارج میشوند.
آیا پاک کردن کش ERR_CONNECTION_RESET را رفع میکند؟
بهندرت. اتصال پیش از رسیدن صفحه قطع شده است، پس در کش چیزی نیست که علت آن باشد.
بازنشانی چه فرقی با «بهطور غیرمنتظرهای اتصال را قطع کرد» دارد؟
بازنشانی (ERR_CONNECTION_RESET) اتصال را یکباره پایان میدهد. پیام «بهطور غیرمنتظرهای اتصال را قطع کرد» (ERR_CONNECTION_CLOSED، در رابط انگلیسی "unexpectedly closed the connection") یعنی طرف دیگر اتصال را به روش عادی بسته است، اما پیش از آنکه صفحه کامل شود. هر دو به یک روش بررسی میشوند.
"connection reset by peer" یعنی چه؟
طرف دیگر اتصال، یعنی peer، بازنشانی فرستاده است. لینوکس آن را خطای 104، ویندوز 10054 و Node.js ECONNRESET گزارش میکند. peer میتواند سرور یا هر دستگاهی در میانه راه باشد.
خطای ECONNRESET یا "socket hang up" را در Node.js چگونه رفع کنم؟
هر دو یعنی اتصال قطع شده است؛ "socket hang up" یعنی پیش از رسیدن هر پاسخی. درخواستهای idempotent را (درخواستهایی که تکرارشان اثر تازهای ندارد) روی یک اتصال تازه دوباره بفرستید، بهویژه وقتی req.reusedSocket برابر true است، و تعداد اتصالهای همزمان را کم کنید.
خلاصه
ERR_CONNECTION_RESET و "connection reset by peer" یک رویداد را نام میبرند: اتصالی باز که با سیگنال بازنشانی از سوی سایت، رایانه شما، یک VPN یا پروکسی، یا شبکه میان راه پایان یافته است. فرستنده را با تغییر یک چیز در هر بار پیدا کنید: مرورگر، پنجره ناشناس، دستگاه، شبکه. مسدودسازی در شبکه چیزی نیست که دستگاه شما بتواند تغییرش دهد. در کد فقط درخواستهای امن را دوباره بفرستید، با مکثهای فزاینده و یک اتصال تازه. اگر برای چنین کارهایی از پروکسی استفاده میکنید، صفحه پروکسی ما توضیح میدهد چه انواعی وجود دارد و هرکدام برای چیست.




