Tanpa KYC — tanpa ID, tanpa selfie, tanpa dokumen. Bayar dengan crypto: BTC, USDT, USDC, ETH, SOL, LTC
Bahasa: Bahasa Indonesia
Mulai sekarang

Referensi kesalahan proxy · Error koneksi dan TLS

Connection reset by peer (ECONNRESET) melalui proxy

Kesalahan socket: pesan tepat di tiap alat, penyebab yang mungkin secara urut, dan perbaikan yang berhasil.

Terakhir diperbarui: · 4 baca dalam menit

Jawaban cepat

Apa arti Connection reset by peer (ECONNRESET) dengan proxy?

Connection reset by peer berarti sisi lain menutup koneksi TCP secara tiba-tiba dengan reset bukan penutupan normal. Melalui proxy residential CrawlRelay, penyebab biasa adalah koneksi keep-alive yang digunakan ulang tapi basi, exit yang terputus, atau firewall target yang memutus koneksi. Coba ulang permintaan aman pada koneksi baru dan jangan biarkan koneksi menganggur terlalu lama.

Connection reset by peer (ECONNRESET) sekilas

KesalahanConnection reset by peer (ECONNRESET)
TipeKesalahan socket
Dikirim olehTumpukan jaringan, setelah sisi lainnya menutup koneksi secara tiba-tiba
Didefinisikan dalamTCP reset (RST segment): RFC 9293
Mencoba lagi?Ya, untuk permintaan aman, pada koneksi baru
Periksa pertamaLihat apakah reset mengikuti koneksi ulang yang menganggur atau yang baru

Apa arti Connection reset by peer (ECONNRESET)?

TCP bisa mengakhiri koneksi dengan baik atau dengan reset. Reset memberitahu mesin Anda kalau sisi lain membuang koneksi, jadi data yang sedang dikirim hilang. Python menghasilkan ConnectionResetError; Node.js menghasilkan ECONNRESET atau 'socket hang up'.

'Peer' adalah siapa pun yang socket Anda ajak bicara langsung, yaitu gateway proxy. Reset masih bisa berasal dari jalur lebih jauh dan diteruskan.

Seperti apa a connection reset dalam Python, curl, Node.js, dan browser?

Kegagalan yang sama dicetak berbeda di setiap alat. Ini adalah pesan yang perlu dicari di log Anda:

  • Python: ConnectionResetError: [Errno 104] Connection reset by peer, atau [WinError 10054] di Windows
  • requests: ConnectionError(ProtocolError('Connection aborted.', ConnectionResetError(...)))
  • Node.js: Error: socket hang up atau read ECONNRESET
  • curl: curl: (56) Recv failure: Connection reset by peer

Apa penyebab a connection reset?

Kemungkinan besar pertama:

  • Koneksi keep-alive basi. Koneksi dalam pool menganggur dan ditutup di sisi lain; permintaan berikutnya langsung gagal.
  • Exit yang jatuh, yang memutus semua koneksi yang menggunakannya.
  • Firewall target yang mereset koneksi yang tidak disukainya.
  • Unggahan atau unduhan lama yang diputus oleh batas waktu idle di sepanjang jalur.

Bagaimana cara mendiagnosis a connection reset langkah demi langkah?

  1. Periksa apakah reset terjadi pada permintaan pertama koneksi atau setelah pemakaian ulang yang menganggur.
  2. Hitung reset per host: satu host berarti target; semua host berarti jalur atau pool.
  3. Catat waktu: reset setelah N detik menganggur menunjukkan batas waktu idle.
Uji URL yang gagal dengan curl (port HTTP, verbose)
# Use the URL that fails; with https://api.ipify.org instead, you test the gateway alone.
# "HTTP/1.1 200 Connection established" first, then the site's own status: the site answered.
curl -v -x http://USERNAME:[email protected]:7777 https://TARGET_URL

# Same test through the SOCKS5 port, with DNS resolved at the exit
curl -v --socks5-hostname gw.crawlrelay.com:7778 --proxy-user USERNAME:PASSWORD https://TARGET_URL

