В 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
Как это работает
- Нажимаем кнопку VPN в Quick Settings
- Скрипт включает HTTP + HTTPS прокси на
127.0.0.1:1080 - GNOME переводит режим прокси в
manual - Кнопка подсвечивается зелёным, пока прокси активен
- Повторный клик:
- режим меняется на
none - прокси полностью отключается
- режим меняется на
Никаких фоновых сервисов, демонов или хаков.

Почему это хорошее решение
- Нет ручного копирования файлов
- Работает на любой версии Ubuntu с GNOME
- Не требует root-доступа
- Не зависит от конкретного прокси (Xray, Clash, SOCKS, HTTP)
- Адрес и порт легко меняются:
PROXY_HOST="127.0.0.1"
PROXY_PORT="1080"
Этот скрипт — универсальный минималистичный toggle, который:
- идеально подходит для VPN / прокси-сценариев
- легко интегрируется в интерфейс GNOME
- не ломается при обновлениях системы
Подходит как для повседневной работы, так и для чистых, воспроизводимых настроек системы.