'apt-get' non funziona con il proxy


52

Per il comando

sudo apt-get update

Ottengo il seguente errore:

W: Failed to fetch http://ch.archive.ubuntu.com/ubuntu/dists/maverick-updates/multiverse/binary-i386/Packages.gz  
407  Proxy Authentication Required (The ISA Server requires authorization to fulfill the request. Access to the Web Proxy filter is denied. )

Sto eseguendo Ubuntu 10.10 installato su Windows XP usando VirtualBox. Per le connessioni Internet sto usando un server proxy con un'autenticazione. Ho provato a utilizzare lo gnome-network-proxystrumento per impostare le impostazioni proxy a livello di sistema.

Dopo che questo /etc/environmentè stato aggiornato per http_proxyvariabile con il formato http://my_proxy:port/, non c'erano dati di autenticazione.

Ho controllato questo con Firefox. Il browser mi ha chiesto login e password e tutto funzionava bene. Sfortunatamente non era il caso di apt-get. Ho anche provato a fare come descritto qui . Sfortunatamente non funziona.

Potrebbe in qualche modo essere correlato al fatto che un proxy si trova in un dominio Windows, qualche idea?

Il mio nome proxy è http-proxy . " - " è un personaggio speciale qui?


2
Hai usato il proxy di rete globale in sistema -> preferenze -> proxy di rete e hai applicato le impostazioni a livello globale?
DemonWareXT,

Potresti provare lo strumento GUI GrrProxy di
Renae Lider,

Risposte:


53

Per la mia rete aziendale mi è stato dato dal mio amministratore il nome del proxy nel formato:

http://[username]:[password]@[proxy-webaddress]:[port]

Per la nostra rete Windows il nostro nome utente è nel formato:

[domain]\[username]

Per esempio:

http://mywindowsdomain\fossfreedom:password@askubuntu-proxy.com:8080

Questo è stato aggiunto al seguente NUOVO file (non esiste per impostazione predefinita):

gksudo gedit /etc/apt/apt.conf.d/01proxy

È stato aggiunto il seguente testo:

Acquire::http::Proxy "http://mywindowsdomain\fossfreedom:password@askubuntu-proxy.com:8080";

Se stai utilizzando un proxy anonimo, non hai bisogno delle tue credenziali di accesso:

Acquire::http::Proxy "http://askubuntu-proxy.com:8080";

Salvare il file e verificare che tutto fosse a posto con:

sudo apt-get update

A chi leggerà questo in seguito: questo sembra un trucco per gli occhi non allenati, ma è un modo incredibilmente semplice per far obbedire il proxy aziendale.
macduff,

1
Funziona perfettamente. A meno che non abbiate precedentemente impostato /etc/apt/apt.conf con una linea di acquisizione errata. Ho fatto proprio questo, e tutto quello che dovevo fare era tornare indietro ed eliminare quella riga.
Salta Huffman il

Su Ubuntu 12.10, ho dovuto copiare le modifiche apportate a /etc/apt/apt.conf.d/01proxy in /etc/apt/apt.conf prima che funzionasse.
Stephen Niedzielski,

anche con queste modifiche non sono riuscito a farlo funzionare per me con 12.04 ... ma sono riuscito a farlo funzionare usando e configurando ntlmaps e puntando il file apt.conf sul proxy intermedio lì.
monkut

The program 'gksudo' is currently not installed. You can install it by typing: sudo apt-get install gksu(che ovviamente non funzionerà senza un proxy impostato ...) Fortunatamente sudofunziona bene.
TED

13

Ho scoperto che USERNAME e PASSWORD immessi nell'applet "Network Proxy" non vengono memorizzati nel file apt.conf, è necessario aggiungere manualmente nome utente e password nel file /etc/apt/apt.conf.

L'applet "Network Proxy" memorizza solo il nome host e la porta.

La sintassi di base è

Acquire::http::proxy "http://User:Password@host:port/";

Acquire::ftp::proxy "ftp://User:Password@host:port/";

Acquire::https::proxy "https://User:Password@host:port/";

