407 Wymagane uwierzytelnienie serwera proxy


38

Kiedy próbuję zainstalować oprogramowanie za pomocą Centrum oprogramowania Ubuntu, otrzymuję:

Failed to download repository information
Check Your Internet connection

Kiedy próbuję zrobić apt-get install something, otrzymuję:

407  Proxy Authentication Required

Używam serwera proxy, który wymaga nazwy użytkownika i hasła. Skonfigurowałem proxy systemu ręcznie, podłączając wymagane liczby do proxy sieci i zastosowałem go w całym systemie. Chyba problemem jest teraz podłączenie mojej nazwy użytkownika i hasła.

Kiedy korzystam z INTERNETU przez Mozillę, pyta mnie o moją nazwę użytkownika i hasło.

Odpowiedzi:


48

Aby twój apt-get działał, powinieneś edytować plik konfiguracyjny apt:

sudo -H gedit /etc/apt/apt.conf

I dodaj Acquire::http::Proxy "http://username:password@proxyhost:port/";

Należy ściśle przestrzegać powyższej składni.

Ta konfiguracja może się nie powieść, jeśli nazwa użytkownika lub hasło zawiera znak „@”. Możesz także dodać konfigurację proxy dla innych protokołów, takich jak FTP.

Aktualizacja: Jeśli w nazwie użytkownika lub haśle znajduje się „@”, możesz go zastąpić% 40. Przykład: Jeśli hasło to, @123wpisz je jako %40123.

W przypadku innych znaków zobacz kodowanie procentowe


4
Zrobiłem dokładnie to, co powiedziałeś, ale nadal daje mi ten sam błąd. To nie rozwiązało problemu.
DeLiK,

Dodałem powyższe ustawienia proxy, ale teraz otrzymuję 404 - Nie znaleziono, zamiast uwierzytelnienia 407- Proxy
Deepak

Co jeśli moje hasło zawiera „@”?
Đēēpak

12

Najpierw ręcznie ustaw ustawienia proxy za pomocą kreatora Linux i zastosuj ustawienia systemowe tak jak w tym oknie kreatora.

Dodaj swoje środowisko proxy. Są to tylko przykładowe ustawienia ...
Otwórz login wiersza polecenia i edytuj plik apt.conf:

sudo vi /etc/apt/apt.conf

Istnieją już 4 wiersze kodu zaczynające się od słowa kluczowego Uzyskaj , edytuj je w następujący sposób:

Acquire::http::Proxy "http://username:password@proxyhost:port/";
Acquire::https::Proxy "https://username:password@proxyhost:port/";
Acquire::ftp::Proxy "ftp://username:password@proxyhost:port/";

Uwaga
Jeśli Twoje hasło zawiera znaki specjalne, takie jak @, $ ,! (np. Hasło: H @ sło), a następnie zastąp znaki specjalne ich ekwiwalentami kodu szesnastkowego prefiksem% w następujący sposób:

Acquire::http::Proxy "http://username:p%40ssword@proxyhost:port/"; 

@ ==>% 40
$ ==>% 24
! ==>% 21


Dodałem powyższe ustawienia proxy, ale teraz otrzymuję 404 - Nie znaleziono, zamiast uwierzytelnienia 407- Proxy
Deepak

Jaka jest różnica między pierwszą a czwartą linią ????
Moataz Elmasry

5

Jeśli korzystasz z korporacyjnego serwera proxy z uwierzytelnianiem NTLM, możesz użyć CNTLM:

$ sudo apt-get install cntlm
$ sudo vi /etc/cntlm.conf

Zmień ustawienia domyślne (domena, nazwa użytkownika, hasło i serwer proxy). Następnie uruchom ponownie usługę:

$ sudo /etc/init.d/cntlm restart

Możesz teraz używać localhost:3128(domyślny port CNTLM) jako ogólnosystemowego serwera proxy dla Ubuntu.

Sprawdzić http://cntlm.sourceforge.net/ dla dokumentów.


7
Aby dostać się sudo apt-get install cntlmdo pracy, musisz najpierw przejść przez ten serwer proxy.
Andrew Savinykh

2

Myślę, że ten samouczek powinien ci pomóc.

Kliknij kartę Sieć wybierz opcję Ręczna konfiguracja serwera proxy i wprowadź serwer proxy, szczegóły portu. Jeśli masz nazwę użytkownika, hasło kliknij opcję Uwierzytelnianie, aby wprowadzić te szczegóły, kliknij OK

