Cambia lingua
Italiano English Русский Deutsch Español Français Українська Tiếng Việt Türkçe Bahasa Indonesia हिन्दी 日本語 中文
Menu
Prezzi
Proxy
TIPI DI PROXY
PER POSIZIONE77 posizioni
Soluzioni
Risorse

Proxy SOCKS5

SOCKS5 è un protocollo proxy a livello di trasporto: apre una connessione per conto tuo e sposta byte, senza leggere né riscrivere ciò che contengono. Ogni proxy ISP statico che vendiamo si può passare da HTTP a SOCKS5 e viceversa sull’ordine che hai già.

Cambiare protocollo non significa cambiare prodotto: cambi il proxy che hai già, dalla dashboard o dall’API, e l’ordine viene aggiornato con la nuova porta e le nuove credenziali con cui collegarti.

In breve: SOCKS5 è un protocollo proxy, non un tipo di indirizzo: inoltra una connessione TCP senza leggere né riscrivere ciò che contiene. Ogni proxy residenziale statico (ISP) venduto da ProxyJam funziona con HTTP, che trasporta HTTPS, oppure con SOCKS5, e passi dall’uno all’altro sull’ordine che hai già; dopo il cambio, collegati con la porta e le credenziali che l’ordine mostra.

SOCKS5 trasporta qualsiasi cosa per cui il tuo client possa aprire una connessione TCP, compreso il traffico che un proxy HTTP non può inoltrare, e fa passare i byte senza toccarli. Questo lo rende la scelta naturale per un client di database, una sessione SSH o qualsiasi strumento che non parli HTTP. Ciò che non fa è cambiare la natura dell’indirizzo. Il protocollo proxy si parla tra il tuo client e il proxy; il sito all’altro capo vede una connessione dall’indirizzo del proxy, più le eventuali intestazioni che un proxy HTTP ha scelto di aggiungere. Quindi la domanda da porsi non è quale protocollo acquistare. È a quale rete appartiene l’indirizzo, e lì la risposta è un provider internet con nome, 19 negli Stati Uniti.

Cosa dicono le specifiche

La versione 5 di SOCKS è stata pubblicata nel 1996 come RFC 1928, un protocollo per attraversare i firewall che ha esteso la versione 4 di SOCKS con UDP, un quadro per i metodi di autenticazione e destinazioni indicate come nomi di dominio o indirizzi IPv6. Un client offre i metodi di autenticazione che supporta e il server ne sceglie uno; poi il client chiede una connessione in uscita (CONNECT), una porta in ascolto (BIND) o un relay UDP (UDP ASSOCIATE). L’accesso con username e password ha una propria breve specifica, l’RFC 1929, che invia la password in chiaro; per questo conviene tenere cifrato il traffico dentro il tunnel quando conta.

L’opzione del nome di dominio è ciò tra cui scelgono gli schemi socks5 e socks5h. Il manuale di curl descrive --socks5 come l’uso del proxy «but resolve the hostname locally» (ma risolvendo il nome host in locale), e --socks5-hostname come la variante che lascia che «the proxy resolve the hostname» (sia il proxy a risolvere il nome host). In un URL proxy, socks5:// dà il primo comportamento e socks5h:// il secondo, come riporta la tabella di Everything curl. Un proxy HTTP che trasporta HTTPS riceve di norma il nome: una richiesta CONNECT nomina l’host e la porta di destinazione, e il proxy apre il tunnel verso di essi (RFC 9110, sezione 9.3.6). Il relay UDP fa parte della specifica SOCKS5, ma le implementazioni differiscono su questo punto; le FAQ qui sotto spiegano cosa significa per i nostri proxy.

Usare SOCKS5 su SSH

