'apt-get' funktioniert nicht mit Proxy

52

Für den Befehl

sudo apt-get update

Ich erhalte folgenden Fehler:

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. )

Ich verwende Ubuntu 10.10, das unter Windows XP mit VirtualBox installiert wurde. Für Internetverbindungen verwende ich einen Proxy-Server mit Authentifizierung. Ich habe versucht, gnome-network-proxydie Proxy-Einstellungen mithilfe des Tools systemweit festzulegen.

Nachdem die Variable mit dem Format /etc/environmentaktualisiert wurde , gab es keine Authentifizierungsdaten.http_proxyhttp://my_proxy:port/

Ich habe das mit Firefox überprüft. Der Browser hat mich nach Login und Passwort gefragt und alles hat gut funktioniert. Bei apt-get war das leider nicht der Fall. Ich habe auch versucht, wie hier beschrieben zu tun . Geht leider nicht.

Kann es irgendwie damit zusammenhängen, dass sich ein Proxy in einer Windows-Domäne befindet?

Mein Proxy-Name ist http-Proxy . Ist ' - ' hier ein Sonderzeichen?

Tommyk
quelle
2
Haben Sie den globalen Netzwerk-Proxy unter System -> Einstellungen -> Netzwerk-Proxy verwendet und die Einstellungen global angewendet?
DemonWareXT
Sie können das einfach zu bedienende GUI-Tool GrrProxy
Renae Lider

Antworten:

52

Für mein Firmennetzwerk erhielt ich von meinem Administrator den Proxy-Namen im Format:

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

Für unser Windows-Netzwerk hat unser Benutzername das folgende Format:

[domain]\[username]

Zum Beispiel:

http://mywindowsdomain\fossfreedom:[email protected]:8080

Dies wurde der folgenden NEUEN Datei hinzugefügt (standardmäßig nicht vorhanden):

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

Der folgende Text wurde hinzugefügt:

Acquire::http::Proxy "http://mywindowsdomain\fossfreedom:[email protected]:8080";

Wenn Sie einen anonymen Proxy verwenden, benötigen Sie Ihre Anmeldeinformationen nicht:

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

Speichere die Datei und überprüfe, ob alles in Ordnung ist mit:

sudo apt-get update
fossfreedom
quelle
Für diejenigen, die dies später lesen werden: Dies scheint ein Hack für das ungeübte Auge zu sein, aber es ist eine unglaublich einfache Möglichkeit, den Konzern-Proxy zum Gehorchen zu bewegen.
Macduff
1
Das funktioniert einwandfrei. AUSSER Sie haben zuvor die Datei /etc/apt/apt.conf mit einer fehlerhaften Acquire-Zeile versehen. Ich habe genau das getan, und alles, was ich tun musste, war zurückzugehen und diese Zeile zu löschen.
Überspringen Sie Huffman
Unter Ubuntu 12.10 musste ich die Änderungen, die an /etc/apt/apt.conf.d/01proxy vorgenommen wurden, nach /etc/apt/apt.conf kopieren, bevor es funktionieren würde.
Stephen Niedzielski
Selbst mit diesen Änderungen konnte ich dies mit 12.04 nicht zum Laufen bringen ... aber ich schaffte es, dies zum Laufen zu bringen, indem ich ntlmaps verwendete und konfigurierte und die apt.conf-Datei auf den dortigen Intermediate-Proxy zeigte.
Monkut
The program 'gksudo' is currently not installed. You can install it by typing: sudo apt-get install gksu(was natürlich nicht funktioniert ohne einen Proxy eingerichtet zu haben ...) Zum Glück sudofunktioniert es einwandfrei.
TED
13

Ich habe festgestellt, dass USERNAME und PASSWORD, die im Applet "Network Proxy" eingegeben wurden, nicht in der Datei apt.conf gespeichert werden. Sie müssen den Benutzernamen und das Kennwort manuell in der Datei /etc/apt/apt.conf hinzufügen.

Das Applet "Network Proxy" speichert nur den Hostnamen und den Port.

Die grundlegende Syntax lautet

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

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

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

Wenn Sie Windows-Benutzernamen und -Kennwörter verwenden, befolgen Sie diese Hinweise:

User = Domain/Username

(Windows-Benutzer verwenden /nicht \)

