Мне нужно настроить прокси. В 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, поэтому я решил использовать их).
Чтобы использовать прокси, вам нужен прокси-сервер.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";
, используя имя пользователя и пароль от прокси-сервера.
Это более общий ответ вместе с 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 не подчиняется переменным среды,
$ nano /etc/apt/apt.conf
Acquire::http::Proxy "http://USERNAME:PASSWORD@SERVER:PORT";
Acquire::https::Proxy "https://USERNAME:PASSWORD@SERVER:PORT";
Для всего, кроме В этой области должна быть возможность настроить параметры прокси-сервера в самом приложении. Если нет, мне очень жаль;)
Должно работать примерно следующее:
Acquire::http::proxy "http://lgn:pwd@192.168.1.254:8080/";
Acquire::https::proxy "http://lgn:pwd@192.168.1.254:8080/";
Если вам нужно использовать 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
. Таким образом, вам нужно будет управлять настройками прокси только в одном месте.
Что вы можете сделать, так это попробовать запустить команду с помощью sudo -E
, который примет настройки среды. Мне кажется, что это работает, когда я пытаюсь обновить, добавить apt-repository и установить.
Пример:
sudo -E add-apt-repository ppa:xxxxx
Согласно @David Foerster, это работает только для ручного взаимодействия с использованием оболочки, но не будет работать с автоматическими задачами и службами, вызывающими Apt без взаимодействия с пользователем.
Исходный вопрос может быть неправильным. Я считаю, что вы хотите установить прокси-сервер в 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.