Требуется 407 прокси-аутентификация
Когда я пытаюсь установить программное обеспечение с помощью Ubuntu Software Center, я получаю:
Failed to download repository information
Check Your Internet connection
Когда я пытаюсь сделать apt-get install something
, Я получил:
407 Proxy Authentication Required
Я использую прокси-сервер, который требует имя пользователя и пароль. Я установил свой системный прокси-сервер вручную, подключив необходимые номера в сетевой прокси-сервер и применив его в масштабе всей системы. Я думаю, что проблема сейчас заключается в подключении моего имени пользователя и пароля.
Когда я использую ИНТЕРНЕТ через Mozilla, он запрашивает у меня имя пользователя и пароль.
11 ответов
Чтобы ваш apt-get заработал, вы должны отредактировать файл конфигурации apt:
sudo -H gedit /etc/apt/apt.conf
И добавить Acquire::http::Proxy "http://username:password@proxyhost:port/";
Синтаксис, показанный выше, должен строго соблюдаться.
Эта конфигурация может потерпеть неудачу, если ваше имя пользователя или пароль содержит "@". Вы также можете добавить настройки прокси для других протоколов, таких как FTP.
Обновление: если ваше имя пользователя или пароль содержит "@", вы можете заменить его на%40. Пример: Если ваш пароль @123
введите это как %40123
,
Для других символов см. Это процентное кодирование
Сначала настройте параметры прокси-сервера с помощью мастера использования 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
Если вы используете корпоративный прокси-сервер, на котором выполняется аутентификация 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/ для документов.
Если ваше имя пользователя разделено пробелом, используйте:
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/
Разница заключается в добавлении открытия и закрытия '
,
Я думаю, что этот урок должен помочь вам.
Нажмите на вкладку "Сеть", выберите "Настройка прокси вручную" и введите свой прокси-сервер, данные порта. Если у вас есть имя пользователя, пароль, нажмите "Аутентификация", чтобы ввести эти данные, нажмите "ОК".
(с 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.
Хорошей альтернативой является использование Synaptic Package Manager. , где вы можете указать независимые от системы настройки прокси, а также сохранить имя пользователя и пароль.
Тем не менее, это не изменит прокси для Software Center.
В последних версиях Ubuntu вы можете использовать Системные настройки> Сеть> Сетевой прокси, и когда вы нажимаете "apply system wide"
он изменяет настройки прокси в разных местах, по крайней мере, включая /etc/apt/sources.list
файл, ОДНАКО...
У него нет механизма для запроса аутентификации. Понятия не имею, почему никто еще не сделал эту часть, но из-за этого, если вам нужна аутентификация, вам нужно также указать свой пароль и имя пользователя в этом формате:
username:password@proxy.address
Если ваш пароль или имя пользователя содержит какие-либо специальные символы, в том числе @
или же #
или же !
или что-то еще, вам, вероятно, придется использовать HTML-кодированный символ для любого из этих специальных символов. Смотрите эту страницу, чтобы узнать, как это сделать: http://www.obkb.com/dcljr/charstxt.html
Я сделал скрипт 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
Допустим, вы сохранили 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
Я также столкнулся с той же проблемой. Тогда я узнал о CNTLM . Теперь это работает очень хорошо. Посмотрите, как настроить CNTLM здесь.
Вы также можете попробовать следующие команды.
Для http соединения - экспорт:
http_proxy="http://username:password@proxy_server_address:port_no"
Для соединения https - экспорт:
https_proxy="https://username:password@proxy_server_address:port_no"
И так же для ftp и других соединений.
В моем случае я сэкономил
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