Jak korzystać z „apt-get” za pośrednictwem „HTTP-proxy” w ten sposób?

20

Próbuję użyć apt-getpolecenia w sieci, która korzysta z serwera proxy, w następujący sposób:

Używamy 10.114.7.7 na porcie 80 jako HTTP-proxy, a następnie pojawia się okno uwierzytelniania z prośbą o nazwę użytkownika i hasło.

Nasza nazwa użytkownika / domena wygląda następująco: nazwa_uż[email protected]

Zastanawiam się, jak mogę wykorzystać http_proxy=http://User:Pass@Proxyserver:Portw tej sytuacji !? Próbowałem także 10.114.7.7 i urmia.ac.ir jako serwer proxy, ale bez rezultatu!

Mcferry
źródło

Odpowiedzi:

35

Aby użyć apt-get przez proxy, utwórz plik o /etc/apt/apt.conf.d/nazwie proxy lub coś, co rozpoznasz, lub utwórz (jeśli nie istnieje) /etc/apt/apt.confi wstaw następujący wiersz:

Acquire::http::Proxy "http://username:[email protected]:port/";

Po prostu zamień nazwę użytkownika i hasło na dane logowania i zastąp proxy.server: port poprawnym adresem (w twoim przypadku 10.114.7.7:80), aby twoja linia skończyła się mniej więcej tak:

Acquire::http::Proxy "http://username:[email protected]:80";

Jeśli musisz użyć @symbolu w nazwie użytkownika, musisz uciec z niego za pomocą odwrotnego ukośnika ( [email protected])

Podczas gdy znaki specjalne przy użyciu luzu nie działają (np. \@W exporti wget), znaki specjalne można uciec za pomocą kodowania URL. Na przykład username:my@[email protected]:portstaje się username:my%[email protected]:port. Aby uzyskać więcej informacji, zobacz listę znaków zakodowanych w adresie URL .

Jase
źródło
Proponowane rozwiązanie dodawania wpisu proxy w / etc / apt działało dla mnie, ale zauważam, że jeśli twój serwer proxy buforuje poświadczenia, możesz uniknąć osadzenia poświadczeń w pliku konfiguracyjnym, po prostu uwierzytelniając się przez serwer proxy w innym procesie ( np. przeglądarka internetowa w systemie Windows), przed uruchomieniem poleceń apt w powłoce bash. W ten sposób mogłem określić wpis proxy w / etc / apt jako „ server: port ” zamiast „ nazwa użytkownika: hasło @ serwer: port ”.
Peter Sanza,
6

Alternatywnie możesz umieścić następujące elementy /etc/apt/apt.conf

Acquire::http::Proxy "http://proxy.server.port:8080";

8080 to numer portu i myślę, że jest standardowy.

Nie zapomnij o cudzysłowach lub średniku końcowym.

Justin Peter
źródło
4

To powinno rozwiązać twój problem:

export http_proxy=http://username:[email protected]:80/
Abasi Bo
źródło
EXPORT HTTP_proxy=http://username:[email protected]:80/uruchom w Bash wyniki w EXPORT: command not found.
David Foerster,
Zarówno eksport, jak i http pisane małymi literami. W Bash rozróżniana jest wielkość liter. W przeciwnym razie powinno działać. Przynajmniej działa dla mnie od dwóch lat.
s3lph
6
działa dla curl, ale nie dla apt.
FGM