Требуется 407 прокси-аутентификация

38

Когда я пытаюсь установить программное обеспечение с помощью Ubuntu Software Center, я получаю:

Failed to download repository information
Check Your Internet connection

Когда я пытаюсь сделать apt-get install something, я получаю:

407  Proxy Authentication Required

Я использую прокси-сервер, который требует имя пользователя и пароль. Я установил свой системный прокси-сервер вручную, подключив необходимые номера в сетевой прокси-сервер и применив его в масштабе всей системы. Я думаю, что проблема сейчас заключается в подключении моего имени пользователя и пароля.

Когда я использую ИНТЕРНЕТ через Mozilla, он запрашивает у меня имя пользователя и пароль.

user38507
источник

Ответы:

48

Чтобы ваш apt-get заработал, вы должны отредактировать файл конфигурации apt:

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

И добавить Acquire::http::Proxy "http://username:password@proxyhost:port/";

Синтаксис, показанный выше, должен строго соблюдаться.

Эта конфигурация может потерпеть неудачу, если ваше имя пользователя или пароль содержит «@». Вы также можете добавить настройки прокси для других протоколов, таких как FTP.

Обновление: если у вашего имени пользователя или пароля есть «@», вы можете заменить его на% 40. Пример: Если ваш пароль @123введен как %40123.

Для других символов см. Это процентное кодирование

jaseem
источник
4
Я сделал именно то, что вы сказали, но это все равно дает мне ту же ошибку. Это не решило проблему.
DeLiK
Я добавил вышеуказанные настройки прокси, но теперь я получаю 404 - Not Found, вместо 407 - Proxy Authentication
Deepak
Что делать, если мой пароль содержит "@"?
Đēēpak
12

Сначала настройте параметры прокси-сервера с помощью мастера использования Linux вручную и примените настройки в масштабе всей системы, как в этом окне мастера.

Добавьте свою среду прокси. Это только примерные настройки ...
Откройте вашу учетную запись командной строки и отредактируйте файл apt.conf:

sudo vi /etc/apt/apt.conf

Уже есть 4 строки кода, начинающиеся с ключевого слова Acquire , отредактируйте его так:

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

Примечание.
Если ваш пароль содержит специальные символы, такие как @, $ ,! (например, Пароль: P @ ssword), затем замените специальные символы их эквивалентами в шестнадцатеричном коде с префиксом% следующим образом:

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

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

user226173
источник
Я добавил вышеуказанные настройки прокси, но теперь я получаю 404 - Not Found, вместо 407 - Proxy Authentication
Deepak
В чем разница между первой и четвертой строчкой ????
Моатаз Эльмасри
5

Если вы используете корпоративный прокси-сервер, на котором выполняется аутентификация NTLM, вы можете использовать CNTLM:

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

Изменить настройки по умолчанию (домен, имя пользователя, пароль и прокси). Затем перезапустите сервис:

$ sudo /etc/init.d/cntlm restart

Теперь вы можете использовать localhost:3128(по умолчанию порт CNTLM) в качестве общесистемного прокси для Ubuntu.

Проверьте http://cntlm.sourceforge.net/ для документов.

theogfx
источник
7
Чтобы приступить sudo apt-get install cntlmк работе, сначала нужно пройти через этот прокси.
Андрей Савиных
2

Я думаю, что этот урок должен помочь вам.

Нажмите на вкладку «Сеть», выберите «Настройка прокси вручную» и введите свой прокси-сервер, данные порта. Если у вас есть имя пользователя, пароль, нажмите «Аутентификация», чтобы ввести эти данные, нажмите «ОК».

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

Чтобы вызвать его для всех программ, запускаемых в оболочке, я бы предложил вам либо добавить его в свое /etc/bash.bashrcиспользование, gksudo gedit /etc/bash.bashrcчтобы применить его для всей системы для всех сеансов bash, либо для своего пользовательского пространства ~/.bashrc.

Что касается Synaptic, то Preferencesна Networkвкладке ниже вы можете установить аутентификацию для ваших прокси. Это, кажется, специфично для Synaptic.