Bagaimana cara memperbaiki a connection reset?

  • Ulang permintaan idempoten (GET, HEAD) sekali pada koneksi baru.
  • Perpendek pemakaian ulang koneksi menganggur: tutup koneksi pooled yang menganggur lebih dari beberapa detik, atau buka koneksi baru per permintaan saat Anda butuh IP baru.
  • Akhiri sesi sticky yang sering reset dan mulai sesi baru.
  • Perlambat pada host yang sering reset saat beban tinggi.
Python: coba ulang dengan Retry-After, backoff eksponensial, dan jitter
import random
import time

import requests

PROXY = "http://USERNAME:[email protected]:7777"
PROXIES = {"http": PROXY, "https": PROXY}
RETRY_STATUSES = {429, 502, 503, 504}


def fetch(url, attempts=5, timeout=(10, 30)):
    for attempt in range(attempts):
        try:
            r = requests.get(url, proxies=PROXIES, timeout=timeout)
        except (requests.exceptions.ConnectionError, requests.exceptions.Timeout):
            r = None  # dropped exit, reset or timeout: a new connection gets a new exit
        if r is not None and r.status_code not in RETRY_STATUSES:
            return r
        retry_after = r.headers.get("Retry-After", "") if r is not None else ""
        if retry_after.isdigit():
            wait = int(retry_after)
        else:
            wait = min(60, 2 ** attempt) + random.uniform(0, 1)
        time.sleep(wait)
    raise RuntimeError("giving up on %s after %d attempts" % (url, attempts))

Haruskah saya mencoba lagi setelah a connection reset?

Ulangi reset sekali untuk permintaan aman seperti GET. Jangan ulangi sembarangan POST yang mengubah data: yang pertama bisa saja sudah diproses. Lonjakan reset dalam satu host berarti host itu memutus Anda; turunkan kecepatan di sana.

Bagaimana Connection reset by peer (ECONNRESET) berlaku untuk CrawlRelay?

Di CrawlRelay, rotasi terjadi per koneksi baru. Klien yang menjaga satu koneksi tetap hidup memakai exit yang sama untuk tiap permintaan, jadi exit yang jatuh mereset koneksi itu. Buka kembali koneksi untuk mendapatkan exit segar; panduan sesi menunjukkan polanya.

Gateway: gw.crawlrelay.com, port 7777 (HTTP, HTTPS melalui CONNECT) dan port 7778 (SOCKS5). Format username: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Terkait: 502 Bad Gateway · Read timed out · Sessions guide.

Connection reset by peer (ECONNRESET): pertanyaan yang sering ditanyakan pengembang

Mengapa saya mendapatkan 'socket hang up' di Node.js dengan proxy?

Koneksi tertutup sebelum respons tiba. Dengan proxy, penyebab umum adalah socket keep-alive yang digunakan ulang tapi basi, exit yang terputus, atau target yang memutus koneksi. Ulangi permintaan GET pada socket baru dan batasi berapa lama socket menganggur di pool.

Apakah connection reset tanda saya diblokir?

Kadang-kadang. Firewall dapat mereset koneksi dari klien yang mereka tolak, tetapi reset juga terjadi karena alasan tidak berbahaya di jaringan residential mana pun. Lihat polanya: reset terbatas pada satu host dan meningkat dengan laju permintaan Anda menunjukkan host tersebut menolak.

Haruskah saya menonaktifkan keep-alive untuk scraping?

Tidak sepenuhnya. Keep-alive menghemat waktu saat Anda mengirim beberapa permintaan ke host sama melalui exit sticky yang sama. Saat Anda ingin IP baru pada setiap permintaan, koneksi baru per permintaan adalah pilihan yang lebih bersih. Mencampur keduanya sembarangan menghasilkan reset koneksi basi.

Kesalahan proxy lain dalam referensi ini

Kode status HTTP

Kesalahan browser dan klien

Error koneksi dan TLS

Proxy residensial dengan dokumentasi yang membahas kasus kegagalan

Proxy residensial CrawlRelay dari US$0,50/GB, lalu lintas yang tidak pernah kedaluwarsa.

Dari US$0,50/GB · tanpa KYC

Mulai sekarang