"apt-get" не працює з проксі


52

Для команди

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 . Тут особливий персонаж ' - '?


2
Чи використовували ви проксі глобальної мережі в системі -> налаштування -> мережевий проксі і застосували налаштування глобально?
DemonWareXT

Ви можете спробувати простий у використанні графічний інструмент GrrProxy
Lider,

Відповіді:


52

Для своєї корпоративної мережі мені адміністратор дав ім'я проксі у форматі:

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

Тим, хто прочитає це пізніше: Це здається невдалим для нетренованого ока, але це неймовірно простий спосіб змусити корпоративного проксі підкорятися.
macduff

1
Це прекрасно працює. ЗАКЛЮЧИТИ, що раніше ви встановили /etc/apt/apt.conf неправильною лінією Acquire. Я зробив саме це, і все, що я повинен був зробити, це повернутися назад і видалити цей рядок.
Пропустити Хаффмана

У Ubuntu 12.10 мені довелося скопіювати зміни, внесені в /etc/apt/apt.conf.d/01proxy, до /etc/apt/apt.conf, перш ніж це запрацює.
Stephen Niedzielski

навіть з цими правками я не міг змусити це працювати для мене з 12.04 ... але мені вдалося змусити це працювати, використовуючи та налаштовуючи ntlmaps та вказуючи файл apt.conf на проміжний проксі там.
monkut

The program 'gksudo' is currently not installed. You can install it by typing: sudo apt-get install gksu(що, звичайно, не буде працювати без налаштування проксі ...) На щастя, це sudoпрацює чудово.
ТЕД

13

Я виявив, що 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 із спеціальними символами, ви повинні використовувати кодування URL для значень, наприклад, "@" у паролі буде "% 40".


(користувачі Windows використовують / ні) Так ТО чому я застряг :) Дякую!
GaiusSensei

9

Спробуйте встановити 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: Налаштування -> Налаштування -> Мережа,
а потім встановіть налаштування проксі у "Ручна конфігурація проксі".


3
Ви маєте на увазі / etc / file file?
tommyk

Так, ця змінна встановить глобально.
Повсякденний кодер

Як можна кодувати двокрапку як частину пароля?
k0pernikus

/ etc / environment не працює з apt-get (або принаймні вимагає перезавантаження;), зміна apt.conf має негайний ефект
Дунайський моряк

Я можу підтвердити налаштування "Ручна конфігурація проксі" та "Застосувати систему в масштабах" у Мережі, що працює з apt-get.
Буде Шеппард

4

Я за проксі-сервером 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/";

3

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

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

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

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


'cntlm' is currently not installed. You can install it by typing: sudo apt-get install cntlm(що, якщо, звичайно, не буде працювати, якщо мій проксі не встановлений правильно ...)
TED

2
  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 додаток-apt-сховище ppa: motumedia / mplayer-daily

Через Unixmen


2

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

Що я зробив, щоб вирішити цю проблему, це наступне:

Відкрийте термінал і файл

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


Я додав експорт, як ви запропонували. Це все ще не працює. Тепер я отримав інше повідомлення про помилку "Не вдалося підключитися до extras.ubuntu.com:80 (91.189.88.33). - Підключити (110: Час з'єднання вичерпано)". <br> Дивна річ, що коли я ввожу ті самі налаштування проксі у налаштуваннях Firefox, я можу переглядати Інтернет.
tommyk

@tommyk Ви можете опублікувати /etc/apt/sources.list і оновити своє запитання тут або спробувати видалити extras.ubuntu.com зі свого /etc/apt/sources.list та виконати оновлення apt-get
hhlp

Я замінив свій source.list типовим на веб-сторінці ubuntu. Я все одно отримав однакову помилку для кожного сховища, вказаного в цьому файлі.
tommyk

2

Цей працює для мене !!

(додавання проксі-сервера в GUI вручну через налаштування системи-> мережа тощо повинно працювати) Але якщо ні, ви експортуєте змінну 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, який ви щойно експортували.

Сподіваюся, це допомагає :)


1

Для проксі-сервера 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

Ця проблема була після встановлення Ubuntu 18.04. Що для мене працювало:

  1. Відкрийте екран мережевих проксі у налаштуваннях мережі
  2. Виберіть "Вручну" та додайте інформацію про проксі про http і https
  3. Додатково встановіть поле Ігнорувати хости за допомогою:
    https://extensions.gnome.org*, *.extensions.gnome.org*
  4. Перестановив Ubuntu

Що стосується пункту 3, не впевнений, чи працює додавання вищезазначеної записи чи ні, але цей крок працює для мене


0
  1. Запустіть Synaptic (перейдіть до System -> Administration -> Synaptic у Gnome 2 або введіть "synaptic" у Dash in Unity).
  2. На панелі меню натисніть Налаштування , а потім Налаштування .
  3. Коли з'явиться вікно Налаштування, натисніть на вкладку Мережа .
  4. Виберіть перемикач Налаштування проксі-сервера вручну та введіть інформацію про проксі.
  5. Щоб застосувати інформацію про автентифікацію, натисніть кнопку Аутентифікація та введіть ім'я користувача та пароль.
  6. Клацніть OK, щоб закрити вікно аутентифікації HTTP.
  7. Клацніть OK, щоб закрити вікно налаштувань.
  8. Натисніть кнопку Перезавантажити, щоб оновити списки пакетів.

Зауважте, що ця зміна налаштувань також вплине на Диспетчер оновлень .


0

Це однолінійне рішення працювало для мене:

sudo env http_proxy=http://<ip>:<port> apt-get update
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.