Настройка параметров прокси

Зачем нам нужно прописывать прокси в системе?

Следующие настройки будут полезны в том случае, если у нас в сети есть прокси-сервер, через который осуществляется выход в интернет. В том случае, если настройки прокси не будут прописаны, ряд утилит не будет работать корректно, например, wget, apt и т.д.

Для виртуальных машин, работающих в колледже, и которым необходим выход в Интернет, прописывается

Существует несколько вариантов настроек прокси, каждый соответствует той утилите, для которой предназначен:

  1. Глобальные настройки Proxy;

  2. Настройки Proxy для браузера, основанного на Chromium;

  3. Настройки Proxy для утилиты APT;

  4. Настройки Proxy персонально для выполняемой программы (BASH);

  5. Настройки Proxy для утилиты wget;

  6. Настройки Proxy для утилиты apt-add-repository;

Ubuntu

Глобальные настройки

Для того, чтобы настроить прокси в Ubuntu откройте Системные параметры, перейдите в пункт Сеть. Выберите пункт Сетевая прокси-служба. Смените метод на Вручную и введите ваши настройки прокси. Минус такой настройки в том, что в случае, если у Вас прокси с авторизацией по логину и паролю, то указать эти данные невозможно, и прокси не будет работать.

Настроить прокси на системном уровне можно и через конфигурационные файлы (True UNIX-way). Для этого нужно открыть на редактирования с правами root файл /etc/environment (например sudo nano /etc/environment). В конец файла добавим строки:

https_proxy="https://user:pass@proxy:port/" 
http_proxy="http://user:pass@proxy:port/"
ftp_proxy="ftp://user:pass@proxy:port/"
socks_proxy="socks://user:pass@proxy:port/"

Если прокси без авторизации, то строки должны быть вида:

<бла-бла>_proxy="https://proxy:port/"

Для применения настроек придется пере-загрузиться, изменения в файле /etc/environment вступили в силу при запуске процесса init - родителя всех процессов в системе и именно от него все дочерние процессы унаследуют настройки прокси в переменных окружения.

Как правила глобальной настройки прокси достаточно для того что бы все остальные приложения работали через прокси без необходимости настраивать прокси внутри приложения. Однако некоторые приложения не умеют работать с глобальными настройками или им нужны особенные настройки.

Firefox

Firefox умеет использовать как глобальные настройки, так и свои собственные. Для того чтобы назначить ему прокси, откройте его окно настроек, перейдите на вкладку Дополнительно, далее на вкладку Сеть и нажмите на кнопку Настроить напротив надписи Настройка параметров соединения Firefox с Интернетом. Важное отличие от других программ — он умеет использовать NTLM аутентификацию (используется на Microsoft Internet Security and Acceleration Server).

Chromium-browser

Также может использовать глобальные настройки и имеет свои. Для того чтобы назначить ему прокси персонально, откройте файл /etc/chromium-browser/default и допишите следующие строки:

CHROMIUM_FLAGS="-proxy-server=адрес:порт"

И перезапустите браузер

APT

В новых версиях умеет работать с глобальными настройками, но в более старых мог работать только с персональными настройками. Сообщенные настройки: в файле /etc/apt/apt.conf нужно указать:

Acquire::http::proxy "http://логин:пароль@ip_прокси:порт_прокси/";
Acquire::https::proxy "http://логин:пароль@ip_прокси:порт_прокси/";
Acquire::ftp::proxy "http://логин:пароль@ip_прокси:порт_прокси/";
Acquire::socks::proxy "http://логин:пароль@ip_прокси:порт_прокси/";
Acquire::::Proxy "true";

Если сервер без авторизации, то логин:пароль@ нужно убрать.

Bash

Само собой настройка через /etc/environment (описано выше в разделе глобальных настроек) будет работать для всех программ запущенных из терминала. Если вы хотите указать настройки персонально для запускаемой программы, то перед ее запуском нужно выполнить:

export http_proxy='http://логин:пароль@ip_прокси:порт_прокси/'
export ftp_proxy='http://логин:пароль@ip_прокси:порт_прокси/'

wget

Дописываем в файл /etc/wgetrc :

proxy-user = username 
proxy-password = password
http_proxy = http://xxx.xxx.xxx.xxx:8080/
ftp_proxy = http://xxx.xxx.xxx.xxx:8080/
use_proxy = on

Если прокси без авторизации, то proxy-user и proxy-password нужно убрать

apt-add-repository

Многие компании и университеты блокируют все неизвестные порты наружу. Обычно блокируется и порт 11371, используемый утилитой apt-add-repository для добавления репозиториев. Есть простое решение, как получать ключи репозиториев через 80-ый порт, который используется для доступа к web-страницам и чаще всего не блокируется.

Редактируем файл /usr/lib/python2.6/dist-packages/softwareproperties/ppa.py (нужны привилегии root, вместо /usr/lib/python2.6 может быть версия 2.7). Ищем фразу keyserver.ubuntu.com, заменяем

hkp://keyserver.ubuntu.com

на

hkp://keyserver.ubuntu.com:80

В версии 16.04 достаточно иметь настроенной переменную окружения

https_proxy="https://user:pass@proxy:port/"

Debian

Общесистемные настройки Proxy