Wenn Sie ein starkes / komplexes Windows-Kennwort mit Sonderzeichen verwenden, müssen Sie die URL-Codierung für die Werte verwenden. Ein "@" im Kennwort wäre beispielsweise "% 40".

MneMoth
quelle
(Windows-Benutzer verwenden / nicht) Deshalb stecke ich fest :) Danke!
GaiusSensei
9

Versuchen Sie, die Einstellung http_proxyauf http: // user: pass @ proxyserver: port / zu setzen.

Bearbeiten:
Wenn die Einstellung http_proxynicht funktioniert, versuchen Sie es mit der Bearbeitung apt.conf. In
Ubuntu apt.confist im /etc/apt/apt.conf.d/Verzeichnis fragmentiert .
In diesem Verzeichnis bearbeiten /etc/apt/apt.conf.d/01ubuntu:

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

Oder versuchen Sie es mit Synaptic: Einstellungen -> Einstellungen -> Netzwerk
und stellen Sie dann Ihre Proxy-Einstellungen in "Manuelle Proxy-Konfiguration" ein.

Casual Coder
quelle
3
Meinen Sie die Datei / etc / environment?
Tommy
Ja, es wird diese Variable global setzen.
Casual Coder
Wie würde man den Doppelpunkt als Teil des Passworts kodieren?
k0pernikus
/ etc / environment funktioniert nicht mit apt-get (oder erfordert zumindest einen Neustart;), eine Änderung der apt.conf hat unmittelbare Auswirkungen
Danubian Sailor
Ich kann die Einstellung "Manuelle Proxy-Konfiguration" und "Systemweit anwenden" in Network Works mit apt-get bestätigen.
Will Sheppard
4

Ich bin hinter einem MS ISA-Proxy und verwende Cntlm Authentication Proxy. in der habe apt.confich 4 zeilen; Ich habe irgendwo gelesen, dass die letzte Zeile leer sein muss, bin mir aber nicht sicher. Das funktioniert perfekt:

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/";
Teufel
quelle
3

cntlm verfügt über eine Erkennungsoption, mit der Sie die richtige Konfiguration für die NTLM-Authentifizierung Ihres Netzwerks finden können. Versuchen Sie Folgendes:

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

Kopieren Sie die Ergebnisse und fügen Sie sie in die Datei /etc/cntlm.conf ein

Starten Sie cntlm neu

Tommyk
quelle
'cntlm' is currently not installed. You can install it by typing: sudo apt-get install cntlm(Was, wenn der Kurs nicht funktioniert, wenn mein Proxy nicht richtig eingestellt ist ...)
TED
2
  1. Öffnen Sie das Terminal und fügen Sie die folgenden Zeilen zu /etc/apt/apt.conf hinzu.

    gksu gedit /etc/apt/apt.conf
    
  2. Fügen Sie diese 2 Zeilen hinzu:

    Acquire::http::Proxy "http://user:pass@proxy-host:port/";
    Acquire::ftp::Proxy "http://user:pass@proxy-host:port/";
    
  3. Speichern und schließen.

    Jetzt apt-get updateund sollte hinter einem Proxy funktionieren, aber Sie werden feststellen, dass immer noch etwas nicht funktioniert, das ist der add-apt-repositoryBefehl.

    Geben Sie die folgenden Befehle ein, um das Repository hinter einem Proxy hinzuzufügen:

    # 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`
    

    Jetzt können Sie Repositorys in Lucid und Natty mit LANG = C add-apt-repository hinzufügen

    Beispiel:

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

Über Unixmen

Donadony
quelle
2

Wie wende ich apt-get update an oder installiere es in Ubuntu? Ich war hinter einem Proxy-Server und nach der Installation von Ubuntu konnte ich mit dem Befehl apt-get nichts mehr aktualisieren oder installieren. Nach der Suche habe ich festgestellt, dass das apt-Paket geändert wurde. Jetzt befindet sich keine apt.conf mehr im Verzeichnis / etc / apt.

Was ich getan habe, um dieses Problem zu beheben, ist das Folgende:

Öffnen Sie das Terminal und die Datei

sudo -H gedit /etc/bash.bashrc

und füge am Ende der Datei diese 2 Zeilen hinzu:

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

Jetzt speichern und beenden. Jetzt können Sie Pakete in Ubuntu aktualisieren, aktualisieren oder installieren

