Configurare il proxy per APT?


72

Devo configurare il proxy. Non c'erano apt.conffile, etc/apt/quindi l'ho creato usando nano.

Ma non capisco cosa devo scrivere lì. Ho scritto http_proxy = http://lgn:pwd@192.168.1.254:8080/lì e poi riavviato networking. Ma quando provo a apt-get updatefarlo, non funziona.

In realtà non capisco quale porta e IP dovrei scrivere nel apt.conffile (c'era un esempio con 192.168.1.254ip e 8080porta, quindi ho deciso di usarli).


C'è un cambiamento nelle impostazioni del proxy per ottenere il lavoro in proxy aziendale in visita ubuntu github.com/navinas33/docker_ubuntu.git funziona ...
Navin come

Risposte:


103

Per utilizzare un proxy, è necessario un server proxy. L'IP e la porta devono provenire da questo server proxy. Login e pwd devono essere l'utente e la password sul server proxy (se il proxy richiede l'accesso).

Dal sito help.ubuntu.com :

Metodo del file di configurazione APT

Questo metodo utilizza il file apt.conf che si trova nella directory / etc / apt /. Questo metodo è utile se si desidera che apt-get (e non altre applicazioni) utilizzi un proxy http in modo permanente.

Su alcune installazioni non ci saranno file apt-conf impostati. Modifica il file apt-conf (o creane uno nuovo se non ne hai ancora nessuno) usando l'editor che preferisci.

sudo nano /etc/apt/apt.conf

Aggiungi questa riga al tuo file /etc/apt/apt.conf (sostituisci i tuoi dettagli con il tuo indirizzo proxy e proxyport).

Acquire::http::Proxy "http://yourproxyaddress:proxyport";

Salvare il file apt.conf.

Se il tuo proxy ha bisogno di un login / password, sostituisci:

"http://yourproxyaddress:proxyport";

con:

"http://username:password@yourproxyaddress:proxyport";

utilizzando username e password dal server proxy.


6
/etc/apt/apt.conf.d/È preferibile aggiungere un file locale separato in modo da non dover modificare i file di configurazione di base del sistema. In questo modo, se vengono aggiornati in una versione successiva del pacchetto, non è necessario unire manualmente le modifiche locali.
triplo il

Esiste un file conf proxy nella directory utente?
becko,

Questa risposta necessita di un aggiornamento: gksudo è obsoleto. Prendi in considerazione la possibilità di suggerire altri editor non GUI o sudo -Hinvece di gksudo se usi gedit o simili.

24

Questa è una risposta più generale insieme a apt config.

Dato che ci sono molti posti in cui configurare le impostazioni del proxy, all'inizio potrebbe creare confusione. Consentitemi di riassumere alcune cose e suggerire alcune buone pratiche.

Per i programmi della console

Es: wget, git e quasi tutte le applicazioni console che si collegano a Internet.

Se si desidera configurare il proxy ogni volta che si eseguono i comandi per qualche motivo, impostare le variabili di ambiente utilizzando i seguenti comandi.

export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export ftp_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/

Altrimenti, se si desidera utilizzare le stesse impostazioni ogni volta per tutti gli utenti, utilizzare queste.

Configura in bashrc

$ nano /etc/bash.bashrc
export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export ftp_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/

Configura in /etc/environment

$ nano /etc/environment
https_proxy="http://myproxy.server.com:8080/" 
ftp_proxy="http://myproxy.server.com:8080/" ...

Configurare utilizzando la GUI

Apri le impostazioni di rete e imposta il proxy di rete a livello di sistema.

Rete -> Proxy di rete -> Configura -> Applica a tutto il sistema.

Ma questo potrebbe non essere utile se si dispone dell'autenticazione per il proxy.

Per apt.

Devi fare un lavoro extra per apt, poiché per inciso apt non obbedisce alle variabili di ambiente,

$ nano /etc/apt/apt.conf
Acquire::http::Proxy "http://USERNAME:PASSWORD@SERVER:PORT";
Acquire::https::Proxy "https://USERNAME:PASSWORD@SERVER:PORT";

Per tutto ciò che non rientra in questo ambito, deve essere presente un'opzione per configurare le impostazioni proxy nell'applicazione stessa. Altrimenti mi dispiace;)


2
la configurazione in / etc / environment è molto importante perché se si configura semplicemente http_proxy var per l'utente, quando si passa alla modalità sudo (per cose come 'sudo apt-get update'), il terminale di solito non preserva l'ambiente attuale vars; molto importante per testare le tue impostazioni: sudo echo $ http_proxy
belun,

HTTP_PROXY(in maiuscolo) sembra essere il nome standard per quella variabile, anche se molti programmi torneranno alla versione in minuscolo. https_proxy(nota in lettere minuscole) è la maiuscola corretta per questo, ma non lo useresti mai da solo, come fai /etc/environmentsopra. (Penso che ssia un refuso.)
Curt J. Sampson,

Qual è il motivo per cui APT richiede una configurazione aggiuntiva del proxy? Perché non obbedisce semplicemente con / etc / environment?
Loreno,

22

Qualcosa di simile al seguente dovrebbe funzionare:

Acquire::http::proxy "http://lgn:pwd@192.168.1.254:8080/";
Acquire::https::proxy "http://lgn:pwd@192.168.1.254:8080/";

C'è differenza quale porta e ip usare?
scade il

Bene, sì, è necessario inserire i dettagli corretti per il proxy che si desidera utilizzare, ovviamente.
Dennis Kaarsemaker,

er ... ip - è l'ip del router? Intendo questo ip che ho usato dall'esempio ma tutte le impostazioni del router che configuro nel browser usando l' 192.168.1.1ip. Dovrei usare .1? e login e password dovrebbero essere root o router di ubuntu?
scade il

2
Sai anche cosa stai facendo? Come fai a sapere che è necessario utilizzare un proxy se non si conoscono i dettagli per esso?
Dennis Kaarsemaker,

5
Quindi chiedi al tuo insegnante. Questo non è un sito "fai i compiti per me".
Dennis Kaarsemaker,

5

Quello che puoi fare è anche provare a eseguire il comando con sudo -E, che prenderà le impostazioni dell'ambiente. Sembra funzionare per me quando provo ad aggiornare, aggiungere-apt-repository e installare. Esempio:

sudo -E add-apt-repository ppa:xxxxx

Secondo @David Foerster questo funziona solo per l'interazione manuale tramite shell, ma non funziona su attività e servizi automatizzati che invocano Apt senza l'interazione dell'utente.


Tuttavia, ciò non aiuta con attività e servizi automatizzati che invocano Apt senza l'interazione dell'utente.
David Foerster,

Grazie per l'avviso, aggiungerò il tuo commento alla risposta.
Frank Qiu,

2

Se hai bisogno di usare apt dietro un proxy, probabilmente anche tutto il resto ha bisogno della configurazione del proxy. Mi piace gestire le mie impostazioni proxy in un unico posto, che sarebbe la variabile di ambiente.

Per questo creo un /etc/profiles.d/99-proxy.sh, che contiene le impostazioni proxy necessarie (come descritto da Larent):

export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export https_proxy=$http_proxy
export ftps_proxy=$http_proxy

in questo modo, tutti gli utenti su quella macchina hanno accesso al proxy. (non dimenticare chmod a+x)

Quando usi apt o apt-get come utente, quell'utente è in grado di usare sudo. Come descritto da Frank Qiu, sudo non passa le variabili di ambiente. Per questo puoi aggiungere

Defaults env_keep += "http_proxy https_proxy ftp_proxy"

a (ad es.)

/etc/sudoers.d/00-environment 

o direttamente nel

/etc/sudoers

file. In questo modo devi solo gestire le impostazioni del proxy in un unico posto.


0

La domanda originale potrebbe essere nella direzione sbagliata. Credo che tu voglia installare un server proxy in Linux?

Bene, questo è completamente diverso dal voler usare un proxy esistente dall'ambiente Linux.

Se la tua domanda è la prima, utilizza i servizi di terze parti per configurare un server proxy in Linux. Un esempio potrebbe essere il calamaro.

Comandi semplici per installare squid:

$ sudo apt-get install squid3

Quindi modificare la configurazione per consentire la rete locale (in questo caso il proprio computer). $ sudo vi /etc/squid3/squid.conf

Aggiungi / Modifica le seguenti righe:

http_access allow local_net
acl local_net src 192.168.1.0/255.255.255.0

Supponendo che il tuo IP per la macchina Linux sia nel blocco 192.168.1 / 24.


Probabilmente la maggior parte dei lettori di questa domanda ha già installato squid;), imposta anche le http[s]_proxyvariabili ENV e ora si chiede, perché APT continua a non funzionare. Ma se stai ricevendo HTTP 403 da tutto tranne che dalla macchina con squid- cerca ancora una volta tutte le occorrenze della parola denyche non sono commentate. (specialmente con http_accessla stessa linea.
Tomasz Gandor l'
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.