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żytkownika@urmia.ac.ir

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!

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:password@proxy.server: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:password@10.114.7.7:80";

Jeśli musisz użyć @symbolu w nazwie użytkownika, musisz uciec z niego za pomocą odwrotnego ukośnika ( username@urmia.ac.ir)

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@pass@server.com:portstaje się username:my%40pass@server.com:port. Aby uzyskać więcej informacji, zobacz listę znaków zakodowanych w adresie URL .


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.


4

To powinno rozwiązać twój problem:

export http_proxy=http://username:password@10.114.7.7:80/

EXPORT HTTP_proxy=http://username:password@10.114.7.7: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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.