Proxy für APT konfigurieren?

72

Ich muss den Proxy konfigurieren. Es war keine apt.confDatei in, etc/apt/also habe ich sie mit erstellt nano.

Aber ich verstehe nicht, was ich dort schreiben muss. Ich habe dort geschrieben http_proxy = http://lgn:[email protected]:8080/und dann neu gestartet networking. Aber wenn ich es versuche, apt-get updatefunktioniert es nicht.

Eigentlich verstehe ich nicht, welchen Port und welche IP ich in die apt.confDatei schreiben soll (es gab ein Beispiel mit 192.168.1.254IP und 8080Port, also habe ich beschlossen, sie zu verwenden).

Lapots
quelle
Es gibt eine Änderung in Proxy - Einstellungen Arbeit im Bereich Corporate Proxy in ubuntu Besuch bekommt github.com/navinas33/docker_ubuntu.git es funktioniert ...
Navin als

Antworten:

103

Um einen Proxy verwenden zu können, benötigen Sie einen Proxy-Server. Die IP und der Port müssen von diesem Proxy-Server stammen. Login und pwd müssen Ihr Benutzer und Ihr Kennwort auf dem Proxy-Server sein (wenn der Proxy eine Anmeldung erfordert).

Von der Website help.ubuntu.com :

APT-Konfigurationsdateimethode

Diese Methode verwendet die Datei apt.conf, die sich in Ihrem Verzeichnis / etc / apt / befindet. Diese Methode ist nützlich, wenn Sie möchten, dass apt-get (und nicht andere Anwendungen) permanent einen http-Proxy verwendet.

Bei einigen Installationen wird keine apt-conf-Datei eingerichtet. Bearbeiten Sie die apt-conf-Datei (oder erstellen Sie eine neue, falls Sie noch keine haben) mit dem Editor Ihrer Wahl.

sudo nano /etc/apt/apt.conf

Fügen Sie diese Zeile zu Ihrer /etc/apt/apt.conf -Datei hinzu (ersetzen Sie Ihre Proxy-Adresse und Ihren Proxy-Port durch Ihre Angaben).

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

Speichern Sie die Datei apt.conf.

Wenn Ihr Proxy ein Login / Passwort benötigt, ersetzen Sie:

"http://yourproxyaddress:proxyport";

mit:

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

mit Benutzername und Passwort vom Proxy-Server.

laurent
quelle
6
Das Hinzufügen einer separaten lokalen Datei /etc/apt/apt.conf.d/ist vorzuziehen, damit Sie die grundlegenden Konfigurationsdateien des Systems nicht bearbeiten müssen. Auf diese Weise müssen Sie Ihre lokalen Änderungen nicht manuell einarbeiten, wenn sie in einer nachfolgenden Paketversion aktualisiert werden.
Tripleee
Befindet sich eine Proxy-Konfigurationsdatei im Benutzerverzeichnis?
Becko
Diese Antwort muss aktualisiert werden: gksudo ist veraltet. Überlegen sudo -HSie, ob Sie einen anderen Nicht-GUI-Editor oder anstelle von gksudo vorschlagen möchten, wenn Sie gedit oder ähnliches verwenden.
24

Dies ist eine allgemeinere Antwort zusammen mit apt config.

Da es viele Stellen gibt, an denen Proxy-Einstellungen konfiguriert werden können, kann dies zu Beginn verwirrend sein. Lassen Sie mich einige Dinge zusammenfassen und einige gute Praktiken vorschlagen.

Für Konsolenprogramme

Beispiel: wget, git und fast jede Konsolenanwendung, die eine Verbindung zum Internet herstellt.

Wenn Sie den Proxy jedes Mal konfigurieren möchten, wenn Sie Ihre Befehle aus irgendeinem Grund ausführen, legen Sie die Umgebungsvariablen mit den folgenden Befehlen fest.

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

Andernfalls können Sie diese Einstellungen verwenden, wenn Sie immer die gleichen Einstellungen für alle Benutzer verwenden möchten.

In bashrc konfigurieren

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

Konfigurieren Sie in /etc/environment

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

Konfigurieren Sie mit GUI

Öffnen Sie die Netzwerkeinstellungen und stellen Sie den systemweiten Netzwerk-Proxy ein.

Netzwerk -> Netzwerk-Proxy -> Konfigurieren -> Systemweit anwenden.

Dies ist jedoch möglicherweise nicht hilfreich, wenn Sie über eine Authentifizierung für den Proxy verfügen.

Für apt.

Sie müssen einige zusätzliche Arbeiten für apt ausführen, da apt im Übrigen keine Umgebungsvariablen berücksichtigt.

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

Für alle Bereiche außerhalb dieses Bereichs muss eine Option zum Konfigurieren der Proxyeinstellungen in der Anwendung selbst vorhanden sein. Wenn nicht tut mir leid;)

