Proxy in einem (LXC)-Container setzen


Da ein paar Server in meinem Netz nicht direkt, sondern nur via Reverse-Proxy erreichbar sind haben diese auch keinen direkten Internetzugang. Sie müssen sich also auch Updates etc. via Proxy holen.

Dafür setze ich zum einen APT-Cacher-NG, und zum Anderen einen Squid ein. Apt könnte natürlich auch über den Squid laufen, aber da ja mehrere Server laufen muss ich nicht alle Updates zig mal herunterladen.

Den Proxy für APT setzt man einfach indem man eine Datei erstellt

$ nano /etc/apt/apt.conf.d/00aptproxy

Hier wird nun der Proxy eingetragen

Acquire::http::Proxy "http://aptproxy.domain.de:3142“;
Acquire::https::Proxy "https://aptproxy.domain.de:3142“;

Damit wget z.B. aber auch via Proxy raus geht kann man den „normalen“ Proxy beispielsweise ins Environment setzen. Dies geschieht durch

$ nano /etc/enviroment

und eintragen der Werte

$ nano /etc/environment
http_proxy=http://proxy.domain.de:3128
https_proxy=https://proxy.domain.de:3128
ftp_proxy=ftp://proxy.domain.de
no_proxy=localhost,intranet.domain.de
soap_use_proxy=on

Nun hatte ich das Problem das ein Container das so gesetzte Environment nicht übernimmt, sondern offensichtlich das des Host auf dem er läuft. Da sich Host und Gast aber in unterschiedlichen Netzen befinden kann der Proxy nicht aufgelöst werden.

Deswegen setzt man den Proxy für wget in dessen Config-Datei

$ nano /etc/wgetrc
https_proxy = https://proxy.domain.de:3128/
http_proxy = http://proxy.domain.de:3128/
ftp_proxy = http://proxy.domain.de:3128/

,