- How to run «sudo apt-get update» through proxy in commandline?
- 8 Answers 8
- Вики IT-KB
- Как задать прокси для обновления пакетов в Debian/Ubuntu Linux
- Включение прокси для всех пользователей системы
- Включение прокси для текущего пользователя
- Обход прокси для локальных репозиториев
- Обсуждение
- APT: Задать прокси для обновления пакетов в Ubuntu/Debian
- Обновление Ubuntu через прокси
- Настройка работы apt через прокси
- Выводы
How to run «sudo apt-get update» through proxy in commandline?
In my office i want to update and download through (wget) and here they are using proxy? How can i do this by commandline?
8 Answers 8
In some releases sudo is configured in such a way that all environment variables all cleared when running the command. To keep the value for your http_proxy and fix this, you need to edit /etc/sudoers, run:
Then find a line that states:
Defaults env_keep = "http_proxy ftp_proxy"
Things will start working as expected.
Thanks to kdogksu in the Ubuntu Forums for finding the solution for this.
In order to not only fix apt-get but also graphical X11 utils as e.g synaptic,mintintall, . ) the following line in /etc/sudoers should do the job :
Defaults env_keep = "http_proxy https_proxy ftp_proxy DISPLAY XAUTHORITY"
$ export http_proxy=»user:password@proxy-server:port» and if your password contains special characters —cyberciti.biz/faq/…
should ‘env_keep’ be added after ‘env_reset’ or placed in its place? They look opposing to each other, so is there sense in keeping both?
ubuntu@ubuntu:~$ cat /etc/apt/apt.conf Acquire::http::Proxy "http://Username:Password@proxy.foo.bar.edu.au:8080";
This is what I use. Works perfectly.
Apt also allows individual settings to be placed in files under /etc/apt/apt.conf.d/ , so this has exactly the same effect as the above, but may be easier to maintain if you have other lines in the .conf file:
ubuntu@ubuntu:~$ cat /etc/apt/apt.conf.d/05proxy Acquire::http::Proxy "http://Username:Password@proxy.foo.bar.edu.au:8080";
I recommend editing this to explain how to add that line to the configuration file. Attempting to run those lines on the command-line won’t do it. Right now this answer is based on a correct idea but won’t be helpful to a novice. It’s not even entirely clear that you’re saying that line should be added to apt.conf .
@dldnh: You can create the file /etc/apt/apt.conf or use place a config file in /etc/apt/apt.conf.d . either works! 🙂
don’t forget the semicolon or you’ll get E: Syntax error /etc/apt/apt.conf:2: Extra junk at end of file
The thing that worked for me was:
sudo http_proxy=http://yourserver apt-get update
Which is a bit odd because simply exporting http_proxy and then running sudo echo $http_proxy obediently printed out the exported value
export http_proxy=http://proxyusername:proxypassword@proxyaddress:proxyport sudo apt-get update
The export shouldn’t need sudo ing and if your proxy is anonymous, just ditch the proxyusername:proxypassword@ part.
What about editing /etc/apt/apt.conf with Acquire::http::Proxy «MYDOMAIN\MYNAME:MYPASS@MY.PROXY.COM:MYPORT» ?
If you want to run “sudo apt-get update” through proxy in commandline, use below command,
sudo apt-get -o Acquire::http::proxy="http://user:password@host:port/" update;
Ubuntu is incredibly hostile to authenticating proxies. I use an Ubuntu laptop at work and the number of breakages is incredible.
Synaptic, Apt, Firefox, Chromium, etc all use different methods for specifying a proxy and there’s nowhere to specify credentials securely.
Oli’s suggestion to use an export is the only vaguely secure way to do it. It’s also sometimes possible to «fudge» proxy support if the proxy server is using secondary authentication to minimise load on the main authentication servers (say perhaps Active Directory). This is where the first proxy connection is authenticated by the proxy against AD, then for a set time period (usually 5 minutes) all other connections are «trusted» to be that user. Therefore, you can open firefox, browse the internet (anywhere will do), then try your utility (wget, synaptic, whatever) by specifying a proxy, but leave the username blank.
Ubuntu is generally hostile to any corporate environment simply because it allows passwords to be read so easily. Seahorse is a prime culprit, but Network Manager is also shocking — connect to any PEAP authenticated network and you’ve just stored your password in the applet for anyone to see who might borrow your laptop. Apparently laptop sharing is considered sacrilege in Linux land, since Seahorse developers rejected claims of insecurity. After that, I didn’t have the heart to contact the network-manager devs.
Вики IT-KB
Как задать прокси для обновления пакетов в Debian/Ubuntu Linux
При работе с менеджером deb-пакетов Advanced Packaging Tool (APT) в корпоративных сетях может потребоваться взаимодействие с внутренними прокси-серверами, предоставляющими доступ в Интернет. Здесь описаны основные методы настройки работы APT с такими прокси-серверами.
Включение прокси для всех пользователей системы
Данный способ глобальный, так как влияет на всех пользователей системы.
В конфигурационном файле /etc/apt/apt.conf указать строку вида:
Acquire::http::Proxy "http://User:Password@Proxy.holding.com:3128";
Аналогичные настройки также можно найти/указать в файлах вида /etc/apt/apt.conf.d/proxy
Включение прокси для текущего пользователя
Настройки прокси можно передать менеджеру пакетов APT через переменные окружения текущего пользователя. Для этого в профиле пользователя нужно внести изменения в файл ~/.profile , добавив в конец файла сроки вида:
. export https_proxy=http://User:Password@Proxy.holding.com:3128/ export http_proxy=http://User:Password@Proxy.holding.com:3128/ export ftp_proxy=http://User:Password@Proxy.holding.com:3128/
Обход прокси для локальных репозиториев
В случаях когда на уровне переменных окружения пользователя или на уровне всей системы заданы параметры прокси, которые используются менеджером пакетов APT, может возникнуть проблема с получением метаданных о пакетах из локальных репозиториев, доступ к которым должен выполняться не через прокси, а напрямую. В этих случаях в файл конфигурации APT можно добавить правило, которое заставит обращаться к указанному локальному репозиторию минуя прокси:
Acquire::http::Proxy { local-apt-repo.holding.com DIRECT; };
Проверено на следующих конфигурациях:
Версия ОС Linux | Версия APT |
---|---|
Debian GNU/Linux Jessie 8.10 | apt 1.0.9.8.4 (amd64) |
Debian GNU/Linux Bookworm 12.0 | apt 2.6.1 (amd64) |
Автор текущей редакции:
Алексей Максимов
Время публикации: 07.01.2018 00:39
Обсуждение
unix-linux/advanced-packaging-tool/how-to-install-packages-updates-apt-over-proxy-in-debian-unbuntu.txt · Последнее изменение: 19.06.2023 11:28 — Алексей Максимов
APT: Задать прокси для обновления пакетов в Ubuntu/Debian
В корпоративных сетях часто используют прокси сервера (например, Squid) для получения доступа в Интернет. Чтобы менеджер deb-пакетов Advanced Packaging Tool (APT) на хостах Ubuntu/Debian могу устанавливать и обновлять пакеты из внешних депозитариев, вы можете настроить его на использование прокси. Эта статья описывает, как задать параметры подключений к прокси-серверу в менеджере пакетов APT.
Вы можете задать глобальные настройки прокси сервера для APT в файле /etc/apt/apt.conf.
$ sudo touch /etc/apt/apt.conf
$ sudo mcedit /etc/apt/apt.conf
Добавьте в него строки вида:
Acquire::http::proxy "http://192.168.0.14:3128/"; Acquire::https::proxy "http://192.168.0.14:3128/"; Acquire::ftp::proxy "ftp://192.168.0.14:3128/"; Acquire. Proxy "true";
Если для подключения к прокси-серверу требуется выполнить аутентификацию, вы можете указать имя пользователя и пароль:
Acquire::http::Proxy "http://User:Password@192.168.0.14:3128"; Acquire::https::Proxy "http://User:Password@192.168.0.14:3128"; Acquire::ftp::Proxy "ftp://User:Password@192.168.0.14:3128";
При следующем использовании команды apt или apt-update для подключения к репозиториям будет использоваться прокси-сервер.
Если у вас развернуты собственные локальные deb репозиторий, вы можете указать, чтобы обращение к ним выполнялись напрямую, а не через прокси. Добавьте в файл apt.conf:
Чтобы проверить, что для установки или обновления пакета Ubuntu через apt использовалось подключение через прокси-сервер, выполните команду:
Ключевое слово automatic указывает, что для загрузки этих пакетов использовался прокси-сервер.
Указанные выше настройки прокси для APT являются глобальными и применяются для всех пользователей. Если вы хотите использовать прокси-сервер для установки и обновления пакетов APT только для текущего пользователя, можно использовать переменные окружения. Для этого добавьте следующие строки в конце профиля пользователя ~/.profile:
export https_proxy=http://User:Password@192.168.0.14:3128/ export http_proxy=http://User:Password@192.168.0.14:3128/ export ftp_proxy=http://User:Password@192.168.0.14:3128/
Если вы указали недоступный прокси сервер, или неверное имя пользователя и пароль, появятся ошибки вида:
W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/jammy-security/InRelease Could not connect to 192.168.0.14:3128 (192.168.0.14). - connect (111: Connection refused) W: Some index files failed to download. They have been ignored, or old ones used instead.
Если указан неверное имя пользователя/пароль для подключения к прокси-серверу, появится ошибка:
407 Proxy Authentication Required
Обновление Ubuntu через прокси
Иногда нужно настроить обновление Ubuntu через прокси-сервер. Некоторые провайдеры или крупные организации разрешают доступ в интернет только через свои прокси. Таким образом они получают возможность фильтровать просматриваемый трафик, чтобы ограничивать доступ на нежелательные ресурсы или при неуплате.
Настройка сводится к выполнению нескольких консольных команд. В Ubuntu для управления пакетами используется утилита apt — её и будем настраивать. Как вы поняли, в данной статье мы рассмотрим, как настроить apt через прокси, а точнее, как выполняется настройка обновления через прокси Ubuntu 16.04.
Настройка работы apt через прокси
Как я уже сказал, в Ubuntu загрузкой, поиском и установкой пакетов занимается утилита apt. Таким образом, нам нужно заставить apt работать через прокси. Для этого будем использовать каталог /etc/apt/apt.conf.d/, создайте в нём файл 10proxy:
sudo vi /etc/apt/apt.conf.d/10proxy
Синтаксис записей в файле выглядит следующим образом:
Вообще, название файлу можно дать какое угодно, а выбрано именно это, чтобы вы сразу, посмотрев на имя, поняли для чего этот файл.
- http — протокол, на котором работает прокси;
- http://proxy.com — адрес прокси-сервера;
- port — порт;
- username — имя пользователя, если для прокси используется аутентификация;
- password — пароль от прокси.
Например, зададим три прокси, которые работают на протоколах http, https, ftp и socks, затем разрешим использование прокси-серверов:
Acquire::http::proxy «http://username:password@proxy.com:port/»;
Acquire::https::proxy «https://username:password@proxy.com:port/»;
Acquire::ftp::proxy «http://username:password@proxy.com:port/»;
Acquire::socks::proxy «socks://username:password@proxy.com:port/»;
Acquire. Proxy «true»;
Прокси применяются так, как они расположены в списке, если первый не работает, применяется второй и так далее. Сохраните изменения — теперь можно обновлять систему или устанавливать программное обеспечение:
Или выполнить установку пакетов Ubuntu через прокси:
Если захотите отключить обновление Ubuntu через прокси, просто удалите файл 10proxy:
sudo rm /etc/apt/apt.conf.d/10proxy
Выводы
Вот и всё, теперь вы знаете как выполняется настройка apt через прокси Ubuntu. Для работы apt того, что описано в статье достаточно, но если нужно заставить работать другие приложения, придётся выполнить ещё пару настроек, задать прокси в настройках системы, а также установить переменную http_proxy в файле ~/.bashrc. Если у вас остались вопросы, задавайте их в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.