(z http://www.ubuntugeek.com/how-to-configure-ubuntu-desktop-to-use-your-proxy-server.html )

Aby wywołać go dla wszystkich programów uruchomionych w powłoce, sugeruję dodanie go do swojego /etc/bash.bashrczastosowania gksudo gedit /etc/bash.bashrci zastosowanie go w całym systemie dla wszystkich sesji bash lub w przestrzeni użytkownika ~/.bashrc.

Jeśli chodzi o Synaptic, Preferencespod Networkzakładką wydaje się, że możesz ustawić uwierzytelnianie dla swoich serwerów proxy. Wydaje się to jednak specyficzne dla Synaptic.


Używam Ubuntu 11, czy możesz mi pomóc w osiągnięciu synaptic
user38507

także tam, gdzie dokładnie w tym bash.bashrc należy wpisać nazwę użytkownika i hasło
user38507

export http_proxy=http://username:password@proxyhost:port/
Panther,

wydałem polecenie sudo echo „eksport http_proxy = swastik: ramdayal@192.168.11.107: 8081 ” >> /etc/bash.bashrc nawet teraz otrzymuję ten sam błąd
user38507

2

Jedną fajną alternatywą jest użycie Menedżera pakietów SynapticZainstaluj Synaptic , w którym można określić niezależne od systemu ustawienia proxy, a także przechowywać nazwę użytkownika i hasło.

Ustawienia proxy

Nie zmieni to jednak proxy dla Software Center.


2

Jeśli nazwa użytkownika jest oddzielona spacją, użyj:

export http_proxy='http://Pankaj Kumar Pandit:ABCD@192.168.1.1:3128/'

Jeśli nazwa użytkownika nie jest oddzielona spacją, użyj:

export http_proxy=http://Pankaj_Kumar_Pandit:ABCD@192.168.1.1:3128/

Różnica polega na dodaniu otwierania i zamykania '.


2

W najnowszych wersjach Ubuntu możesz używać Ustawienia systemowe> Sieć> Proxy sieciowe, a po kliknięciu "apply system wide"modyfikujesz ustawienia proxy w różnych miejscach, w tym przynajmniej /etc/apt/sources.listplik, JEDNAK ...

Nie ma żadnego mechanizmu monitującego o uwierzytelnienie. Nie mam pojęcia, dlaczego nikt jeszcze tego nie zrobił, ale z tego powodu, jeśli potrzebujesz uwierzytelnienia, musisz również podać hasło i nazwę użytkownika w tym formacie:

username:password@proxy.address

Jeśli hasło lub nazwa użytkownika ma żadnych znaków specjalnych w nim, w tym @lub #lub !lub cokolwiek, prawdopodobnie będą musieli używać HTML-ized kod znaku dla każdego z tych znaków specjalnych. Zobacz, jak to zrobić: http://www.obkb.com/dcljr/charstxt.html


1

Miałem również ten sam problem. Potem dowiedziałem się o CNTLM. Teraz działa naprawdę dobrze. Zobacz, jak skonfigurować CNTLM tutaj.


2
Chociaż teoretycznie może to odpowiedzieć na pytanie, lepiej byłoby zawrzeć tutaj istotne części odpowiedzi i podać odnośnik.
Oyibo,

Dziękuję Ci! To była jedyna odpowiedź, która naprawdę mi pomogła. Inne odpowiedzi (które już znałem) zakładają, że serwer proxy używa podstawowego uwierzytelniania HTTP, co nie było moim przypadkiem.
Alexander Amelkin,

1

Zrobiłem skrypt Pythona, aby ustawić ustawienia proxy w Ubuntu

Załóżmy następujące ustawienie, musisz wymienić w odpowiednich miejscach

  • adres_adresora 172.16.26.214
  • proxy_port 3128
  • nazwa_użytkownika proxy król
  • proxy_password queen

Zrobiłem film, który przeprowadzi cię przez wszystkie etapy:

https://www.youtube.com/watch?v=eBtzKa-dvJg

Kroki są wyszczególnione tutaj:

  • Najpierw kliknij Dash
  • W polu wyszukiwania wpisz „Proxy” (bez cudzysłowów)
  • Kliknij „Sieć” w obszarze Aplikacje
  • Wybierz „Network Proxy”
  • Wybierz Ręcznie
  • Wprowadź adres i port proxy
  • Zastosować. Wprowadź hasło systemowe, aby potwierdzić

Pobierz skrypt setproxy.py

https://pastebin.com/MbBHta8g

Powiedzmy, że zapisałeś plik setproxy.pyw Downloadsfolderze

  • Typ otwartego terminala
  • cd ~ / Pobieranie

Polecenie ogólne:
sudo python setproxy.py adres_ proxy proxy_port proxy nazwa_użytkownika nazwa_ proxy proxy
Dla naszego przykładu

  • sudo python setproxy.py 172.16.26.214 3128 king queen

W przypadku prostego serwera proxy bez uwierzytelnienia polecenie to:

  • sudo python setproxy.py 172.16.26.214 3128

W przypadku, gdy masz python 3i korzystasz z niego, python2.7 więc będą wyglądać polecenia

  • sudo python2.7 setproxy.py 172.16.26.214 3128
  • sudo python2.7 setproxy.py 172.16.26.214 3128 king queen

1
Używanie Dropbox lub Copy do przechowywania skryptów jest bardzo złe. Powinieneś użyć github lub paste.bin przynajmniej
Quan To

0

Możesz także wypróbować następujące polecenia.

W przypadku połączenia HTTP - eksport:

http_proxy="http://username:password@proxy_server_address:port_no"

W przypadku połączenia https - eksport:

https_proxy="https://username:password@proxy_server_address:port_no"

Podobnie w przypadku ftp i innych połączeń.

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.