'apt-get' не работает с прокси-сервером

47

Для команды

sudo apt-get update

Я получаю следующую ошибку:

W: Failed to fetch http://ch.archive.ubuntu.com/ubuntu/dists/maverick-updates/multiverse/binary-i386/Packages.gz  
407  Proxy Authentication Required (The ISA Server requires authorization to fulfill the request. Access to the Web Proxy filter is denied. )

Я запускаю Ubuntu 10.10, установленный в Windows XP с помощью VirtualBox. Для подключения к Интернету я использую прокси-сервер с аутентификацией. Я попытался использовать инструмент gnome-network-proxy , чтобы установить настройки прокси-сервера в общесистемном режиме.

После этого /etc/environment обновлено переменной http_proxy с форматом http://my_proxy:port/ , не было данных аутентификации.

Я проверил это с помощью Firefox. Браузер спросил меня о логине и пароле, и все работает нормально. К сожалению, это не так для apt-get. Я также попытался сделать так, как описано здесь . К сожалению, это не работает.

Может ли это быть связано с тем, что прокси-сервер находится в домене Windows, какие-либо идеи?

Мое имя прокси Ссылка . Есть ли - специальный символ?

    
задан tommyk 28.01.2011 в 11:23
источник

12 ответов

48

Для моей корпоративной сети я получил у моего администратора имя прокси в формате:

http://[username]:[password]@[proxy-webaddress]:[port]

Для нашей сети Windows наше имя пользователя находится в формате:

[domain]\[username]

Например:

http://mywindowsdomain\fossfreedom:[email protected]:8080

Это было добавлено к следующему NEW-файлу (по умолчанию он не существует):

gksudo gedit /etc/apt/apt.conf.d/01proxy

Добавлен следующий текст:

Acquire::http::Proxy "http://mywindowsdomain\fossfreedom:[email protected]:8080";

Если вы используете анонимный прокси-сервер, вам не нужны ваши учетные данные:

Acquire::http::Proxy "http://askubuntu-proxy.com:8080";

Сохраните файл, а затем отметьте, что все было в порядке:

sudo apt-get update
    
ответ дан fossfreedom 04.04.2012 в 14:23
источник
12

Я обнаружил, что USERNAME и PASSWORD, введенные в апплет «Сетевой прокси», не сохраняются в файле apt.conf, вы должны вручную добавить имя пользователя и пароль в файле /etc/apt/apt.conf.

Апплет «Сетевой прокси» сохраняет только имя хоста и порт.

Основной синтаксис

Acquire::http::proxy "http://User:[email protected]:port/";

Acquire::ftp::proxy "ftp://User:[email protected]:port/";

Acquire::https::proxy "https://User:[email protected]:port/";

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

User = Domain/Username

(пользователи Windows используют / not \ )

Если вы используете strong / сложный пароль Windows со специальными символами, вы должны использовать кодировку URL для значений, например, «@» в пароле будет «% 40».

    
ответ дан MneMoth 06.10.2011 в 19:27
9

Попробуйте установить http_proxy на Ссылка

Редактирование:
Если параметр http_proxy не работает, попробуйте отредактировать apt.conf . В
Ubuntu apt.conf фрагментирован в каталоге /etc/apt/apt.conf.d/ .
В этом каталоге отредактируйте /etc/apt/apt.conf.d/01ubuntu :

APT {
    Acquire {
        http {
            Proxy "http://user:[email protected]:port";
        };
    };
};

или попробуйте установить его с помощью Synaptic: Настройки - > Предпочтения - > Сеть
А затем настройте параметры прокси-сервера в «Настройка прокси-сервера вручную».

    
ответ дан Casual Coder 28.01.2011 в 11:42
3

cntlm имеет параметр обнаружения, который помогает найти правильную конфигурацию для работы с NTLM-аутентификатором вашей сети, попробуйте следующее:

cntlm -I -M http://test.com

скопировать и вставить результаты в /etc/cntlm.conf

перезапустить cntlm

    
ответ дан tommyk 01.02.2011 в 15:54
3

Я за прокси-сервером MS ISA, и я использую прокси-сервер аутентификации Cntlm; в apt.conf у меня 4 строки; Я где-то читал, что последняя строка должна быть пустой, но я не уверен в этом. Он отлично работает:

Acquire::http::proxy "http://127.0.0.1:3128/";
Acquire::ftp::proxy "ftp://127.0.0.1:3128/";
Acquire::https::proxy "https://127.0.0.1:3128/";
    
