Как легко и быстро настроить общесистемный прокси

В этой статье мы рассмотрим простую, но полезную утилиту командной строки ProxyMan. Как следует из названия, программа помогает легко и быстро применять и управлять настройками прокси в системе. Используя ProxyMan, мы можем автоматически устанавливать или сбрасывать настройки прокси в нескольких точках, без необходимости настраивать их вручную одну за другой. Это также позволяет сохранить настройки для последующего использования. Короче говоря, ProxyMan упрощает задачу настройки параметров прокси всей системы с помощью одной команды. Это бесплатная утилита с открытым исходным кодом, написанная на Bash и стандартными инструментами POSIX, не требующая зависимости. ProxyMan может быть полезен, если вы находитесь за прокси-сервером и хотите применить настройки прокси для всей системы за один раз.

Загрузим последнюю версию ProxyMan со страницы релизов. Он доступен в виде файлов zip и tar. Мы скачаем zip-файл.

$ wget https://github.com/himanshub16/ProxyMan/archive/v3.1.1.zip

Распакуем загруженный файл архива:

$ unzip v3.1.1.zip

Приведенная выше команда извлечет содержимое в папку с именем «ProxyMan-3.1.1» в нашем текущем рабочем каталоге. Перейдем в эту папку и установим ProxyMan, как показано ниже:

$ cd ProxyMan-3.1.1/
$ ./install

Если вы видите сообщение “Installed successfully”, поздравляем! ProxyMan установлен.

Переходим к настройкам параметров прокси.

Использование ProxyMan довольно простое и понятное. Он позволяет нам устанавливать/отменять настройки прокси, выводить список текущих настроек прокси и доступных конфигураций, сохранять настройки в профиле и загружать профиль позже. В настоящее время Proxyman позволяет управлять настройками прокси для GNOME, bash, apt, dnf, git, npm и Dropbox.

Чтобы установить параметры прокси для всей системы, просто запустите:

$ proxyman set

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

  • IP-адрес HTTP-прокси,
  • Порт HTTP-прокси,
  • Использование аутентификацию по имени пользователя/паролю,
  • Использование тех же настроек для HTTPS и FTP,
  • Сохранение профиля для последующего использования,
  • Наконец, выбор списка целей для применения настроек прокси. Вы можете выбрать все сразу или несколько вариантов, разделив пробелом.

Пример вывода для вышеуказанной команды:

Enter details to set proxy 
HTTP Proxy Host 192.168.225.22
HTTP Proxy Port 8080
Use auth - userid/password (y/n)? n
Use same for HTTPS and FTP (y/n)? y
No Proxy (default localhost,127.0.0.1,192.168.1.1,::1,*.local) 
Save profile for later use (y/n)? y
Enter profile name : proxy1
Saved to /home/test/.config/proxyman/proxy1.

Select targets to modify 
| 1 | All of them ... Don't bother me
| 2 | Terminal / bash / zsh (current user) 
| 3 | /etc/environment
| 4 | apt/dnf (Package manager)
| 5 | Desktop settings (GNOME/Ubuntu)
| 6 | npm & yarn
| 7 | Dropbox
| 8 | Git
| 9 | Docker

Separate multiple choices with space
? 1
Setting proxy...
To activate in current terminal window
run source ~/.bashrc
[sudo] password for test: 
Done

Для просмотра текущих настроек прокси выполните:

$ proxyman list

Пример вывода

Hmm... listing it all

Shell proxy settings : /home/test/.bashrc 
export http_proxy="http://192.168.225.22:8080/"
export ftp_proxy="ftp://192.168.225.22:8080/"
export rsync_proxy="rsync://192.168.225.22:8080/"
export no_proxy="localhost,127.0.0.1,192.168.1.1,::1,*.local"
export HTTP_PROXY="http://192.168.225.22:8080/"
export FTP_PROXY="ftp://192.168.225.22:8080/"
export RSYNC_PROXY="rsync://192.168.225.22:8080/"
export NO_PROXY="localhost,127.0.0.1,192.168.1.1,::1,*.local"
export https_proxy="/"
export HTTPS_PROXY="/"

git proxy settings : 
http http://192.168.225.22:8080/
https https://192.168.225.22:8080/

APT proxy settings : 
3
Done

Чтобы сбросить настройки прокси, выполните:

$ proxyman unset

Вы можете сбросить настройки прокси-сервера для всех целей одновременно, введя номер 1, или введите любое число, чтобы сбросить настройки прокси-сервера для конкретной цели.

Select targets to modify 
| 1 | All of them ... Don't bother me
| 2 | Terminal / bash / zsh (current user) 
| 3 | /etc/environment
| 4 | apt/dnf (Package manager)
| 5 | Desktop settings (GNOME/Ubuntu)
| 6 | npm & yarn
| 7 | Dropbox
| 8 | Git
| 9 | Docker

Separate multiple choices with space
? 1
Unset all proxy settings
To activate in current terminal window
run source ~/.bashrc
Done

Чтобы применить изменения, просто запустите:

$ source ~/.bashrc

На ZSH используйте соответственно:

$ source ~/.zshrc

Чтобы проверить, были ли удалены настройки прокси, просто введите команду:

$ proxyman list
Hmm... listing it all

Shell proxy settings : /home/test/.bashrc 
None

git proxy settings : 
http 
https

APT proxy settings : 
None
Done

Как видите, настройки прокси для всех целей отсутствуют.

Помните, мы сохранили настройки прокси как профиль в разделе Установка настроек прокси? Можно просмотреть список доступных профилей с помощью команды:

$ proxyman configs

Пример вывода команды

Here are available configs!
proxy1
Done

Как видим, у нас есть только один профиль и это proxy1.

Профили будут доступны до тех пор, пока вы не удалите их, поэтому вы можете в любое время загрузить профиль (например, proxy1), используя команду:

$ proxyman load proxy1

Эта команда выведет список параметров прокси для профиля proxy1. Вы можете применить эти настройки ко всем или нескольким целям, введя соответствующий номер (если несколько, через пробел).

Loading profile : proxy1 
HTTP > 192.168.225.22 8080
HTTPS > 192.168.225.22 8080
FTP > 192.168.225.22 8080
no_proxy > localhost,127.0.0.1,192.168.1.1,::1,*.local
Use auth > n 
Use same > y
Config > 
Targets > 
Select targets to modify 
| 1 | All of them ... Don't bother me
| 2 | Terminal / bash / zsh (current user) 
| 3 | /etc/environment
| 4 | apt/dnf (Package manager)
| 5 | Desktop settings (GNOME/Ubuntu)
| 6 | npm & yarn
| 7 | Dropbox
| 8 | Git
| 9 | Docker

Separate multiple choices with space
? 1
Setting proxy...
To activate in current terminal window
run source ~/.bashrc
Done

Наконец, активируйте изменения, используя команду:

$ source ~/.bashrc

Для ZSH:

$ source ~/.zshrc

Для удаления профиля, выполните:

$ proxyman delete proxy1

Deleting profile : proxy1 
Done

Для вывода справки запустите:

$ proxyman help