# Configurazione proxy statico Selenium per Chrome

> Configurazione proxy statico Selenium per Chrome: perché un login in --proxy-server fallisce, e 2 correzioni testate, IP allowlist o un forwarder locale. Senza KYC, paga in crypto.

- URL: https://steadyproxy.com/it/guides/selenium-static-proxy/
- Ultimo aggiornamento: 2026-10-19
- Publisher: SteadyProxy (https://steadyproxy.com)

Chrome accetta un host e una porta del proxy, non un login. Autorizza la tua macchina tramite IP, oppure lascia che un piccolo forwarder locale aggiunga il login.

**Risposta rapida — Come uso un proxy statico con Selenium e Chrome?**

Per un proxy statico Selenium in Chrome, non inserire username e password in --proxy-server: Chrome accetta solo uno schema, un host e una porta. Usa uno dei due metodi funzionanti. Autorizza la tua macchina nell'IP allowlist del proxy, oppure esegui un piccolo forwarder locale che aggiunge il login per Chrome. **SteadyProxy** opzioni di login: Nome utente e password, oppure un'allowlist IP (fino a 10 IP). Aggiornato il 19 ottobre 2026.

## Quali sono i dati essenziali?

| Attributo | Valore |
| --- | --- |
| Opzione Chrome | --proxy-server=http://host:port, senza campo per un login |
| Metodo 1 | IP allowlist: fino a 10 IP tuoi si connettono senza password |
| Metodo 2 | Forwarder locale su 127.0.0.1:8899 che aggiunge l'header Proxy-Authorization |
| Da evitare | user:password dentro --proxy-server; plug-in del browser di origine sconosciuta |
| Verifica | Apri api.ipify.org nel browser pilotato |
| Testato | Il forwarder ha inoltrato richieste HTTPS e HTTP attraverso un proxy di test protetto da password, 19 ottobre 2026 |

## Perché Chrome rifiuta le credenziali nell'URL del proxy?

L'opzione --proxy-server di Chrome accetta uno schema, un host e una porta. La documentazione delle impostazioni di rete di Chromium non mostra username né password in quel formato. Quando un proxy richiede un login, una persona vedrebbe una finestra di accesso, ma uno script pilotato da Selenium non può compilarla in modo affidabile. Quindi il login deve avvenire fuori da Chrome: o il proxy si fida dell'IP della tua macchina, oppure un helper sulla tua macchina invia il login per Chrome.

## Come uso l'IP allowlist con Selenium?

È il metodo più semplice. Trova l'IP pubblico della tua macchina aprendo api.ipify.org senza il proxy. Aggiungi quell'IP all'allowlist del tuo account SteadyProxy; puoi registrare fino a 10 IP di origine. Poi passa a Chrome solo l'host e la porta. L'esempio usa la porta HTTP; SOCKS5 funziona allo stesso modo con socks5:// e la porta SOCKS5. La nostra [guida all'allowlist](https://steadyproxy.com/it/guides/ip-allowlisting/) spiega entrambe le direzioni dell'allowlist.

*selenium_allowlist.py: Chrome con solo host e porta*

```python
"""Selenium + Chrome through a static proxy authorised by IP allowlist.

Install: python -m pip install selenium
Before running: add this machine's public IP to the allowlist of your account.
"""
import os

from selenium import webdriver
from selenium.webdriver.common.by import By

HOST = os.environ.get("PROXY_HOST", "gw.steadyproxy.com")
PORT = os.environ.get("PROXY_PORT", "7777")

options = webdriver.ChromeOptions()
# Host and port only: Chrome's --proxy-server switch has no field for a username or password
options.add_argument("--proxy-server=http://" + HOST + ":" + PORT)

driver = webdriver.Chrome(options=options)
try:
    driver.get("https://api.ipify.org?format=json")
    print("Exit IP:", driver.find_element(By.TAG_NAME, "body").text)
finally:
    driver.quit()

```

## Come aggiunge il login un forwarder locale?

Un forwarder locale ascolta su 127.0.0.1, riceve le richieste proxy di Chrome senza login, aggiunge l'header Proxy-Authorization e le inoltra al tuo proxy statico. Usa solo la libreria standard di Python. Gestisce HTTPS tramite tunnel CONNECT e http:// in chiaro con una richiesta per connessione. Tienilo in ascolto su 127.0.0.1, così nessun'altra macchina può usare il tuo proxy tramite esso. L'abbiamo testato il 19 ottobre 2026 con curl su HTTPS e HTTP, attraverso un proxy di test che rifiuta le richieste senza il login corretto.

*local_forwarder.py: 127.0.0.1:8899 verso il tuo proxy statico*

```python
"""Local forwarder: Chrome -> 127.0.0.1:8899 (no login) -> static proxy (with login).

It adds the Proxy-Authorization header for you. Keep it bound to 127.0.0.1.
Run: python local_forwarder.py   (standard library only)
"""
import asyncio
import base64
import os

LISTEN_PORT = int(os.environ.get("LOCAL_PORT", "8899"))
UPSTREAM_HOST = os.environ.get("PROXY_HOST", "gw.steadyproxy.com")
UPSTREAM_PORT = int(os.environ.get("PROXY_PORT", "7777"))
CREDENTIALS = os.environ.get("PROXY_USER", "USERNAME") + ":" + os.environ.get("PROXY_PASS", "PASSWORD")
AUTH = "Proxy-Authorization: Basic " + base64.b64encode(CREDENTIALS.encode()).decode()
DROP = ("proxy-authorization:", "proxy-connection:", "connection:")


async def pipe(reader, writer):
    try:
        while data := await reader.read(65536):
            writer.write(data)
            await writer.drain()
    except ConnectionError:
        pass
    finally:
        writer.close()


async def handle(client_reader, client_writer):
    try:
        head = await client_reader.readuntil(b"\r\n\r\n")
    except (asyncio.IncompleteReadError, asyncio.LimitOverrunError):
        client_writer.close()
        return
    lines = head.decode("latin-1").split("\r\n")
    headers = [h for h in lines[1:] if h and not h.lower().startswith(DROP)]
    headers.append(AUTH)
    if not lines[0].upper().startswith("CONNECT "):
        headers.append("Connection: close")  # plain http:// - one request per connection
    try:
        up_reader, up_writer = await asyncio.open_connection(UPSTREAM_HOST, UPSTREAM_PORT)
    except OSError:
        client_writer.write(b"HTTP/1.1 502 Bad Gateway\r\nContent-Length: 0\r\n\r\n")
        client_writer.close()
        return
    up_writer.write(("\r\n".join([lines[0]] + headers) + "\r\n\r\n").encode("latin-1"))
    await up_writer.drain()
    await asyncio.gather(pipe(client_reader, up_writer), pipe(up_reader, client_writer))


async def main():
    server = await asyncio.start_server(handle, "127.0.0.1", LISTEN_PORT)
    print("Forwarding 127.0.0.1:%d -> %s:%d" % (LISTEN_PORT, UPSTREAM_HOST, UPSTREAM_PORT))
    async with server:
        await server.serve_forever()


if __name__ == "__main__":
    asyncio.run(main())

```

Avvia il forwarder in un terminale, poi esegui Selenium con l'indirizzo locale. Chrome non vede mai la password, e il login resta nelle variabili d'ambiente sulla tua macchina.

*selenium_forwarder.py: Chrome attraverso il forwarder locale*

```python
"""Selenium + Chrome through the local forwarder (username/password kept out of Chrome).

Start local_forwarder.py first, then run this file.
"""
from selenium import webdriver
from selenium.webdriver.common.by import By

options = webdriver.ChromeOptions()
options.add_argument("--proxy-server=http://127.0.0.1:8899")

driver = webdriver.Chrome(options=options)
try:
    driver.get("https://api.ipify.org?format=json")
    print("Exit IP:", driver.find_element(By.TAG_NAME, "body").text)
finally:
    driver.quit()

```

## Come eseguo più IP statici con Selenium?

Esegui un forwarder per IP sulla propria porta locale, come 8899, 8900 e 8901, ognuno con le credenziali di quell'IP. Avvia un driver Chrome per porta. Con l'IP allowlist, salti i forwarder e passi l'host e la porta di ogni IP al suo driver. Assegna a ogni driver il proprio --user-data-dir se deve conservare i cookie tra un'esecuzione e l'altra. Verifica ogni driver con api.ipify.org prima del lavoro reale.

## Lo stesso problema esiste con Firefox e Selenium?

Sì, in forma simile. Firefox legge host e porta del proxy dalle sue preferenze, e un login proxy HTTP appare come una finestra di dialogo che l'automazione non può compilare in modo affidabile. Funzionano gli stessi due metodi: l'IP allowlist, oppure il forwarder locale con il proxy HTTP di Firefox impostato su 127.0.0.1 e porta 8899. Per uno strumento di automazione del browser con login proxy integrato, vedi la [guida a Playwright](https://steadyproxy.com/it/guides/playwright-static-proxy/).

## Cos'altro si chiede su Selenium e i proxy statici?

### Posso scrivere http://user:password@host:port in --proxy-server?

Non funziona in modo affidabile. Il formato documentato di Chrome per --proxy-server non ha spazio per un login, quindi le credenziali non vengono usate. Le richieste poi falliscono con un errore di autenticazione proxy o mostrano una finestra di accesso. Usa l'IP allowlist o il forwarder locale descritti in questa pagina.

### Un'estensione di Chrome è un buon modo per inviare il login del proxy?

Può funzionare, ma aggiunge codice con ampi permessi al browser che automatizzi, e le regole delle estensioni cambiano tra le versioni di Chrome. I due metodi qui non hanno parti mobili dentro Chrome. Se usi un'estensione, scrivila tu o verificala, e tienila fuori dai profili usati per altro lavoro.

### Il forwarder locale è sicuro?

Ascolta solo su 127.0.0.1, quindi possono usarlo solo i programmi sulla tua macchina. Chiunque abbia accesso alla tua macchina potrebbe usarlo, perché potrebbe leggere le tue variabili d'ambiente. Arrestalo quando il lavoro è finito. Per impostazione predefinita non registra nulla; aggiungi il logging solo senza l'header Proxy-Authorization.

### Come trovo l'IP pubblico da aggiungere alla allowlist?

Sulla macchina che esegue Selenium, apri https://api.ipify.org senza il proxy. Quello è l'indirizzo che vede il proxy. Se il tuo ufficio o server ha un IP fisso, aggiungilo una volta alla allowlist. Una connessione domestica il cui IP cambia è poco adatta; usa il forwarder con nome utente e password.

### Selenium Wire o una libreria simile risolve il problema?

Alcune librerie aggiungono il login al proxy in Selenium eseguendo un proprio proxy di intercettazione, più o meno come il forwarder qui. Verifica che una libreria sia ancora mantenuta prima di dipenderne. Il forwarder in questa pagina è di circa 60 righe di Python con libreria standard che puoi leggere per intero.

### Quanti IP posso aggiungere alla allowlist per le macchine Selenium?

Fino a 10 IP di origine sul tuo account SteadyProxy, che copre la maggior parte degli uffici e delle flotte di server. Le nostre opzioni di login sono: Nome utente e password, oppure un'allowlist IP (fino a 10 IP). Se esegui Selenium su più macchine, instradale tramite un server con IP fisso, oppure usa il forwarder con nome utente e password su ogni macchina.

## Quali fonti usa questa guida?

1. [Impostazioni di rete (formato --proxy-server)](https://www.chromium.org/developers/design-documents/network-settings/) — The Chromium Projects (2026-10-19)
2. [stream asyncio](https://docs.python.org/3/library/asyncio-stream.html) — Python Software Foundation (2026-10-19)
3. [Selenium WebDriver: opzioni di Chrome](https://www.selenium.dev/documentation/webdriver/browsers/chrome/) — Selenium (2026-10-19)

---

SteadyProxy: SteadyProxy è un provider di proxy statici: IP ISP (residenziali statici) e IP datacenter dedicati noleggiati per IP per 30 giorni, pagati in criptovaluta senza caricare documenti d'identità.
