"apt-get" не работает с прокси

Для команды

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, есть идеи?

Мой прокси-сервер называется http-proxy. "-" здесь особый характер?

12 ответов

Решение

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

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

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

[domain]\[username]

Например:

http://mywindowsdomain\fossfreedom:password@askubuntu-proxy.com:8080

Это было добавлено в следующий НОВЫЙ файл (он не существует по умолчанию):

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

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

Acquire::http::Proxy "http://mywindowsdomain\fossfreedom:password@askubuntu-proxy.com:8080";

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

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

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

sudo apt-get update

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

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

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

Acquire::http::proxy "http://User:Password@host:port/";

Acquire::ftp::proxy "ftp://User:Password@host:port/";

Acquire::https::proxy "https://User:Password@host:port/";

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

User = Domain/Username

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

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

Попробуйте установить http_proxy на http://user:pass@proxyserver:port/

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

APT {
    Acquire {
        http {
            Proxy "http://user:password@server:port";
        };
    };
};

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

Я за MS ISA-прокси и использую Cntlm Authentication Proxy; в 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/";

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

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

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

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

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

Что я сделал, чтобы решить эту проблему:

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

sudo -H gedit /etc/bash.bashrc

и добавьте внизу файла эти 2 строки:

#proxy 
export http_proxy=http://user:password@host:port/
export ftp_proxy=http://user:pass@host:port/

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

  1. Откройте терминал и добавьте следующие строки в /etc/apt/apt.conf.

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

    Acquire::http::Proxy "http://user:pass@proxy-host:port/";
    Acquire::ftp::Proxy "http://user:pass@proxy-host: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

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

(добавление прокси вручную из GUI через system-settings->network и т. д. должно работать) Но если это не так, вы экспортируете переменную 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, который вы только что экспортировали.

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

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

Acquire::http::proxy "http://Domain%5cUserID:Password@proxy.name.whatever:80/";
Acquire::ftp::proxy "ftp://Domain%5cUserID:Password@proxy.name.whatever:80/";
Acquire::https::proxy "https://Domain%5cUserID:Password@proxy.name.whatever:80/";

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

Возникла такая же проблема после установки Ubuntu 18.04. То, что работало для меня, было:

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

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

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

sudo env http_proxy=http://<ip>:<port> apt-get update
  1. Запустите Synaptic (зайдите в Система -> Администрирование -> Synaptic в Gnome 2 или введите "synaptic" в Dash в Unity).
  2. В строке меню нажмите " Настройки", а затем " Настройки".
  3. Когда появится окно настроек, нажмите на вкладку Сеть.
  4. Выберите переключатель " Ручная настройка прокси " и введите информацию о прокси.
  5. Чтобы применить информацию аутентификации, нажмите кнопку Аутентификация и введите имя пользователя и пароль.
  6. Нажмите кнопку ОК, чтобы закрыть окно HTTP-аутентификации.
  7. Нажмите OK, чтобы закрыть окно настроек.
  8. Нажмите кнопку Обновить, чтобы обновить списки пакетов.

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

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