Se hai già un accesso SSH a un server, hai un proxy SOCKS5 senza acquistarne uno. ssh -N -D 1080 user@server imposta quello che il manuale ssh di OpenBSD chiama inoltro delle porte locale «dynamic» (dinamico) a livello di applicazione: ssh resta in ascolto sulla porta 1080 della tua macchina e «will act as a SOCKS server» (farà da server SOCKS), trasportando ogni connessione sul canale SSH cifrato e aprendola dalla macchina remota. -N lo limita all’inoltro, senza shell remota. Punta un client a socks5h://127.0.0.1:1080 e il suo traffico esce dal server.

La differenza rispetto a un proxy SOCKS5 acquistato sta nel punto da cui esce la connessione. Attraverso un tunnel SSH, il sito all’altro capo vede l’indirizzo del server SSH e la rete a cui appartiene quel server, che per un server noleggiato è di solito quella di una società di hosting. SSH cifra il tratto tra te e il server; dal server al sito, il traffico resta quello che era già. Un proxy ProxyJam passato a SOCKS5 esce da un indirizzo sulla rete di un provider internet con nome, scelto per paese e operatore al checkout, e ti colleghi direttamente con la porta e le credenziali dell’ordine, senza SSH nel mezzo e senza un server tuo da gestire.

Quindi i due rispondono a domande diverse. Un tunnel su SSH fa uscire il traffico da una macchina che controlli già. Un proxy SOCKS5 su un indirizzo ISP serve per il lavoro in cui conta l’indirizzo di uscita stesso, cioè quale rete mostra una ricerca su di esso.

Cosa succede tra il tuo client e il nostro

Tre brevi scambi, e in nessuno di essi il proxy deve capire il tuo traffico.

Passo 01

Il tuo client saluta il proxy e concordano l’autenticazione. Offre i metodi che supporta; il proxy indica quello che vuole. Sui nostri indirizzi è username e password, oppure niente del tutto se invece hai messo in whitelist il tuo IP.

Passo 02

Il tuo client chiede una destinazione. Un host e una porta, inviati come indirizzo oppure come nome. Inviare il nome è il caso interessante: lo risolve il proxy, quindi la ricerca parte dalla rete del proxy e non dalla tua.

Passo 03

Da lì in poi il proxy sposta solo byte. Non analizza il contenuto, non aggiunge intestazioni e non sa se sta trasportando una pagina web, una sessione di database o un trasferimento di posta. Questa indifferenza è proprio il motivo per scegliere SOCKS5 invece di un proxy HTTP.

Inizia ora

SOCKS5 o proxy HTTP: cosa trasporta ciascuno e cosa può vedere il proxy

Un proxy ProxyJam funziona con HTTP, che trasporta HTTPS tramite CONNECT, oppure con SOCKS5, e il cambio si fa sull’ordine. La scelta dipende da ciò che il tuo client deve inviare.
Proxy HTTPHTTPS tramite CONNECTSOCKS5
Cosa può trasportareSolo richieste HTTPUn tunnel TCP verso l’host e la porta indicatiQualsiasi flusso TCP
Il proxy legge il contenuto?Sì: analizza la richiestaNo, una volta aperto il tunnelNo, in nessun momento
Può modificare le tue intestazioni?Sì: le inoltra e può aggiungerne di proprie, come ViaNo, una volta aperto il tunnelNo: non ha alcuna nozione di intestazione
Dove viene risolto il nome hostSul proxySul proxy: CONNECT nomina l’hostLo scegli tu, a uno dei due capi
Supporto tipico nei clientUniversale negli strumenti HTTPUniversale negli strumenti HTTPComune negli strumenti da riga di comando; alcune librerie richiedono un pacchetto aggiuntivo
Più adatto aRichieste web sempliciNavigazione e scraping HTTPS ordinariProtocolli non web e traffico misto

Per decidere verso quale protocollo puntare un client

Sviluppatori

Verso quale protocollo puntare un client, e quale schema, socks5 o socks5h, impostarvi una volta cambiato il proxy.

Operatori

Verso quale protocollo puntare un client, e come cambiare il proxy che hai già dalla dashboard o dall’API.

