Доступные переменные среды:

  • all_proxy - указывается прокси сервер для http и https трафика. Но лучше все же указать по отдельности.
  • ftp_proxy - указывается прокси сервер для ftp трафика.
  • http_proxy - указывается прокси сервер для http трафика.
  • https_proxy - указывается прокси сервер для https трафика.
  • no_proxy - указываются домены и ip адреса для которых не применяется прокси. Например: no_proxy="localhost,192.168.0.0/16,.example.com"

Настройка

Применение проксирования ко всем приложениям в системе

В файле оболочки такой как bash (~/.bashrc, ~/.bash_profile), zsh (~/.zshrc, ~/.zprofile) и др., или в случае, если вы настроили в них считывание из файла ~/.profile - добавьте в конец файла установку переменных среды http_proxy и https_proxy со значением вашего прокси:

export http_proxy=socks5://127.0.0.1:65434
export https_proxy=socks5://127.0.0.1:65434

И перезайдите в аккаунт или перезагрузитесь (в зависимости от того куда вы добавили переменные среды).

Warning

Но не все приложения учитывают эти переменные среды, так что не стоит ожидать, что все приложения будут проксироваться. Но telegram и yay их используют и полагаю только низкоуровневые приложения этим грешат.


Можно также временно активировать применение проксирования.

Выполните:

source ~/.profile

Warning

Но это применится только в рамках приложений вызываемых в рамках открытой сессии терминала и после закрытия и повторного открытия настройки откатятся.

Применение проксирования к конкретным приложениям

Для каждого приложения можно также применить индивидуальные настройки проксирования. Например, добавив перед вызовом переменные среды:

http_proxy=socks5://127.0.0.1:65434 \
https_proxy=socks5://127.0.0.1:65434 \
yay -Syu

Info

Для графических приложений эти значения переменных среды можно добавить в их .desktop файл в начале вызова команды.

Но есть вариант получше.


Проксирование трафика

В файл оболочки (в моем случае ~/.profile) можно добавить функцию, которая будет подменять команду. Например:

yay() {
    http_proxy=socks5://127.0.0.1:65434 https_proxy=socks5://127.0.0.1:65434 /usr/bin/yay "$@"
}

И перезайдите в аккаунт или перезагрузитесь (в зависимости от того куда вы добавили функцию).

Теперь функция подменяет alias команды. В этом можно убедиться выполнив:

which yay
yay () {
	http_proxy=socks5://127.0.0.1:65434 https_proxy=socks5://127.0.0.1:65434 /usr/bin/yay "$@"
}
Ссылка на оригинал

Info

У большинства графических приложений также есть alias по которому он вызывается из терминала и как правило тот же alias используется в .desktop, так что по идее это же может сработать и для них. Но все же часто бывает так, что в них указан полный путь до команды и тогда вам придется отредактировать все же и файл .desktop.