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

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

Failed to download repository information
Check Your Internet connection

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

407  Proxy Authentication Required

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

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

40
задан 26 April 2014 в 22:27

11 ответов

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

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

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

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

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

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

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

52
ответ дан 26 April 2014 в 22:27

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

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

(из 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 под ] Сеть , похоже, вы можете настроить аутентификацию для своих прокси. Однако, похоже, это характерно для Synaptic.

2
ответ дан 26 April 2014 в 22:27

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

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

sudo vi /etc/apt/apt.conf

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

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

12
ответ дан 26 April 2014 в 22:27

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

Proxy Settings

Однако этот не изменяет прокси для Центра программного обеспечения.

2
ответ дан 26 April 2014 в 22:27

Если вы находитесь за корпоративным прокси, на котором выполняется проверка подлинности 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 / для документов.

5
ответ дан 26 April 2014 в 22:27

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

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/

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

3
ответ дан 26 April 2014 в 22:27

Я создал сценарий 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

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

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

Загрузите скрипт setproxy.py

https://pastebin.com/MbBHta8g

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

  • Открыть терминал Введите
  • cd ~ / Downloads

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

  • sudo python setproxy.py 172.16.26.214 king 3128 12139] 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 король queen
1
ответ дан 26 April 2014 в 22:27

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

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

username:password@proxy.address

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

2
ответ дан 26 April 2014 в 22:27

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

0
ответ дан 26 April 2014 в 22:27

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

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

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

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

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

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

0
ответ дан 26 April 2014 в 22:27

В В моем случае я сохранил apt.conf , созданный на основе ответа jaseem , в домашний каталог вместо / etc / apt и указал -c в команде apt.

$ sudo apt -c=~/my-apt.conf update

Вы также можете указать путь к файлу конфигурации в переменной среды APT_CONFIG .

$ export APT_CONFIG=~/my-apt.conf
$ sudo apt update
0
ответ дан 24 April 2021 в 03:49

Другие вопросы по тегам:

Похожие вопросы: