Jawaban cepat
Apa arti SOCKS5 proxy errors dengan proxy?
Kesalahan SOCKS5 ada tiga jenis: klien Anda tak memiliki dukungan SOCKS, server menolak username dan password, atau server gagal menjangkau target dan mengembalikan kode balasan. Di CrawlRelay, pasang dukungan SOCKS dulu (untuk Python requests: requests[socks]), gunakan port SOCKS5, dan pilih socks5h:// supaya DNS diresolusi di exit, bukan komputer Anda.
SOCKS5 proxy errors sekilas
| Kesalahan | SOCKS5 proxy errors |
|---|---|
| Tipe | Kesalahan protokol atau klien SOCKS5 |
| Dikirim oleh | Server SOCKS5 (kode balasan) atau pustaka klien Anda (dukungan tidak ada) |
| Didefinisikan dalam | SOCKS5: RFC 1928; username/password authentication: RFC 1929 |
| Mencoba lagi? | Tergantung kode balasan |
| Periksa pertama | Pastikan klien mendukung SOCKS5 dengan autentikasi, lalu baca kode balasan |
Apa arti SOCKS5 proxy errors?
SOCKS5, yang didefinisikan di RFC 1928, meneruskan koneksi TCP tanpa membaca HTTP. Autentikasi dengan username dan password adalah pertukaran kecil terpisah, yang didefinisikan di RFC 1929. Setelah autentikasi, klien meminta koneksi ke host dan port, lalu server menjawab dengan kode balasan satu byte.
Balasan 0x00 berarti berhasil. Kode 0x01 sampai 0x08 menjelaskan kegagalan, dari kegagalan umum server sampai tipe alamat tidak didukung. Klien menerjemahkan kode-kode ini ke pesan mereka sendiri.
Seperti apa a SOCKS5 error 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 requests tanpa PySocks:
InvalidSchema: Missing dependencies for SOCKS support. - curl, kredensial ditolak:
curl: (97) User was rejected by the SOCKS5 server - Balasan 0x01: 'kegagalan umum server SOCKS'
- Balasan 0x04 / 0x05: 'Host tidak terjangkau' / 'Koneksi ditolak' oleh target
- Balasan 0x08: 'Tipe alamat tidak didukung'
Apa penyebab a SOCKS5 error?
Kemungkinan besar pertama:
- Tidak ada dukungan SOCKS di pustaka klien.
- Kredensial salah atau tidak di-URL-encode.
- Port HTTP dipakai untuk SOCKS, atau port SOCKS dipakai untuk HTTP.
- Target yang menolak atau tidak terjangkau dari exit.
- DNS lokal dengan
socks5://: klien menyelesaikan hostname sendiri, yang bisa gagal atau memberi alamat regional salah.
Bagaimana cara mendiagnosis a SOCKS5 error langkah demi langkah?
- Pastikan dukungan SOCKS: di Python,
pip show pysocks; di Node.js, paket agent SOCKS. - Jalankan tes curl di bawah pada port SOCKS5 dengan
--socks5-hostname. - Baca kode balasan atau pesan.
- Bandingkan
socks5://dansocks5h://untuk target sama.
# 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_URLBagaimana cara memperbaiki a SOCKS5 error?
- Pasang dukungan:
pip install "requests[socks]"; di Node.js, gunakan agen proxy SOCKS. - Gunakan port SOCKS5 untuk URL
socks5h://dan port HTTP untuk URLhttp://. - Pilih
socks5h://supaya exit yang menyelesaikan DNS, sesuai pengunjung lokal. - Untuk balasan 0x04 atau 0x05, uji target tanpa proxy; mungkin mati atau menolak.
- Untuk browser, gunakan port HTTP: Chromium tidak mendukung autentikasi SOCKS5.
import requests
# socks5h:// sends the hostname to the proxy, so DNS resolves at the exit
proxy = "socks5h://USERNAME:[email protected]:7778"
r = requests.get("https://api.ipify.org", proxies={"http": proxy, "https": proxy}, timeout=(10, 30))
print(r.status_code, r.text)Haruskah saya mencoba lagi setelah a SOCKS5 error?
Ulangi hanya kegagalan di sisi target, seperti host tidak terjangkau atau koneksi ditolak, dan hanya sekali pada exit baru. Kegagalan autentikasi dan tidak ada dukungan klien akan berulang sampai Anda perbaiki konfigurasi.
Bagaimana SOCKS5 proxy errors berlaku untuk CrawlRelay?
CrawlRelay melayani SOCKS5 di port sendiri, tercantum di bawah, dengan format username dan password sama seperti port HTTP. Targeting dan sesi bekerja sama di kedua port.
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: Tidak dapat terhubung ke proxy · panduan curl · panduan Python .
SOCKS5 proxy errors: pertanyaan yang sering ditanyakan pengembang
Apa perbedaan socks5:// dan socks5h://?
Dengan socks5:// klien Anda sendiri yang menyelesaikan nama host menjadi alamat IP dan mengirimkan IP ke proxy. Dengan socks5h:// yang dikirim adalah nama host, dan sisi proxy yang menyelesaikannya. Gunakan socks5h:// untuk scraping: DNS terjadi di ujung keluar, sehingga Anda mendapatkan jawaban regional yang sama seperti pengunjung lokal.
Haruskah saya menggunakan proxy SOCKS5 atau HTTP untuk scraping?
Untuk halaman web, keduanya berfungsi, dan proxy HTTP lebih sederhana: setiap pustaka HTTP dan browser mendukungnya dengan autentikasi. Gunakan SOCKS5 untuk protokol non-HTTP atau untuk alat yang hanya berbicara SOCKS. Browser berbasis Chromium tidak dapat melakukan autentikasi ke SOCKS5, jadi gunakan port HTTP di sana.
Mengapa curl mengatakan 'Pengguna ditolak oleh server SOCKS5'?
Server SOCKS5 menolak pertukaran nama pengguna dan kata sandi. Periksa kredensial, enkode URL karakter khusus, dan pastikan Anda menggunakan port SOCKS5. Nama pengguna dan kata sandi yang sama harus berfungsi di port HTTP jika akun aktif.
Kesalahan proxy lain dalam referensi ini
Kode status HTTP
- 401 Unauthorized vs 407
- 403 Forbidden
- 407 Proxy Authentication Required
- 429 Too Many Requests
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout
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.