matrixisreal
quelle
2
Die Konfiguration in / etc / environment ist sehr wichtig, da das Terminal normalerweise die aktuelle Umgebung nicht beibehält, wenn Sie nur die Variable http_proxy für Ihren Benutzer einrichten, wenn Sie in den Sudo-Modus wechseln (z. B. 'sudo apt-get update') Vars; Sehr wichtig, um Ihre Einstellungen zu testen: sudo echo $ http_proxy
belun
HTTP_PROXY(in Großbuchstaben) scheint der Standardname für diese Variable zu sein, obwohl viele Programme auf die Kleinbuchstabenversion zurückgreifen. https_proxy(Kleinbuchstaben beachten) ist die richtige Groß- und Kleinschreibung dafür, aber Sie würden sie niemals alleine verwenden, wie Sie es in Ihrem /etc/environmentobigen Beispiel tun . (Ich denke, das sist ein Tippfehler.)
Curt J. Sampson
Was ist der Grund, warum APT eine zusätzliche Proxy-Konfiguration erfordert? Warum gehorcht es nicht einfach mit / etc / environment?
Loreno
22

So etwas sollte funktionieren:

Acquire::http::proxy "http://lgn:[email protected]:8080/";
Acquire::https::proxy "http://lgn:[email protected]:8080/";
Dennis Kaarsemaker
quelle
Gibt es einen Unterschied zwischen Port und IP?
Lapots
Ja, Sie müssen natürlich die korrekten Details für den Proxy eingeben, den Sie verwenden möchten.
Dennis Kaarsemaker
äh ... ip - ist das die ip des routers? Ich meine diese IP, die ich aus dem Beispiel verwendet habe, aber alle Router-Einstellungen, die ich im Browser mithilfe von 192.168.1.1IP konfiguriere . Ich sollte 0,1 verwenden? und Login und Passwort sollten Ubuntus Root oder Router sein?
Lapots
2
Weißt du überhaupt, was du tust? Woher wissen Sie, dass Sie einen Proxy verwenden müssen, wenn Sie die Details dafür nicht kennen?
Dennis Kaarsemaker
5
Dann fragen Sie Ihren Lehrer. Dies ist keine Website, auf der ich meine Hausaufgaben erledige.
Dennis Kaarsemaker
5

Sie können auch versuchen, einen Befehl auszuführen sudo -E, der die Umgebungseinstellungen übernimmt. Es scheint für mich zu funktionieren, wenn ich versuche, zu aktualisieren, ein passendes Repository hinzuzufügen und zu installieren. Beispiel:

sudo -E add-apt-repository ppa:xxxxx

Laut @David Foerster funktioniert dies nur für die manuelle Interaktion mit der Shell, nicht jedoch für automatisierte Aufgaben und Dienste, die Apt ohne Benutzerinteraktion aufrufen.

Frank Qiu
quelle
Dies hilft jedoch nicht bei automatisierten Aufgaben und Diensten, die Apt ohne Benutzerinteraktion aufrufen.
David Foerster
Vielen Dank für den Hinweis, ich werde Ihren Kommentar zur Antwort hinzufügen.
Frank Qiu
2

Wenn Sie apt hinter einem Proxy verwenden müssen, benötigt wahrscheinlich alles andere auch die Proxy-Konfiguration. Ich möchte meine Proxy-Einstellungen an einem Ort verwalten, bei dem es sich um die Umgebungsvariable handelt.

Dazu erstelle ich ein /etc/profiles.d/99-proxy.sh, das die nötigen Proxy-Einstellungen enthält (wie im Folgenden beschrieben):

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

Auf diese Weise haben alle Benutzer auf diesem Computer Zugriff auf den Proxy. (nicht vergessen chmod a+x)

Wenn Sie apt oder apt-get als Benutzer verwenden, kann dieser Benutzer sudo verwenden. Wie Frank Qiu beschrieben hat, übergibt sudo keine Umgebungsvariablen. Dafür können Sie hinzufügen

Defaults env_keep += "http_proxy https_proxy ftp_proxy"

zu (zB)

/etc/sudoers.d/00-environment 

oder direkt in die

/etc/sudoers

Datei. Auf diese Weise müssen Sie die Proxy-Einstellungen nur an einem Ort verwalten.

muluman88
quelle
0

Die ursprüngliche Frage könnte in die falsche Richtung weisen. Ich glaube, Sie möchten einen Proxy-Server unter Linux einrichten?

Das ist etwas völlig anderes, als einen vorhandenen Proxy aus einer Linux-Umgebung verwenden zu wollen.

Wenn Ihre Frage die erste ist, verwenden Sie Dienste von Drittanbietern, um einen Proxyserver unter Linux zu konfigurieren. Ein Beispiel könnte Tintenfisch sein.

Einfache Befehle zum Installieren von Squid:

$ sudo apt-get install squid3

Bearbeiten Sie anschließend die Konfiguration, um das lokale Netz (in diesem Fall Ihren eigenen Computer) zuzulassen. $ sudo vi /etc/squid3/squid.conf

Füge die folgenden Zeilen hinzu / bearbeite sie:

http_access allow local_net
acl local_net src 192.168.1.0/255.255.255.0

Angenommen, Ihre IP für den Linux-Computer befindet sich im Block 192.168.1 / 24.

Neo
quelle
Wahrscheinlich haben die meisten Leser dieser Frage bereits squid;) installiert, auch die http[s]_proxyENV-Variablen gesetzt und fragen sich nun, warum APT immer noch nicht funktioniert. Aber wenn Sie von allem außer der Maschine mit HTTP 403 erhalten squid- suchen Sie noch einmal nach allen Vorkommen des Wortes, denydie nicht kommentiert sind. (vor allem mit http_accessauf der gleichen Linie.
Tomasz Gandor