Архив рубрики ~Лента новостей~

Claude Desktop на Linux, через прокси

Claude Desktop на Linux, через прокси

Я сижу на Debian под KDE Plasma и для решения проблемы “your country is not supported”, часто встречающийся у популярных агентов, предпочитаю мультихоп прокси (на последней миле у меня sign-box слушает 127.0.0.1:7890). Claude Code в терминале бегают через него, а вот десктопное приложение делало вид, что прокси не существует. Пришлось разобраться, и заодно оформить это в аккуратный воспроизводимый вид.

Явление официальной сборки под Linux

Во времена древних богов, воителей и королей простой народ использовал неофициальную сборку claude-desktop-debian от aaddrick, которая распаковывала виндовый установщик и заворачивала его в Electron. Однако, в конце июня 2026 Anthropic, аки Прометей, снизошла до “менее 1% пользователей” и выпустила официальную бету под Linux.

Пакет claude-desktop ставится из apt-репозитория downloads.claude.ai, и дальше речь пойдёт про него. Заявлена поддержка Debian 12 и новее, Ubuntu 22.04 и новее, на архитектурах amd64 и arm64, но я лично запускал его только на Debian 13 amd64 из под KDE.

Ставим из репозитория

Всё как обычно с внешними apt-репозиториями. Качаем ключ подписи, добавляем репозиторий, ставим пакет.

sudo curl -fsSLo /usr/share/keyrings/claude-desktop-archive-keyring.asc https://downloads.claude.ai/claude-desktop/key.asc echo «deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/claude-desktop-archive-keyring.asc] https://downloads.claude.ai/claude-desktop/apt/stable stable main» | sudo tee /etc/apt/sources.list.d/claude-desktop.list sudo apt update && sudo apt install claude-desktop

Перед тем как довериться ключу, отпечаток можно сверить руками.

gpg —show-keys /usr/share/keyrings/claude-desktop-archive-keyring.asc # должно быть: 31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE c806f107543b84239dee57baa0b42560

Дальше обновления будут прилетать штатно вместе с apt upgrade. Проверим, что поставилось, и на что смотрит лаунчер.

Репозиторий, версия пакета и симлинк лаунчера
Репозиторий, версия пакета и симлинк лаунчера

Обратите внимание на последнюю строку, /usr/bin/claude-desktop это символическая ссылка на нативный бинарник /usr/lib/claude-desktop/claude-desktop, обычный Electron-бинарник. Именно к нему мы дальше и прицепим флаг прокси.

Почему GUI не видит прокси

Claude Code, консольный агент, читает свои настройки из файла ~/.claude/.env и переменные http_proxy/https_proxy, а Claude Desktop к этому файлу отношения не имеет, это отдельное приложение на Electron, то есть внутри там Chromium со своим сетевым стеком.

При этом Chromium под KDE берёт настройки прокси из системных настроек рабочего окружения, а переменные http_proxy из окружения он попросту игнорирует.

Посмотрим, что мы имеем.

KDE, нативный бинарник Electron и заданные, но бесполезные для GUI переменные прокси
KDE, нативный бинарник Electron и заданные, но бесполезные для GUI переменные прокси

Окружение KDE, бинарник это стриптованный ELF (тот самый Chromium внутри Electron), переменные прокси в шелле заданы. Но десктопному Claude от них ни тепло ни холодно. В системных настройках KDE прокси у меня стоит в режиме “не использовать”, и приложение честно ходит напрямую. На GNOME была бы та же история, только настройки читались бы из gsettings.

Городить системный прокси на всё окружение ради одного приложения не хочется. Значит, надо рассказать о прокси электрону.

Решение, флаг —proxy-server

У Chromium есть собственный ключ командной строки —proxy-server, который перебивает любые системные настройки. Именно его мы и передадим приложению. Заодно проверим на живом трафике, что флаг действительно работает. Поднимем фейковый прокси-порт, который просто пишет в лог всё, что к нему стучится, и запустим Claude с этим флагом.