Se si utilizzano nomi utente e password di Windows, seguire questo consiglio:

User = Domain/Username

(gli utenti di Windows /non usano \)

Se si utilizza una password complessa / Windows di Windows con caratteri speciali, è necessario utilizzare la codifica URL per i valori, ad esempio una "@" nella password sarebbe "% 40".


(Gli utenti di Windows usano / no) Quindi è per questo che sono bloccato :) Grazie!
GaiusSensei,

9

Prova a impostare http_proxysu http: // user: pass @ proxyserver: port /

modifica:
se l'impostazione http_proxynon funziona, provare a modificarla apt.conf. In
Ubuntu apt.confè frammentato nella /etc/apt/apt.conf.d/directory.
In questa directory modifica /etc/apt/apt.conf.d/01ubuntu:

APT {
    Acquire {
        http {
            Proxy "http://user:password@server:port";
        };
    };
};

oppure prova a impostarlo utilizzando Synaptic: Impostazioni -> Preferenze -> Rete,
quindi imposta le impostazioni del proxy in "Configurazione manuale del proxy".


3
Intendi il file / etc / environment?
Tommyk,

Sì, imposterà questa variabile a livello globale.
Casual Coder

Come si potrebbero codificare i due punti come parte della password?
k0pernikus,

/ etc / environment non funziona con apt-get (o almeno richiede il riavvio;), la modifica di apt.conf ha effetto immediato
Danubian Sailor

Posso confermare l'impostazione "Configurazione proxy manuale" e "Applica a livello di sistema" in Rete funziona con apt-get.
Will Sheppard,

4

Sono dietro un proxy MS ISA e sto usando Cntlm Authentication Proxy; nel apt.confho 4 righe; Ho letto da qualche parte che l'ultima riga deve essere vuota, ma non ne sono sicuro. Funziona perfettamente:

Acquire::http::proxy "http://127.0.0.1:3128/";
Acquire::ftp::proxy "ftp://127.0.0.1:3128/";
Acquire::https::proxy "https://127.0.0.1:3128/";

3

cntlm ha un'opzione di scoperta che aiuta a trovare la configurazione giusta per lavorare con l'autenticazione NTLM della tua rete, prova questo:

cntlm -I -M http://test.com

copia e incolla i risultati in /etc/cntlm.conf

riavvia cntlm


'cntlm' is currently not installed. You can install it by typing: sudo apt-get install cntlm(che se il corso non funziona se il mio proxy non è impostato correttamente ...)
TED

2
  1. Apri il terminale e aggiungi le seguenti righe a /etc/apt/apt.conf.

    gksu gedit /etc/apt/apt.conf
    
  2. Aggiungi queste 2 righe:

    Acquire::http::Proxy "http://user:pass@proxy-host:port/";
    Acquire::ftp::Proxy "http://user:pass@proxy-host:port/";
    
  3. Salva ed esci.

    Ora apt-get updatee dovrebbe funzionare dietro un proxy, ma noterai che qualcosa non funziona, questo è il add-apt-repositorycomando.

    Per poter aggiungere un repository dietro un proxy, digitare i seguenti comandi:

    # export https_proxy="http://192.168.1.5:8080"
    # sed -i 's/"keyserver.ubuntu.com"/"hkp://keyserver.ubuntu.com:80"/' /usr/share`/pyshared/softwareproperties/ppa.py`
    

    Ora puoi aggiungere repository in Lucid e Natty usando LANG = C add-apt-repository

    Esempio:

    root @ ubuntu: ~ # LANG = C add-apt-repository ppa: motumedia / mplayer-daily

Via Unixmen


2

Come applicare apt-get update o install in Ubuntu? Ero dietro un server proxy e dopo aver installato Ubuntu non sono riuscito ad aggiornare o installare nulla usando il comando apt-get. Dopo aver cercato ho scoperto che il pacchetto apt è stato modificato, ora non c'è più apt.conf nella directory / etc / apt.

Quello che ho fatto per risolvere questo problema è il seguente:

