Настроить прокси для APT?

Мне нужно настроить прокси. В etc/apt/ не было файла apt.conf, поэтому я создал его, используя nano.

Но я не понимаю, что мне нужно написать там. Я написал http_proxy = http://lgn:pwd@192.168.1.254:8080/ тут же перезапустил networking. Но когда я пытаюсь apt-get update - это не работает.

На самом деле я не понимаю, какой порт и ip мне следует записать в файл apt.conf (был пример с 192.168.1.254 ip и 8080 port, поэтому я решил использовать их).

96
задан 11 April 2013 в 19:19

6 ответов

Чтобы использовать прокси, вам нужен прокси-сервер.IP и порт должны быть от этого прокси-сервера. Логин и пароль должны быть вашим пользователем и паролем на прокси-сервере (если прокси требует входа в систему).

С сайта help.ubuntu.com :

Метод файла конфигурации APT

Этот метод использует файл apt.conf, который находится в вашем каталоге / etc / apt /. Этот метод полезен, если вы хотите, чтобы только apt-get (а не другие приложения) постоянно использовали http-прокси.

На некоторых установках не будет настроен файл apt-conf. Отредактируйте файл apt-conf (или создайте новый, если у вас его еще нет) с помощью редактора по вашему выбору.

 sudo nano /etc/apt/apt.conf
 

Добавьте эту строку в свой файл /etc/apt/apt.conf (замените свои данные на ваш прокси-адрес и прокси-порт).

 Acquire :: http :: Proxy "http: // yourproxyaddress: proxyport";
 

Сохраните файл apt.conf.

Если вашему прокси-серверу требуется логин / пароль, замените:

"http://yourproxyaddress:proxyport";

на:

"http://username:password@yourproxyaddress:proxyport";

, используя имя пользователя и пароль от прокси-сервера.

122
ответ дан 11 April 2013 в 19:19

Это более общий ответ вместе с apt config.

Как там много мест для настройки параметров прокси, это может запутать вначале. Позвольте мне подытожить некоторые вещи и предложить некоторые передовые методы.

Для консольных программ

Пример: wget, git и почти все консольные приложения, которые подключаются к Интернету.

Если вы хотите настраивать прокси каждый раз, когда вы запускаете свои команды по какой-то причине задает переменные среды с помощью следующих команд.

export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export ftp_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/

Иначе, если вы хотите использовать одни и те же настройки каждый раз для всех пользователей, используйте их.

Настроить в bashrc

$ nano /etc/bash.bashrc
export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export ftp_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/

Настроить в / etc / environment

$ nano /etc/environment
https_proxy="http://myproxy.server.com:8080/" 
ftp_proxy="http://myproxy.server.com:8080/" ...

Настроить с помощью графического интерфейса

Откройте настройки сети и установите сетевой прокси для всей системы.

Сеть -> Сетевой прокси -> Настроить -> Применить для всей системы.

Но это может быть бесполезно, если у вас есть аутентификация для прокси.

Для apt.

Вам нужно проделать некоторую дополнительную работу для apt, так как, кстати, apt не подчиняется переменным среды,

$ nano /etc/apt/apt.conf
Acquire::http::Proxy "http://USERNAME:PASSWORD@SERVER:PORT";
Acquire::https::Proxy "https://USERNAME:PASSWORD@SERVER:PORT";

Для всего, кроме В этой области должна быть возможность настроить параметры прокси-сервера в самом приложении. Если нет, мне очень жаль;)

33
ответ дан 11 April 2013 в 19:19

Должно работать примерно следующее:

Acquire::http::proxy "http://lgn:pwd@192.168.1.254:8080/";
Acquire::https::proxy "http://lgn:pwd@192.168.1.254:8080/";
23
ответ дан 11 April 2013 в 19:19

Если вам нужно использовать apt за прокси-сервером, вероятно, для всего остального также потребуется конфигурация прокси. Мне нравится управлять своими настройками прокси в одном месте, это будет переменная среды.

Для этого я создаю /etc/profiles.d/99-proxy.sh , который содержит необходимый прокси настройки (как описано в larent):

export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export https_proxy=$http_proxy
export ftps_proxy=$http_proxy

таким образом, все пользователи на этой машине будут иметь доступ к прокси. (не забудьте chmod a + x )

Когда вы используете apt или apt-get в качестве пользователя, этот пользователь может использовать sudo. Как описал Фрэнк Цю, sudo не передает переменные среды. Для этого вы можете добавить

Defaults env_keep += "http_proxy https_proxy ftp_proxy"

(например) в

/etc/sudoers.d/00-environment 

или непосредственно в файл

/etc/sudoers

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

3
ответ дан 11 April 2013 в 19:19

Что вы можете сделать, так это попробовать запустить команду с помощью sudo -E , который примет настройки среды. Мне кажется, что это работает, когда я пытаюсь обновить, добавить apt-repository и установить. Пример:

sudo -E add-apt-repository ppa:xxxxx

Согласно @David Foerster, это работает только для ручного взаимодействия с использованием оболочки, но не будет работать с автоматическими задачами и службами, вызывающими Apt без взаимодействия с пользователем.

8
ответ дан 11 April 2013 в 19:19

Исходный вопрос может быть неправильным. Я считаю, что вы хотите установить прокси-сервер в Linux?

Что ж, это полностью отличается от желания использовать существующий прокси из среды Linux.

Если ваш вопрос является первым, воспользуйтесь услугами сторонних производителей для настройки прокси-сервера в Linux. Примером может быть squid.

Простые команды для установки squid:

$ sudo apt-get install squid3

Затем отредактируйте конфигурацию, чтобы разрешить локальную сеть (в данном случае вашу собственную машину). $ sudo vi /etc/squid3/squid.conf

Добавьте/Идите следующие строки:

http_access allow local_net
acl local_net src 192.168.1.0/255.255.255.0

Предполагая, что ваш IP-адрес машины Linux находится в блоке 192.168.1 / 24.

0
ответ дан 11 April 2013 в 19:19

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

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