Passare un proxy ProxyJam a SOCKS5

  1. Cambia il proxy stesso

    Dalla dashboard o con una chiamata API sull’ordine; cambiare solo il client non basta. Il proxy può restare brevemente non disponibile durante il cambio.

  2. Copia la porta, lo username e la password che l’ordine mostra dopo il cambio

    Non riutilizzare i valori con cui ti collegavi via HTTP.

  3. Imposta lo schema nel tuo client

    socks5h://USERNAME:PASSWORD@HOST:PORT perché sia il proxy a risolvere i nomi host, oppure socks5:// per risolverli dal tuo lato.

  4. Prova da un terminale prima di toccare il codice

    curl -x socks5h://USERNAME:PASSWORD@HOST:PORT https://example.com/.

  5. Installa l’extra SOCKS in Python

    In Python, requests ha bisogno del suo extra SOCKS, pip install requests[socks], prima che un URL proxy socks5h:// funzioni.

Cosa ti dà SOCKS5 sui nostri indirizzi

Protocollo
SOCKS5 o HTTP (che trasporta HTTPS), con il cambio fatto sull’ordine
Autenticazione
Username e password, oppure una whitelist IP
Indirizzo visto dall’obiettivo
Un indirizzo ISP statico sulla rete di un operatore con nome
Scelta dell’operatore
19 operatori con nome negli Stati Uniti; un elenco più breve altrove
Copertura
77 paesi nel catalogo, ciascuno con l’operatore indicato
Rotazione
Nessuna: l’indirizzo non cambia durante il periodo
Sessioni simultanee
100 per proxy, 10 oltre i 50 GB al mese
Contabilizzazione del traffico
Per IP e per periodo; il trasferimento non viene misurato con nessun protocollo
import requests

# HOST, PORT, USERNAME, PASSWORD come with your order (dashboard or API)
proxy = "http://USERNAME:PASSWORD@HOST:PORT"

proxies = {
    "http": proxy,
    "https": proxy,
}

response = requests.get(
    "https://example.com/",
    proxies=proxies,
)

print(response.status_code)
# HOST, PORT, USERNAME, PASSWORD come with your order (dashboard or API)
curl -x http://USERNAME:PASSWORD@HOST:PORT \
     https://example.com/
import axios from "axios";
import { HttpsProxyAgent } from "https-proxy-agent";

// HOST, PORT, USERNAME, PASSWORD come with your order (dashboard or API)
const proxy = "http://USERNAME:PASSWORD@HOST:PORT";
const agent = new HttpsProxyAgent(proxy);

const response = await axios.get(
  "https://example.com/",
  {
    httpAgent: agent,
    httpsAgent: agent,
  },
);

console.log(response.status);
package main

import (
    "fmt"
    "net/http"
    "net/url"
)

func main() {
    // HOST, PORT, USERNAME, PASSWORD come with your order (dashboard or API)
    proxy, _ := url.Parse(
        "http://USERNAME:PASSWORD@HOST:PORT")

    client := &http.Client{Transport: &http.Transport{
        Proxy: http.ProxyURL(proxy),
    }}

    res, _ := client.Get("https://example.com/")
    fmt.Println(res.Status)
}

Prima collegati, poi cambia lo schema

Gli esempi qui sotto si collegano via HTTP, il protocollo con cui parte un ordine. Per usare SOCKS5, cambia prima il proxy stesso, dalla dashboard o con una chiamata API; l’ordine mostra allora la porta e le credenziali da usare da quel momento in poi. Nel client, cambia lo schema in socks5, oppure in socks5h se vuoi che sia il proxy a risolvere il nome host, con quella porta e quelle credenziali. Per farlo Python ha bisogno di requests[socks], e Node.js di un agent SOCKS al posto di quello HTTPS.

Documentazione completa di configurazione

Domande su SOCKS5

Le risposte qui sotto indicano le condizioni a cui vendiamo, e ognuna che lo fa rimanda al documento che ci vincola.

