"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
Откройте терминал и добавьте следующие строки в /etc/apt/apt.conf.
gksu gedit /etc/apt/apt.conf
Добавьте эти 2 строки:
Acquire::http::Proxy "http://user:pass@proxy-host:port/"; Acquire::ftp::Proxy "http://user:pass@proxy-host:port/";
Сохранить и выйти.
Сейчас
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. То, что работало для меня, было:
- Откройте экран Network Proxy в настройках сети
- Выберите Manual и добавьте информацию о http и https прокси
- Дополнительно установите поле Ignore Hosts с помощью:
https://extensions.gnome.org*, *.extensions.gnome.org*
- Перезапущенный Ubuntu
Что касается пункта 3, не уверен, работает ли добавление вышеупомянутой записи или нет, но этот шаг работает для меня
Это однострочное решение сработало для меня:
sudo env http_proxy=http://<ip>:<port> apt-get update
- Запустите Synaptic (зайдите в Система -> Администрирование -> Synaptic в Gnome 2 или введите "synaptic" в Dash в Unity).
- В строке меню нажмите " Настройки", а затем " Настройки".
- Когда появится окно настроек, нажмите на вкладку Сеть.
- Выберите переключатель " Ручная настройка прокси " и введите информацию о прокси.
- Чтобы применить информацию аутентификации, нажмите кнопку Аутентификация и введите имя пользователя и пароль.
- Нажмите кнопку ОК, чтобы закрыть окно HTTP-аутентификации.
- Нажмите OK, чтобы закрыть окно настроек.
- Нажмите кнопку Обновить, чтобы обновить списки пакетов.
Обратите внимание, что это изменение параметра также повлияет на диспетчер обновлений.