«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? « - » здесь особый символ?

56
задан 13 April 2017 в 15:24

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
56
ответ дан 13 April 2017 в 15:24

Я обнаружил, что USERNAME и PASSWORD, введенные в апплет "Network Proxy" не сохраняются в файле 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 strong/сложный пароль со специальными символами, вы должны использовать кодировку URL-адреса для значений, например, "@" в пароле будет "%40".

13
ответ дан 13 April 2017 в 15:24

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

edit:
Если настройка 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: Настройки -> Настройки -> Сеть
. настройки прокси в «Ручная настройка прокси».

9
ответ дан 13 April 2017 в 15:24

Я нахожусь за 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/";
4
ответ дан 13 April 2017 в 15:24
  1. Start Synaptic (перейдите по ссылке System -> Administration -> Synaptic в Gnome 2, или введите "Synaptic" в Dash in Unity).
  2. В строке меню щелкните Настройки , затем Параметры .
  3. При появлении окна Параметры щелкните по вкладке Сеть .
  4. Выберите радиокнопку Конфигурация прокси-сервера вручную и введите информацию о прокси-сервере. Для применения информации об аутентификации нажмите кнопку Аутентификация и введите имя пользователя и пароль.
  5. Нажмите OK, чтобы закрыть окно HTTP-аутентификации.
  6. Нажмите OK, чтобы закрыть окно Параметры.
  7. Нажмите кнопку Перезагрузить, чтобы обновить списки пакетов.

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

0
ответ дан 13 April 2017 в 15:24

Как применить apt-get update или установить в 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

2
ответ дан 13 April 2017 в 15:24
  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

2
ответ дан 13 April 2017 в 15:24

Та же проблема возникла после установки Ubuntu 18.04. У меня сработало следующее:

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

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

1
ответ дан 13 April 2017 в 15:24

При использовании прокси 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-й строки прокси, не вводите эту строку. ^ ^ ^ ^

1
ответ дан 13 April 2017 в 15:24

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

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

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

restart cntlm

3
ответ дан 13 April 2017 в 15:24

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

(добавление прокси вручную из графического интерфейса через 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» используйте переменные среды пользователя для root (sudo), для независимо от того, http_proxy / https_proxy вы только что экспортировали.

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

2
ответ дан 13 April 2017 в 15:24

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

sudo env http_proxy=http://<ip>:<port> apt-get update
0
ответ дан 13 April 2017 в 15:24

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

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