Cos’è un proxy SOCKS5?

SOCKS5 è un protocollo proxy definito nell’RFC 1928 che opera a livello di trasporto. Il tuo client chiede al proxy di aprire una connessione verso un host e una porta, il proxy la apre e da quel momento inoltra byte in entrambe le direzioni senza interpretarli. Poiché non analizza mai ciò che trasporta, non è limitato al traffico web: qualsiasi cosa funzioni su TCP può passarci.

In cosa differisce da un proxy HTTP?

Un proxy HTTP capisce HTTP. Legge la riga della richiesta e le intestazioni, ed è libero di aggiungerle, rimuoverle o riscriverle, ed è per questo che alcuni proxy si annunciano in silenzio in un’intestazione che non hai impostato tu. SOCKS5 non ha alcuna nozione di intestazione: vede una destinazione e un flusso di byte. Se il tuo traffico non è HTTP, o preferisci che nulla nel mezzo possa modificarlo, SOCKS5 è quello da scegliere.

SOCKS5 cifra il mio traffico?

No, e nemmeno un proxy HTTP. SOCKS5 ti autentica presso il proxy e poi inoltra byte. La specifica consente a un metodo di autenticazione di aggiungere una propria protezione, ma l’autenticazione con username e password (RFC 1929) invia la password in chiaro e non protegge nulla dopo. Se il traffico all’interno è HTTPS o SSH, è già cifrato end-to-end e il proxy non può leggerlo. Se il traffico all’interno è in chiaro, resta in chiaro, quindi non trattare SOCKS5 come un livello di cifratura.

Cosa fa socks5h che socks5 non fa?

Sposta la ricerca DNS. Con socks5, il tuo client risolve il nome host in locale e chiede al proxy di collegarsi all’indirizzo risultante. Con socks5h, il tuo client invia il nome e il proxy lo risolve. Questo conta per due motivi: il tuo resolver non vede mai quali host visiti, e ottieni la risposta che ottiene la rete del proxy, che per un nome host che varia in base alla geografia spesso non è quella che otterresti da casa.

Supporta UDP?

UDP ASSOCIATE è nell’RFC 1928; se un determinato client o server lo implementi varia, quindi controlla entrambi i capi invece di darlo per scontato. Non abbiamo pubblicato il supporto UDP per i nostri proxy, quindi conta su TCP, e chiedi al supporto prima di costruire qualcosa che dipenda da UDP.

Mi serve un proxy diverso per usare SOCKS5?

No. Passi il proxy che hai già tra HTTP, che trasporta anche HTTPS, e SOCKS5, dalla dashboard o con una chiamata all’API sullo stesso ordine. Non è solo un’impostazione del client: il cambio avviene sul proxy, l’ordine viene aggiornato con il nuovo protocollo, la nuova porta e le nuove credenziali, e il proxy può restare brevemente non disponibile mentre succede. Il proxy resta tuo per tutto il periodo che hai pagato, viene sostituito gratis se smette di rispondere o è bloccato su un obiettivo che hai indicato, fino al 20 % dell’ordine per mese solare, e il primo ordine prevede un rimborso entro 24 ore fino a 10 IP che i test non annullano. Termini di Servizio

HTTP o SOCKS5?

Resta su HTTP quando invii solo traffico web e i tuoi strumenti parlano già con i proxy HTTP. Passa a SOCKS5 quando un client deve trasportare qualcosa che non è HTTP, o quando vuoi che i nomi host vengano risolti sul proxy senza che nulla nel mezzo possa modificare le tue intestazioni. In entrambi i casi è lo stesso prodotto, che si ordina su proxy ISP e che viene descritto anche come proxy residenziali statici, senza un ordine separato e senza costi per il cambio. Le domande sulla configurazione trovano risposta nelle FAQ. I numeri di operatori e di paesi in questa pagina sono letti dall’istantanea del catalogo da cui viene generato il sito, come descrive la nostra politica editoriale.

Fonti