bkzland
источник
Я использую Ubuntu 11, можете ли вы помочь мне в достижении synaptic
user38507
также, где именно в bash.bashrc нужно подключить имя пользователя и пароль
user38507
export http_proxy=http://username:password@proxyhost:port/
Пантера
я дал команду sudo echo "export http_proxy = swastik: ramdayal@192.168.11.107: 8081 " >> /etc/bash.bashrc даже сейчас я получаю ту же ошибку
user38507
2

Хорошей альтернативой является использование Synaptic Package ManagerУстановить Synaptic , где вы можете указать независимые от системы настройки прокси, а также сохранить имя пользователя и пароль.

Настройки прокси

Тем не менее, это не изменит прокси для Software Center.

воспламеняться
источник
2

Если ваше имя пользователя разделено пробелом, используйте:

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

Если ваше имя пользователя не разделено пробелами, используйте:

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

Разница заключается в добавлении открытия и закрытия '.

ПАНКАЖ КУМАР
источник
2

В последних версиях Ubuntu вы можете использовать «Системные настройки»> «Сеть»> «Сетевой прокси», и при щелчке "apply system wide"он изменяет настройки прокси в разных местах, по крайней мере, включая /etc/apt/sources.listфайл, ОДНАКО ...

У него нет механизма для запроса аутентификации. Понятия не имею, почему никто еще не сделал эту часть, но из-за этого, если вам нужна аутентификация, вам нужно также указать свой пароль и имя пользователя в этом формате:

username:password@proxy.address

Если в вашем пароле или имени пользователя есть какие-либо специальные символы, в том числе @и #/ !или что-то еще, вам, вероятно, придется использовать код символа HTML-ized для любого из этих специальных символов. Смотрите эту страницу, чтобы узнать, как это сделать: http://www.obkb.com/dcljr/charstxt.html

Yfrwlf
источник
1

Я также столкнулся с той же проблемой. Тогда я узнал о CNTLM. Теперь это работает очень хорошо. Посмотрите, как настроить CNTLM здесь.

irfan_np
источник
2
Хотя это может теоретически ответить на вопрос, было бы предпочтительным включить здесь основные части ответа и предоставить ссылку для справки.
Ойибо
Спасибо! Это был единственный ответ, который действительно помог мне. Другие ответы (которые я уже знал) предполагают, что прокси-сервер использует обычную HTTP-аутентификацию, что было не в моем случае.
Александр Амелькин
1

Я сделал скрипт Python для установки параметров прокси в Ubuntu

Предположим следующую настройку, которую нужно заменить в соответствующих местах

  • proxy_address 172.16.26.214
  • proxy_port 3128
  • proxy_username king
  • proxy_password queen

Я сделал видео, которое проведет вас через все шаги:

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

Шаги подробно здесь:

  • Сначала нажмите на тире
  • В поле поиска введите «Прокси» (без кавычек)
  • Нажмите «Сеть» в разделе «Приложения».
  • Выберите «Сетевой прокси»
  • Выберите Ручной
  • Введите адрес прокси и порт прокси
  • Подать заявление. Введите системный пароль для подтверждения

Скачать скрипт setproxy.py

https://pastebin.com/MbBHta8g

Допустим, вы сохранили setproxy.pyв Downloadsпапке

  • Тип открытого терминала
  • CD ~ / Загрузки

Общая команда:
sudo python setproxy.py proxy_address proxy_port proxy_username proxy_password
Для нашего примера

  • sudo python setproxy.py 172.16.26.214 3128 king queen

В случае простого прокси без аутентификации команда выглядит так:

  • sudo python setproxy.py 172.16.26.214 3128

Если у вас есть python 3 и выше запустить с использованием python2.7 так, команды будут выглядеть так

  • sudo python2.7 setproxy.py 172.16.26.214 3128
  • sudo python2.7 setproxy.py 172.16.26.214 3128 king queen
Маянк Агарвал
источник
1
Использование Dropbox или копирования для хранения скриптов очень плохо. Вы должны использовать github или paste.bin как минимум
Quan To
0

Вы также можете попробовать следующие команды.

Для http соединения - экспорт:

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

Для соединения https - экспорт:

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

И так же для ftp и других соединений.

darkdefender27
источник