Приложение с флагом --proxy-server честно уходит на подставной прокси
Приложение с флагом —proxy-server честно уходит на подставной прокси

Весь трафик приложения, включая claude.ai:443, ушёл на наш подставной прокси. Флаг работает. Осталось оформить это так, чтобы не запускать приложение руками из терминала каждый раз.

Обёртка-скрипт

Пишем маленький лаунчер, который подставляет флаг и передаёт дальше все аргументы и кладём его в ~/.local/bin/claude-desktop-proxy.

#!/usr/bin/env bash PROXY_HOST=»127.0.0.1″ PROXY_PORT=»7890″ PROXY=»http://$PROXY_HOST:$PROXY_PORT» args=( «—proxy-server=${PROXY}» «—proxy-bypass-list=localhost;127.0.0.1;10.0.0.0/8;172.16.0.0/12;192.168.0.0/16;<local>» ) exec /usr/bin/claude-desktop «${args[@]}» «$@»

Пара слов про содержимое. Скрипт намеренно простой, добавляет два флага и запускает бинарник. —proxy-bypass-list уводит мимо прокси то, что должно ходить напрямую. Это локалхост и приватные диапазоны 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, куда попадают LAN и дефолтные bridge-сети Docker. Иначе обращения к контейнерам и соседям по сети гоняло бы через туннель.

Делаем скрипт исполняемым.

chmod +x ~/.local/bin/claude-desktop-proxy

Правка desktop-файла

Скрипт есть, теперь надо, чтобы иконка в меню и обработчик ссылок claude:// запускали именно его.

Системный файл /usr/share/applications/claude-desktop.desktop править бесполезно, он принадлежит root и будет перезаписан при первом же обновлении пакета, в KDE лучше положить свой файл с тем же именем в ~/.local/share/applications/, пользовательский каталог перекрывает системный.

Берём за основу оригинальный desktop-файл и меняем в нём все строки Exec, чтобы они шли через обёртку. Обязательно сохраните StartupWMClass и действия New chat/New Claude Code session, иначе сломается группировка окон и пункты контекстного меню.

[Desktop Entry] Name=Claude Comment=Desktop application for Claude.ai GenericName=AI Assistant Keywords=AI;Chat;Assistant;Claude;Code;LLM; Exec=claude-desktop-proxy %U Icon=claude-desktop Type=Application StartupNotify=true StartupWMClass=claude-desktop SingleMainWindow=true Categories=Utility;Development; MimeType=x-scheme-handler/claude; Actions=NewChat;NewCode; [Desktop Action NewChat] Name=New chat Exec=claude-desktop-proxy claude://claude.ai/new [Desktop Action NewCode] Name=New Claude Code session Exec=claude-desktop-proxy claude://code/new

Полный путь в Exec не обязателен. Первый токен система ищет как обычную команду, и если каталог обёртки есть в PATH, хватает одного имени. ~/.local/bin туда обычно уже входит, так что Exec=claude-desktop-proxy резолвится сам. Если каталога в PATH нет, укажите реальный абсолютный путь, например /home/pasha/.local/bin/claude-desktop-proxy.

После правки обновляем кэш меню.

update-desktop-database ~/.local/share/applications

Проверка

Полностью выходим из Claude Desktop, именно выходим, а не сворачиваем, и открываем заново из меню. Теперь он поднимается через обёртку. Смотрим на живые соединения.

ss показывает, что процессы Claude держат соединения с прокси на 7890
ss показывает, что процессы Claude держат соединения с прокси на 7890

Процессы claude и claude-desktop держат установленные соединения с 127.0.0.1:7890, то есть весь трафик приложения идёт через прокси. Что и требовалось. Приложение при этом выглядит и работает как обычно, никаких сторонних изменений внутри него нет.

Итог

Claude Code читает ~/.claude/.env, а Claude Desktop это Chromium, которому на KDE нужен свой ключ —proxy-server, лечится обёрткой на несколько строк и пользовательским desktop-файлом, ничего в системных каталогах трогать не пришлось, так что решение переживает обновления пакета.