ответ дан dEvil 03.06.2011 в 13:57
2
  1. Откройте терминал и добавьте следующие строки в /etc/apt/apt.conf.

    gksu gedit /etc/apt/apt.conf
    
  2. Добавьте эти 2 строки:

    Acquire::http::Proxy "http://user:[email protected]:port/";
    Acquire::ftp::Proxy "http://user:[email protected]:port/";
    
  3. Сохранить и выйти.

    Теперь apt-get update и должен работать за прокси, , но вы заметите, что все еще что-то не работает, то есть команда add-apt-repository .

    Чтобы иметь возможность добавлять репозиторий за прокси-сервером, введите следующие команды:

    # export https_proxy="http://192.168.1.5:8080"
    # sed -i 's/"keyserver.ubuntu.com"/"hkp://keyserver.ubuntu.com:80"/' /usr/share'/pyshared/softwareproperties/ppa.py'
    

    Теперь вы можете добавлять репозитории в Lucid и Natty, используя LANG = C add-apt-repository

    Пример:

    root @ ubuntu: ~ # LANG = C add-apt-repository ppa: motumedia / mplayer-daily

Через Unixmen

    
ответ дан donadony 24.02.2012 в 21:32
2

Как применить apt-get обновление или установить в Ubuntu? Я был за прокси-сервером, и после установки Ubuntu я не мог обновлять или устанавливать что-либо с помощью команды apt-get. После поиска я обнаружил, что пакет apt был изменен, теперь больше нет apt.conf в каталоге / etc / apt.

Что я сделал для решения этой проблемы, так это следующее:

Открыть терминал и файл

sudo -H gedit /etc/bash.bashrc

и добавьте в нижней части файла эти две строки:

#proxy 
export http_proxy=http://user:[email protected]:port/
export ftp_proxy=http://user:[email protected]:port/

Теперь сохраните и выйдите, Теперь вы сможете обновлять, обновлять или устанавливать пакеты в Ubuntu

    
ответ дан hhlp 28.01.2011 в 14:11
1

С прокси-сервером BlueCoat для меня должен был выглядеть формат файла apt.conf :

Acquire::http::proxy "http://Domain%5cUserID:[email protected]:80/";
Acquire::ftp::proxy "ftp://Domain%5cUserID:[email protected]:80/";
Acquire::https::proxy "https://Domain%5cUserID:[email protected]:80/";

^ ^ ^ ^ Пустая строка после третьей строки прокси, не вводите эту строку. ^ ^ ^ ^

    
ответ дан Jason 02.05.2012 в 21:27
1

Этот работает для меня!

(добавление прокси вручную из графического интерфейса через системные настройки - > сеть и т. д. должно работать) Но если нет, и вы экспортируете переменную env из терминала:

export http_proxy=http://<your proxy url>:<proxy port>

и снова для https:

export https_proxy= <usually the same as the http>

Самое важное для добавления -E: Чтобы запустить sudo apt-get install или sudo apt-get update , вы должны запустить:

sudo -E <command>

«-E» использует переменные пользовательской среды для корневого (sudo), если на то есть HTTP_proxy / https_proxy, который вы только что экспортировали.

Надеюсь, что это поможет :)

    
ответ дан Kohn1001 05.02.2017 в 10:51
1

Была ли такая же проблема после установки Ubuntu 18.04. Для меня это работало:

  1. Открыть сетевой прокси-экран в настройках сети
  2. Выберите «Вручную» и добавьте информацию о прокси-сервере http и https
  3. Дополнительно установите поле Игнорировать хосты с помощью:
    https://extensions.gnome.org*, *.extensions.gnome.org*
  4. Перезапуск Ubuntu

Что касается пункта 3, не уверен, что добавление вышеприведенной записи работает или нет, но этот шаг работает для меня

    
ответ дан Vuzi 21.09.2018 в 14:43
0
  1. Запустите Synaptic (перейдите в System - > Administration - > Synaptic в Gnome 2 или введите "синаптический" в Dash in Unity).
  2. В строке меню нажмите Настройки , а затем Настройки .
  3. Когда появится окно «Настройки», перейдите на вкладку Сеть .
  4. Выберите переключатель Ручная настройка прокси-сервера и введите свою прокси-информацию.
  5. Чтобы применить информацию об аутентификации, нажмите кнопку Аутентификация и введите имя пользователя и пароль.
  6. Нажмите «ОК», чтобы закрыть окно проверки подлинности HTTP.
  7. Нажмите «ОК», чтобы закрыть окно «Настройки».
  8. Нажмите кнопку «Обновить», чтобы обновить списки пакетов.

Обратите внимание, что это изменение настроек также повлияет на Диспетчер обновлений .

    
ответ дан N.C. Weber 13.10.2011 в 21:23
0

Это однострочное решение работало для меня:

sudo env http_proxy=http://<ip>:<port> apt-get update
    
ответ дан Raheel 26.03.2017 в 06:03