Visual Studio Code è in grado di sincronizzare estensioni, impostazioni e snippet tra dispositivi, ma tutto ciò funziona attraverso i server Microsoft, che spesso risultano inaccessibili dietro un firewall aziendale, in reti aziendali con filtraggio rigoroso o in regioni con accesso limitato. Il risultato è che il Marketplace delle estensioni si blocca, Settings Sync non si connette e gli aggiornamenti non vengono scaricati. In questo articolo vedremo come configurare correttamente un proxy in VS Code affinché tutti questi problemi scompaiano una volta per tutte.
Perché VS Code non funziona senza proxy in alcune reti
Visual Studio Code non è solo un editor di testo. Sotto il cofano, si connette costantemente a server esterni: scarica aggiornamenti delle estensioni da marketplace.visualstudio.com, sincronizza le impostazioni tramite vscode.dev e i server di GitHub/Account Microsoft, controlla gli aggiornamenti dell'editor stesso e invia telemetria (se non disabilitata).
Tutte queste richieste avvengono tramite connessioni HTTPS standard. Ed è qui che iniziano i problemi:
- Reti aziendali — gli amministratori di sistema bloccano l'accesso diretto a Internet, richiedendo di instradare tutto il traffico attraverso un server proxy aziendale. VS Code "non lo sa" e semplicemente non riesce a connettersi.
- Firewall aziendali con whitelist — solo domini specifici sono consentiti, e
marketplace.visualstudio.comnon è incluso in questo elenco. - Limitazioni regionali — in alcuni paesi e regioni, l'accesso ai servizi Microsoft è limitato o instabile. Un proxy con IP del paese desiderato risolve il problema.
- Conflitti VPN — alcune VPN aziendali intercettano il traffico, ma non lo inoltrano correttamente, causando la perdita di connessione di VS Code con il Marketplace.
- Internet instabile + proxy con caching — un server proxy può memorizzare nella cache i pacchetti delle estensioni e accelerare l'installazione in team con una connessione lenta.
I sintomi di tutti questi problemi sono simili: le estensioni non si installano o si bloccano durante il caricamento, Settings Sync restituisce un errore di autorizzazione o "impossibile connettersi", gli aggiornamenti di VS Code non vengono scaricati e nel pannello Output si vedono errori ECONNREFUSED o ETIMEDOUT.
Come VS Code gestisce il proxy: cosa è importante sapere
VS Code è costruito su Electron, che utilizza il motore Chromium per le richieste di rete. Ciò significa che le impostazioni del proxy funzionano in modo simile a quelle del browser: l'editor supporta i proxy HTTP, HTTPS e SOCKS5.
È importante comprendere la gerarchia con cui VS Code cerca le impostazioni del proxy:
- Impostazioni del proxy di sistema — se in Windows/macOS/Linux è configurato un proxy di sistema, VS Code lo rileverà automaticamente (parametro
http.systemProxy). - Variabili d'ambiente —
HTTP_PROXY,HTTPS_PROXY,NO_PROXY— modo standard per Linux/macOS. - Impostazioni in settings.json — specifica esplicita del proxy tramite i parametri
http.proxye opzioni correlate. - Argomenti della riga di comando — è possibile avviare VS Code con flag del proxy direttamente.
Priorità: le impostazioni esplicite in settings.json sovrascrivono le variabili d'ambiente, che a loro volta sovrascrivono le impostazioni di sistema. Se qualcosa non funziona, controlla in questo ordine.
💡 Nota importante
VS Code utilizza due stack di rete separati: uno per l'editor stesso (Electron/Chromium), l'altro per le estensioni, che possono effettuare proprie richieste HTTP tramite Node.js. La configurazione del proxy in settings.json copre entrambi gli stack, ma alcune estensioni ignorano le impostazioni di sistema e richiedono una configurazione separata.
Configurazione del proxy tramite settings.json: passo dopo passo
Questo è il modo più affidabile e raccomandato. Le impostazioni in settings.json si applicano globalmente a tutte le richieste di rete di VS Code.
Passo 1: Apri settings.json
Premi Ctrl+Shift+P (o Cmd+Shift+P su Mac), digita «Open User Settings (JSON)» e seleziona questa voce. Si aprirà il file delle impostazioni utente.
Passo 2: Aggiungi i parametri del proxy
Inserisci le righe necessarie all'interno dell'oggetto JSON. Esempi per diversi tipi di proxy:
Proxy HTTP/HTTPS (senza autorizzazione):
{
"http.proxy": "http://192.168.1.100:3128",
"http.proxyStrictSSL": false
}
Proxy HTTP/HTTPS con nome utente e password:
{
"http.proxy": "http://username:password@proxy-host:3128",
"http.proxyStrictSSL": false
}
Proxy SOCKS5:
{
"http.proxy": "socks5://username:password@proxy-host:1080",
"http.proxyStrictSSL": false
}
Passo 3: Comprendere i parametri
| Parametro | Valore | Quando utilizzare |
|---|---|---|
http.proxy |
URL del proxy | Parametro principale, obbligatorio |
http.proxyStrictSSL |
true / false | false — se il proxy utilizza un certificato autofirmato |
http.proxyAuthorization |
Stringa Base64 | Modo alternativo per trasmettere nome utente/password |
http.noProxy |
Elenco di domini | Domini che devono bypassare il proxy (localhost, host interni) |
http.systemProxy |
on / off / override | Gestione del proxy di sistema (nuovo parametro in VS Code 1.87+) |
Passo 4: Riavvia VS Code
Dopo aver salvato settings.json, chiudi completamente e riapri VS Code. A volte il riavvio parziale (Reload Window) non applica le nuove impostazioni di rete.
Proxy tramite variabili d'ambiente (HTTP_PROXY / HTTPS_PROXY)
Questo metodo è particolarmente comodo su Linux e macOS, così come in team dove il proxy è configurato a livello di sistema e deve essere applicato a tutti gli strumenti di sviluppo, non solo a VS Code, ma anche a npm, pip, git, ecc.
Linux / macOS — configurazione permanente
Aggiungi a ~/.bashrc, ~/.zshrc o ~/.profile:
export HTTP_PROXY="http://username:password@proxy-host:3128" export HTTPS_PROXY="http://username:password@proxy-host:3128" export NO_PROXY="localhost,127.0.0.1,*.local,*.internal"
Dopo di che, esegui source ~/.bashrc (o riconnettiti alla sessione) e avvia VS Code dal terminale con il comando code . — le variabili saranno ereditate.
Windows — tramite variabili di sistema
Apri "Impostazioni di sistema" → "Impostazioni avanzate di sistema" → "Variabili d'ambiente". Aggiungi le variabili HTTP_PROXY e HTTPS_PROXY nella sezione "Variabili utente" (o "Variabili di sistema" per applicarle a tutti gli utenti). Dopo aver salvato, riavvia VS Code.
Avvio di VS Code con proxy direttamente dalla riga di comando
Se hai bisogno di controllare rapidamente senza configurazione permanente:
# Linux/macOS HTTP_PROXY=http://proxy-host:3128 HTTPS_PROXY=http://proxy-host:3128 code . # Windows PowerShell $env:HTTP_PROXY="http://proxy-host:3128"; $env:HTTPS_PROXY="http://proxy-host:3128"; code .
Settings Sync tramite proxy: diagnosi e risoluzione dei problemi
Settings Sync è una funzione integrata di VS Code che sincronizza impostazioni, estensioni, snippet, scorciatoie da tastiera e profili tra dispositivi tramite un account Microsoft o GitHub. Funziona tramite richieste HTTPS ai server Microsoft e GitHub, ed è qui che il proxy è di fondamentale importanza.
Errori tipici di Settings Sync dietro un proxy
| Errore | Causa | Soluzione |
|---|---|---|
| «Impossibile connettersi al server» | Proxy non configurato o bloccato | Configurare http.proxy in settings.json |
| «Autenticazione fallita» | Il proxy intercetta il token OAuth | Disabilitare l'ispezione SSL per *.microsoft.com |
| «La sincronizzazione è attivata ma non si sincronizza» | Il proxy aziendale blocca WebSocket | Utilizzare un proxy che supporta WebSocket |
| La sincronizzazione si blocca su «Sincronizzazione...» | Timeout di connessione tramite proxy lento | Cambia proxy con uno più veloce |
Diagnosi tramite Output
Apri Visualizza → Output e nel menu a discesa seleziona «Settings Sync». Qui puoi vedere tutti i tentativi di connessione e i codici di errore. Cerca righe con ECONNREFUSED, 407 Proxy Authentication Required o CERT_UNTRUSTED — ciascuno di questi codici indica un problema specifico con il proxy.
Se vedi l'errore 407 — il proxy richiede autorizzazione, aggiungi nome utente e password nell'URL del proxy. Se CERT_UNTRUSTED — imposta "http.proxyStrictSSL": false o aggiungi il certificato radice del CA aziendale.
Domini che devono essere accessibili per Settings Sync
Assicurati che i seguenti host siano accessibili tramite il tuo proxy:
login.microsoftonline.com— autorizzazione tramite Microsoft Accountgithub.com— autorizzazione tramite GitHubapi.github.com— API GitHub per la sincronizzazione tramite Gistvscode.dev— servizio di sincronizzazione di VS Code*.vscode-cdn.net— CDN per le risorse di VS Code
Extensions Marketplace: perché le estensioni non si installano e come risolvere
Il Marketplace di VS Code funziona tramite il dominio marketplace.visualstudio.com e i server CDN di Microsoft. Se il proxy è configurato correttamente, l'installazione delle estensioni funziona in modo trasparente. Ma ci sono alcuni problemi specifici.
L'estensione si installa, ma non funziona
Molte estensioni effettuano proprie richieste di rete all'avvio — ad esempio, scaricano server linguistici (LSP), dipendenze binarie o aggiornamenti di database. Queste richieste passano attraverso Node.js all'interno dell'estensione e sono soggette alle impostazioni del proxy di VS Code, ma solo se l'estensione è scritta tenendo conto delle variabili HTTP_PROXY.
Se l'estensione non funziona comunque dietro un proxy — controlla la sua documentazione. Molte estensioni popolari hanno impostazioni proxy proprie. Ad esempio:
- Python (Pylance/Pylint) — utilizza le variabili d'ambiente di sistema
- ESLint, Prettier — funzionano localmente, il proxy non è necessario
- GitHub Copilot — richiede accesso a
api.github.com, rileva il proxy da settings.json - Remote - SSH — il proxy è necessario per il tunnel SSH, configurato separatamente nel file di configurazione SSH
- Docker — utilizza il proxy di sistema del daemon Docker
Installazione manuale delle estensioni (offline)
Se il proxy non è disponibile o instabile, le estensioni possono essere installate manualmente tramite un file .vsix. Scarica il file dell'estensione da marketplace.visualstudio.com su una macchina con accesso a Internet, quindi in VS Code: Estensioni → ··· → Installa da VSIX.
Quale tipo di proxy scegliere per VS Code
La scelta del tipo di proxy dipende dal compito. Esaminiamo le principali opzioni relative allo sviluppo.
| Tipo di proxy | Velocità | Affidabilità | Quando è adatto per VS Code |
|---|---|---|---|
| Proxy di data center | ⚡ Alta | ✅ Stabili | Bypassare le restrizioni aziendali, scaricare estensioni, pipeline CI/CD |
| Proxy residenziali | 🔄 Media | ✅ Alta fiducia | Accesso a risorse geolimitate, test da una regione specifica |
| Proxy mobili | 🔄 Media | ✅ Massima fiducia | Raramente necessari per VS Code, ma utili nello sviluppo di applicazioni mobili con test geografici |
| Proxy aziendale (Squid, ISA) | ⚡ Alta | ⚠️ Dipende dalle impostazioni | Ambiente d'ufficio, obbligatorio per politica aziendale |
Per la maggior parte degli sviluppatori, che devono semplicemente bypassare le restrizioni aziendali o lavorare da un paese con accesso instabile ai server Microsoft, la scelta ottimale sarà un proxy di data center: sono veloci, stabili e adatti per compiti tecnici come il download di pacchetti e la sincronizzazione delle impostazioni.
Se invece l'obiettivo è testare un'applicazione da una specifica regione geografica (ad esempio, controllare come funziona il tuo servizio per gli utenti in Germania o negli Stati Uniti), allora saranno utili i proxy residenziali con IP reali di utenti domestici del paese desiderato.
Proxy aziendale con ispezione SSL: un caso particolare
I proxy aziendali con funzione di ispezione SSL (man-in-the-middle) rappresentano un problema particolare per gli sviluppatori. Tale proxy decripta il traffico HTTPS, lo controlla e lo ri-crittografa, firmando con il proprio certificato aziendale. Di conseguenza, VS Code vede un certificato "sconosciuto" e si rifiuta di funzionare.
Sintomi
- Errore
CERT_UNTRUSTEDoimpossibile verificare il primo certificatonell'Output - Le estensioni non si installano, anche se il proxy è configurato correttamente
- Settings Sync non si autorizza
- npm e pip segnalano anche errori sui certificati
Soluzione 1: Disabilitare il controllo SSL (veloce, ma meno sicuro)
{
"http.proxyStrictSSL": false
}
Questa è una soluzione rapida che disabilita il controllo del certificato SSL del proxy. Adatta per una rete aziendale interna, dove il proxy è fidato.
Soluzione 2: Aggiungere il certificato CA aziendale (il modo corretto)
Richiedi all'amministratore di sistema il certificato radice aziendale (file .pem o .crt) e aggiungilo alle impostazioni:
{
"http.proxy": "http://corporate-proxy:3128",
"http.proxyStrictSSL": true,
"http.proxyCertificates": true
}
Aggiungi anche il certificato nel keystore di sistema — VS Code utilizza i certificati di sistema a partire dalla versione 1.40. Su Windows, è sufficiente installare il certificato nei "Centri di certificazione radice attendibili" tramite certmgr.msc. Su Linux, aggiungi il certificato a /usr/local/share/ca-certificates/ ed esegui update-ca-certificates.
Soluzione 3: Variabile NODE_EXTRA_CA_CERTS
VS Code e le sue estensioni funzionano su Node.js, quindi puoi specificare certificati CA aggiuntivi tramite una variabile d'ambiente:
# Linux/macOS export NODE_EXTRA_CA_CERTS="/path/to/corporate-ca.pem" # Windows PowerShell $env:NODE_EXTRA_CA_CERTS="C:\certs\corporate-ca.pem"
Checklist: VS Code + proxy funziona correttamente
Utilizza questa checklist per assicurarti che tutto sia configurato correttamente o per trovare rapidamente la causa del problema.
✅ Configurazione di base del proxy
- Nel
settings.jsonè presente il parametrohttp.proxycon URL corretto - L'URL del proxy include lo schema:
http://osocks5:// - Se il proxy richiede autorizzazione, il nome utente e la password sono specificati nell'URL
- VS Code è stato completamente riavviato dopo la modifica delle impostazioni
✅ SSL e certificati
- Se il proxy ha ispezione SSL, è stato installato il certificato CA aziendale
- Oppure è stato impostato
"http.proxyStrictSSL": falsecome soluzione temporanea - Nell'Output non ci sono errori
CERT_UNTRUSTED
✅ Settings Sync
- I domini
login.microsoftonline.comevscode.devsono accessibili tramite proxy - L'autorizzazione tramite Microsoft Account o GitHub avviene con successo
- Nell'Output → Settings Sync non ci sono errori di connessione
- Lo stato di sincronizzazione nella barra di stato mostra l'icona attiva
✅ Marketplace e estensioni
- La ricerca di estensioni nel Marketplace funziona e mostra i risultati
- L'installazione di un'estensione si completa senza errori
- Le estensioni che richiedono accesso di rete (Copilot, Remote) funzionano correttamente
- Gli aggiornamenti delle estensioni vengono scaricati automaticamente
✅ Strumenti di sviluppo aggiuntivi
- npm è configurato per lavorare tramite proxy:
npm config set proxy http://proxy:3128 - git è configurato:
git config --global http.proxy http://proxy:3128 - pip (se si utilizza Python): le variabili
HTTP_PROXYsono impostate
Conclusione
Configurare un proxy in VS Code è un compito che si risolve una volta per tutte e libera da problemi con un Marketplace bloccato, Settings Sync non funzionante e estensioni che non riescono a scaricare dipendenze. Le conclusioni chiave di questo articolo sono:
- Il modo più affidabile è specificare
http.proxyinsettings.json: funziona sia per l'editor stesso che per la maggior parte delle estensioni. - Le variabili d'ambiente (
HTTP_PROXY,HTTPS_PROXY) sono comode per unificare le impostazioni del proxy per l'intero ambiente di sviluppo. - Il proxy aziendale con ispezione SSL richiede o la disabilitazione di
proxyStrictSSL, o l'installazione del certificato CA aziendale. - Settings Sync funziona tramite proxy senza impostazioni aggiuntive — l'importante è che siano accessibili i domini Microsoft e GitHub.
- La diagnosi inizia sempre da Output → Settings Sync e Output → Extensions — lì puoi vedere tutti gli errori di rete con i codici.
Se lavori in un ambiente con accesso limitato a Internet o hai bisogno di testare un'applicazione da una specifica regione geografica, ti consigliamo di utilizzare proxy di data center per un funzionamento stabile e veloce con gli strumenti di sviluppo — offrono alta velocità di connessione e sono ottimi per compiti tecnici come il download di pacchetti, la sincronizzazione delle impostazioni e il lavoro con repository remoti.
```