Полезные ссылки:

  • официальная инструкция по установке под Linux;

  • статья спецов из Anthropic про установку Claude Desktop;

  • неофициальная сборка, с которой всё начиналось.

Благодарю за прочтение. Если тема близка, заходите на мой Telegram-канал Pavel Zloi, пишу там про on-prem модельки, серверы, агентов и прочие радости жизни.

Источник: habr.com

Оцените материал:

Поделиться
Понравилась статья? Расскажите другим
ВКонтакте
Читайте также
Архив рубрики ~Коротко из Telegram~ Видеомодель FLUX 3 генерирует картинку и звук одним проходом FLUX… Архив рубрики ~Коротко из Telegram~ Опубликована карта Вселенной: 4 миллиарда объектов и 5,6 триллиона пикселей… Архив рубрики ~Коротко из Telegram~ Anthropic открыла бесплатную Claude Academy — от новичка до разработчика… Архив рубрики ~Коротко из Telegram~ Для агента DeepSeek Harness собрали каталог из 1250 плагинов На… Архив рубрики ~Коротко из Telegram~ В Пекине открылся бар для вайбкодинга с бесплатным доступом к… Архив рубрики ~Коротко из Telegram~ Нейросеть научилась добавлять в готовое видео свет, который прячется за… Архив рубрики ~Коротко из Telegram~ Бионический протез продолжает слушать мышцы даже с отсоединённой кистью Показан… Архив рубрики ~Коротко из Telegram~ Робот-бариста в Китае выдал 202 чашки кофе за час В… Архив рубрики ~Коротко из Telegram~ Бизнес просит открыть суверенным ИИ доступ к государственным данным в… Архив рубрики ~Коротко из Telegram~ SpaceX подходила к Cognition AI с предложением о покупке —… Архив рубрики ~Коротко из Telegram~ VK требует вернуть свои приложения в App Store и начислять… Архив рубрики ~Коротко из Telegram~ Apple переписала комиссии для приложений в Евросоюзе — новые правила… Архив рубрики ~Коротко из Telegram~ Apple готова платить издателям за свежие новости в Siri AI… Архив рубрики ~Коротко из Telegram~ Анонимная модель Ox Alpha обошла конкурентов в кодинге и работает… Архив рубрики ~Коротко из Telegram~ Видеомодель FLUX 3 генерирует картинку и звук одним проходом FLUX… Архив рубрики ~Коротко из Telegram~ Опубликована карта Вселенной: 4 миллиарда объектов и 5,6 триллиона пикселей… Архив рубрики ~Коротко из Telegram~ Anthropic открыла бесплатную Claude Academy — от новичка до разработчика… Архив рубрики ~Коротко из Telegram~ Для агента DeepSeek Harness собрали каталог из 1250 плагинов На… Архив рубрики ~Коротко из Telegram~ В Пекине открылся бар для вайбкодинга с бесплатным доступом к… Архив рубрики ~Коротко из Telegram~ Нейросеть научилась добавлять в готовое видео свет, который прячется за… Архив рубрики ~Коротко из Telegram~ Бионический протез продолжает слушать мышцы даже с отсоединённой кистью Показан… Архив рубрики ~Коротко из Telegram~ Робот-бариста в Китае выдал 202 чашки кофе за час В… Архив рубрики ~Коротко из Telegram~ Бизнес просит открыть суверенным ИИ доступ к государственным данным в… Архив рубрики ~Коротко из Telegram~ SpaceX подходила к Cognition AI с предложением о покупке —… Архив рубрики ~Коротко из Telegram~ VK требует вернуть свои приложения в App Store и начислять… Архив рубрики ~Коротко из Telegram~ Apple переписала комиссии для приложений в Евросоюзе — новые правила… Архив рубрики ~Коротко из Telegram~ Apple готова платить издателям за свежие новости в Siri AI… Архив рубрики ~Коротко из Telegram~ Анонимная модель Ox Alpha обошла конкурентов в кодинге и работает…

Оставить комментарий