Apri il terminale e il file

sudo -H gedit /etc/bash.bashrc

e aggiungi in fondo al file queste 2 righe:

#proxy 
export http_proxy=http://user:password@host:port/
export ftp_proxy=http://user:pass@host:port/

Ora salva ed esci, Ora sarai in grado di aggiornare, aggiornare o installare i pacchetti in Ubuntu


Ho aggiunto esportazioni come mi hai suggerito. Non funziona ancora. Ora ho ricevuto un messaggio di errore diverso "Impossibile connettersi a extras.ubuntu.com:80 (91.189.88.33). - connect (110: connessione scaduta)". <br> La cosa strana è che quando inserisco le stesse impostazioni proxy nelle preferenze di Firefox, posso navigare in un web.
Tommyk,

@tommyk potresti pubblicare la tua /etc/apt/sources.list e aggiornare la tua domanda qui o provare a eliminare extras.ubuntu.com dalla tua /etc/apt/sources.list ed eseguire apt-get update
hhlp

Ho sostituito il mio sources.list con uno predefinito dalla pagina web di Ubuntu. Ho ancora ricevuto lo stesso errore per ogni repository elencato in questo file.
Tommyk,

2

Questo ha funzionato per me !!

(l'aggiunta manuale del proxy dalla GUI tramite le impostazioni di sistema-> rete ecc. dovrebbe funzionare) Ma in caso contrario ed esporti la variabile env dal terminale:

export http_proxy=http://<your proxy url>:<proxy port>

e ancora per https:

export https_proxy= <usually the same as the http>

Più importante aggiungere -E: per eseguire sudo apt-get installo sudo apt-get updateè necessario eseguire:

sudo -E <command>

"-E" usa le variabili di ambiente dell'utente per il root (sudo), a prescindere dal http_proxy / https_proxy che hai appena esportato.

Spero che sia d'aiuto :)


1

Con un proxy BlueCoat, per me il formato del apt.conffile doveva apparire come:

Acquire::http::proxy "http://Domain%5cUserID:Password@proxy.name.whatever:80/";
Acquire::ftp::proxy "ftp://Domain%5cUserID:Password@proxy.name.whatever:80/";
Acquire::https::proxy "https://Domain%5cUserID:Password@proxy.name.whatever:80/";

^ ^ ^ ^ Riga vuota dopo la terza riga proxy, non inserire questa riga. ^ ^ ^ ^


1

Ha avuto lo stesso problema dopo l'installazione di Ubuntu 18.04. Ciò che ha funzionato per me è stato:

  1. Apri la schermata Proxy di rete in Impostazioni di rete
  2. Seleziona Manuale e aggiungi le informazioni proxy http e https
  3. Inoltre, imposta il campo Ignora host con:
    https://extensions.gnome.org*, *.extensions.gnome.org*
  4. Ubuntu riavviato

Per quanto riguarda il punto 3, non sono sicuro se l'aggiunta della voce sopra funziona o no, ma questo passaggio funziona per me


0
  1. Avvia Synaptic (vai su Sistema -> Amministrazione -> Synaptic in Gnome 2 o digita "synaptic" in Dash in Unity).
  2. Nella barra dei menu, fai clic su Impostazioni , quindi su Preferenze .
  3. Quando viene visualizzata la finestra Preferenze, fai clic sulla scheda Rete .
  4. Seleziona il pulsante di opzione Configurazione proxy manuale e inserisci le informazioni del proxy.
  5. Per applicare le informazioni di autenticazione, fai clic sul pulsante Autenticazione e inserisci nome utente e password.
  6. Fare clic su OK per chiudere la finestra di autenticazione HTTP.
  7. Fai clic su OK per chiudere la finestra Preferenze.
  8. Fare clic sul pulsante Ricarica per aggiornare gli elenchi dei pacchetti.

Notare che questa modifica alle impostazioni influirà anche su Update Manager .


0

Questa soluzione one-liner ha funzionato per me:

sudo env http_proxy=http://<ip>:<port> apt-get update
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.