💾 Archived View for tilde.team › ~rami › alias_proxy.gmi captured on 2024-08-18 at 17:31:57. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2024-05-10)
-=-=-=-=-=-=-
רמי
SUBJECT: Алиасы управления общесистемным прокси (system-wide proxy)
AUTHOR: Rami Rosenfeld
DATE: 12/11/22
TIME: 10.00
LANG: ru, en
LICENSE: GNU FDL 1.3
TAGS: gnu, gnome, software, opensource, linux, system, man, manual, bash, proxy, security, privacy
Многие достойные ОС - здесь я конечно же подразумеваю RHEL (а также Fedora с GNOME или MATE) - имеют специальный GUI для быстрого изменения "на лету" параметров и переключения состояния общесистемного прокси, что, признаюсь, невероятно удобно и экономит время. В случае с Fedora GNU/Linux + LXDE (и, как я подозреваю - со многими маргинальными ОС) все не так просто: пользователь вынужден править некоторые файлы конфигурации вручную. Подробнее об этом см. п. 12. "Установка, активация и настройка сетевого ПО и сервисов" в подразделе "Работа с ядром, командами, логами, пакетами, службами, сервисами, репозиториями, обновлениями и политиками безопасности в консоли/терминале".
Чтобы упростить этот процесс, я сконструировал два простейших и очень изящных алиаса. По сути, они могут успешно работать в любой ОС на базе GNU/Linux.
1. Создание файла настроек общесистемного прокси
$ nano ~/.profile.my
export http_proxy=http://ADD:PORT/
export https_proxy=http://ADD:PORT/
export ftp_proxy=http://ADD:PORT/
export sftp_proxy=http://ADD:PORT/
export ftps_proxy=http://ADD:PORT/
export HTTP_PROXY=http://ADD:PORT/
export HTTPS_PROXY=http://ADD:PORT/
export FTP_PROXY=http://ADD:PORT/
export SFTP_PROXY=http://ADD:PORT/
export FTPS_PROXY=http://ADD:PORT/
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
export NO_PROXY="localhost,127.0.0.1,localaddress,.localdomain.com"
Примечание: Строки переменных приводятся (вернее, дублируются) в двух регистрах, например "http_proxy" и "HTTP_PROXY". Это связано с тем, что системные сервисы и прикладные программы реализуют подключение к "System-wide proxy" по-разному.
ПРИМЕРЫ:
export http_proxy=http://127.0.0.1:8118/
export http_proxy=http://10.1.10.1:8118/
export http_proxy=http://localhost:18080/
2. В .bashrc необходимо разместить следующие алиасы и затем перегрузить Bash.
АЛИАС 1 (proxyon)
alias proxyon='mv -f ~/.profile.my ~/.profile'
АЛИАС 2 (proxyoff)
alias proxyoff='mv -f ~/.profile ~/.profile.my'
3. Принцип работы
Алиас proxyon переместит (без излишних запросов) искомое содержимое файла настроек в .profile и временно удалит файл .profile.my
Алиас proxyoff произведет обратную операцию.
Примечание: Алиасы действуют только для текущего пользователя. Для активации обоих режимов требуется операция выхода и последующего входа в ОС (перезагрузка компьютера не нужна).
4. Проверка работоспособности отдельной переменной
$ echo $https_proxy
Результат: http://ADD:PORT/
Примечание: Вносить изменения необходимо именно в файл ~/.profile в домашнем каталоге текущего пользователя, а не в ~/.bashrc или в ~/.bashrc_profile, т.к. ~/.profile имеет наивысший приоритет.
5. Временная отмена переменных (в пределах текущей сессии, для отдельного пользователя):
$ unset http_proxy
$ unset HTTP_PROXY
(и т.п.)
UPD 29/03/2024: В конце марта вышла стабильная версия набора базовых системных утилит GNU Coreutils 9.5, в которой появилась одна весьма любопытная возможность. В утилиту mv добавлена опция "--exchange" для обмена содержимого источника и назначения (например, при выполнении "mv --exchange A B", содержимое А и B поменяется местами, т.е. A переместится в B, а B в A). Таким образом, вы можете переписать оба алиаса с ее использованием.
🄯 Rami Rosenfeld, 2022. GNU FDL 1.3.