Для этого мы создадим файл внутри /etc/profile.dкаталога и установим настройки прокси, которые будут работать для всех пользователей в системе Debian Linux.

sudo nano /etc/profile.d/proxy.sh

Заполните свои прокси-значения.

# set proxy config via profie.d - should apply for all users
# http/https/ftp/no_proxy
export http_proxy="http://username:password@ip:port/"
export https_proxy="http://username:password@ip:port/"
export ftp_proxy="http://username:password@ip:port/"
export no_proxy="127.0.0.1,localhost"

# For curl
export HTTP_PROXY="http://username:password@ip:port/"
export HTTPS_PROXY="http://username:password@ip:port/"
export FTP_PROXY="http://username:password@ip:port/"
export NO_PROXY="127.0.0.1,localhost"

Добавьте любой дополнительный IP-адрес, который нужно исключить, в переменные среды NO_PROXY и no_proxy . Когда закончите, добавьте бит выполнения в созданный скрипт.

sudo chmod +x /etc/profile.d/proxy.sh

Любой пользователь в системе, которому необходимо использовать эти настройки, должен выйти и снова войти:

logout

В качестве альтернативы создайте файл для использования во время выполнения:

source /etc/profile.d/proxy.sh

Подтвердите, что прокси был загружен в вашей среде.

$ env | grep -i proxy

Proxy для APT

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

$ sudo nano /etc/apt/apt.conf.d/80proxy
Acquire::http::proxy "http://ip:port/";
Acquire::https::proxy "https://ip:port/";
Acquire::ftp::proxy "ftp://ip:port/";

Укажите правильный IP-адрес вашего прокси-сервера. Если требуется аутентификация, установите так.

Acquire::http::proxy "http://<username>:<password>@<proxy>:<port>/";
Acquire::https::proxy "https://<username>:<password>@<proxy>:<port>/";
Acquire::ftp::proxy "ftp://<username>:<password>@<proxy>:<port>/";

Proxy для wget

Если вы хотите настроить прокси для использования с wgetинструментом командной строки, файл для изменения — это ~/.wgetrc файл.

$ nano ~/.wgetrc                           
use_proxy = on
http_proxy = http://ip:port/ 
https_proxy = http://ip:port/ 
ftp_proxy = http://ip:port/ 

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

CentOS

Системные настройки Proxy

sudo nano /etc/environment

export http_proxy="http://USERNAME:PASSWORD@SERVER:PORT/"
export https_proxy="http://USERNAME:PASSWORD@SERVER:PORT/"
export no_proxy="127.0.0.1,localhost"
export HTTP_PROXY="http://USERNAME:PASSWORD@SERVER:PORT/"
export HTTPS_PROXY="http://USERNAME:PASSWORD@SERVER:PORT/"
export NO_PROXY="127.0.0.1,localhost"

Если повезло чуть меньше, и установлен только редактор vi. Инструкция будет чуть сложнее, сначала открываем файл в редакторе:

sudo vi /etc/environment

Далее необходимо нажать клавишу i, чтобы войти в режим редактирования, после вставляем наши заветные строчки:

export http_proxy="http://USERNAME:PASSWORD@SERVER:PORT/"
export https_proxy="http://USERNAME:PASSWORD@SERVER:PORT/"
export no_proxy="127.0.0.1,localhost"
export HTTP_PROXY="http://USERNAME:PASSWORD@SERVER:PORT/"
export HTTPS_PROXY="http://USERNAME:PASSWORD@SERVER:PORT/"
export NO_PROXY="127.0.0.1,localhost"

Чтобы сохранить изменения сначала нажмите ESC, а далее наберите :wq, чтобы выйти без сохранения нажмите ESC и наберите просто :q

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

sudo cat >> /etc/environment << EOFXX
export http_proxy="http://USERNAME:PASSWORD@SERVER:PORT/"
export https_proxy="http://USERNAME:PASSWORD@SERVER:PORT/"
export no_proxy="127.0.0.1,localhost"
export HTTP_PROXY="http://USERNAME:PASSWORD@SERVER:PORT/"
export HTTPS_PROXY="http://USERNAME:PASSWORD@SERVER:PORT/"
export NO_PROXY="127.0.0.1,localhost"
EOFXX

Настройка для пакетных менеджеров

Теперь настроим прокси для пакетных менеджеров yum и dnf. Для этого отредактируем файл /etc/yum.conf, добавив в конец следующие строки (Fedora/CentOS/RHEL 8):

proxy=http://SERVER:PORT

Для авторизации укажите также следующие строки:

proxy_username=USERNAME
proxy_password=PASS
proxy_auth_method=basic

Для пользователей RHEL вам также необходимо установить прокси для доступа к содержимому RHSM:

$ sudo nano /etc/rhsm/rhsm.conf
# Configure
proxy_hostname = proxy.example.com
proxy_port = 8080

Если ваш прокси-сервер требует аутентификации, также установите

# user name for authenticating to an http proxy, if needed
proxy_username=

# password for basic http proxy auth, if needed
proxy_password =

Это основные настройки, которые вам понадобятся для использования прокси-сервера для доступа в Интернет на компьютерах с CentOS/RHEL 7 и 8 и на компьютерах с Fedora Linux.

Last updated