'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?


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:password@askubuntu-proxy.com: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:password@askubuntu-proxy.com: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

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


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


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/";

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


'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


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


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


1

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

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/";

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


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


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 .


0

Diese einzeilige Lösung hat bei mir funktioniert:

sudo env http_proxy=http://<ip>:<port> apt-get update
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.