hhlp
quelle
Ich habe Exporte hinzugefügt, wie Sie vorgeschlagen haben. Es geht immer noch nicht. Jetzt wurde eine andere Fehlermeldung angezeigt: "Konnte keine Verbindung zu extras.ubuntu.com:80 (91.189.88.33) herstellen. - connect (110: Zeitüberschreitung der Verbindung)". <br> Seltsam ist, dass ich, wenn ich in den Firefox-Einstellungen dieselben Proxy-Einstellungen eingebe, im Internet surfen kann.
Tommy
@tommyk könntest du deine /etc/apt/sources.list posten und deine Frage hier aktualisieren oder versuchen, extras.ubuntu.com aus deiner /etc/apt/sources.list zu löschen und apt-get update
hhlp
Ich habe meine sources.list durch eine Standardliste von der Ubuntu-Webseite ersetzt. Ich habe immer noch den gleichen Fehler für jedes in dieser Datei aufgeführte Repository.
Tommy
2

Dieser hat für mich gearbeitet !!

(Proxy manuell von der GUI über Systemeinstellungen hinzufügen -> Netzwerk usw. sollte funktionieren.) Wenn nicht, exportieren Sie die env-Variable vom Terminal:

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

und nochmal für https:

export https_proxy= <usually the same as the http>

Am wichtigsten ist das Hinzufügen des -E: Zum Ausführen sudo apt-get installoder sudo apt-get updateSie müssen Folgendes ausführen:

sudo -E <command>

Die "-E" verwenden Ihre Benutzerumgebungsvariablen für das Stammverzeichnis (sudo), in diesem Fall den soeben exportierten http_proxy / https_proxy.

Ich hoffe es hilft :)

Kohn1001
quelle
1

Bei einem BlueCoat-Proxy musste das Format der apt.confDatei für mich so aussehen:

Acquire::http::proxy "http://Domain%5cUserID:[email protected]:80/";
Acquire::ftp::proxy "ftp://Domain%5cUserID:[email protected]:80/";
Acquire::https::proxy "https://Domain%5cUserID:[email protected]:80/";

^^^^ Leerzeile nach 3. Proxy-Zeile, diese Zeile nicht eintragen. ^^^^

Jason
quelle
1

Hatte das gleiche Problem nach der Installation von Ubuntu 18.04. Was für mich funktioniert hat, war:

  1. Öffnen Sie den Bildschirm "Netzwerkproxy" in den Netzwerkeinstellungen
  2. Wählen Sie Manuell und fügen Sie die Proxy-Informationen http und https hinzu
  3. Stellen Sie zusätzlich das Feld "Hosts ignorieren" ein mit:
    https://extensions.gnome.org*, *.extensions.gnome.org*
  4. Ubuntu neu gestartet

Was Punkt 3 betrifft, bin ich mir nicht sicher, ob das Hinzufügen des obigen Eintrags funktioniert oder nicht, aber dieser Schritt funktioniert für mich

Vuzi
quelle
0
  1. Starten Sie Synaptic (gehen Sie zu System -> Administration -> Synaptic in Gnome 2 oder geben Sie "synaptic" in den Dash in Unity ein).
  2. Klicken Sie in der Menüleiste auf Einstellungen und anschließend auf Einstellungen .
  3. Wenn das Fenster Einstellungen angezeigt wird, klicken Sie auf die Registerkarte Netzwerk .
  4. Aktivieren Sie das Optionsfeld Manuelle Proxy-Konfiguration und geben Sie Ihre Proxy-Informationen ein.
  5. Klicken Sie zum Anwenden der Authentifizierungsinformationen auf die Schaltfläche Authentifizierung und geben Sie den Benutzernamen und das Kennwort ein.
  6. Klicken Sie auf OK, um das Fenster HTTP-Authentifizierung zu schließen.
  7. Klicken Sie auf OK, um das Fenster Einstellungen zu schließen.
  8. Klicken Sie auf die Schaltfläche Neu laden, um die Paketlisten zu aktualisieren.

Beachten Sie, dass sich diese Einstellungsänderung auch auf den Update Manager auswirkt .

NC Weber
quelle
0

Diese einzeilige Lösung hat bei mir funktioniert:

sudo env http_proxy=http://<ip>:<port> apt-get update
Raheel
quelle