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.