Универсальный скрипт для включения и выключения прокси в Ubuntu + GNOME

21.01.2026 · Ubuntu

В Ubuntu с GNOME часто возникает задача быстро включать и выключать системный HTTP/HTTPS-прокси — например, для работы с Xray, Clash, Shadowsocks или локальным SOCKS-туннелем.

Ручное копание в настройках неудобно, а расширения не всегда стабильны. Ниже — универсальное и минималистичное решение, которое:

  • работает в любой версии Ubuntu с GNOME
  • не требует root-прав
  • устанавливается одной командой
  • легко подключается к кнопке в Quick Settings

Универсальный скрипт

  • Открываем терминал и выполняем одну команду:
mkdir -p ~/.local/bin && cat > ~/.local/bin/proxy-toggle.sh << 'EOF'

!/bin/bash

Универсальный toggle для прокси (HTTP + HTTPS) на любой Ubuntu + GNOME

Адрес и порт прокси (можно менять)

PROXY_HOST="127.0.0.1"
PROXY_PORT="1080"

ACTION="$1"

Проверяем наличие gsettings

if ! command -v gsettings &> /dev/null; then
echo "gsettings не найден. Требуется GNOME Shell."
exit 1
fi

if [ "$ACTION" = "on" ]; then
gsettings set org.gnome.system.proxy mode 'manual'
gsettings set org.gnome.system.proxy.http host "$PROXY_HOST"
gsettings set org.gnome.system.proxy.http port "$PROXY_PORT"
gsettings set org.gnome.system.proxy.https host "$PROXY_HOST"
gsettings set org.gnome.system.proxy.https port "$PROXY_PORT"
echo "Proxy включен (HTTP + HTTPS)"
elif [ "$ACTION" = "off" ]; then
gsettings set org.gnome.system.proxy mode 'none'
echo "Proxy выключен"
else
echo "Использование: $0 [on|off]"
exit 1
fi
EOF

chmod +x ~/.local/bin/proxy-toggle.sh

Что происходит после выполнения

  • Скрипт создан:
    ~/.local/bin/proxy-toggle.sh
  • Уже исполняемый (chmod +x)
  • Работает без sudo
  • Подходит для любого пользователя
  • Совместим с любой Ubuntu + GNOME
  • Скрипт можно запускать вручную:
proxy-toggle.sh on
proxy-toggle.sh off

Подключение к кнопке в Quick Settings (Custom Command Toggle)

Используем любое GNOME-расширение с поддержкой Custom Command Toggle.

  • Более подходящий Extension Manager
flatpak install flathub com.mattjakeman.ExtensionManager -y

Настройки:

  • Toggle ON command
~/.local/bin/proxy-toggle.sh on
  • Toggle OFF command
~/.local/bin/proxy-toggle.sh off
  • Check Output Command
gsettings get org.gnome.system.proxy mode
  • Search Term
'manual'
  • Icon
network-vpn-symbolic
  • Label / Name
VPN

Как это работает

  1. Нажимаем кнопку VPN в Quick Settings
  2. Скрипт включает HTTP + HTTPS прокси на 127.0.0.1:1080
  3. GNOME переводит режим прокси в manual
  4. Кнопка подсвечивается зелёным, пока прокси активен
  5. Повторный клик:
    • режим меняется на none
    • прокси полностью отключается

Никаких фоновых сервисов, демонов или хаков.


Почему это хорошее решение

  • Нет ручного копирования файлов
  • Работает на любой версии Ubuntu с GNOME
  • Не требует root-доступа
  • Не зависит от конкретного прокси (Xray, Clash, SOCKS, HTTP)
  • Адрес и порт легко меняются:
PROXY_HOST="127.0.0.1"
PROXY_PORT="1080"

Этот скрипт — универсальный минималистичный toggle, который:

  • идеально подходит для VPN / прокси-сценариев
  • легко интегрируется в интерфейс GNOME
  • не ломается при обновлениях системы

Подходит как для повседневной работы, так и для чистых, воспроизводимых настроек системы.