Играть в шахматы в терминале Linux с помощью Gambit
Gambit позволяет запускать графическую шахматную доску прямо в терминале Linux и играть локально или по SSH. Установка через Go или snap, хостинг партии требует ключа ECDSA и открытия порта 53531 или использования обратного SSH-туннеля. В статье — пошаговая инструкция, советы по безопасности, отладка и альтернативы.
Что такое Gambit и почему это удобно

Gambit — это терминальная шахматная программа с графическим представлением доски в текстовом интерфейсе. Она превращает обычную консоль в поле для быстрых партий: локальных с игроком напротив вас или сетевых — через SSH. Идея проста: минимальные зависимости, никаких веб-браузеров и возможность играть даже на серверах без графической среды.
Кратко о контексте: шахматы — древняя игра, родом из Индии, VI века. Терминальные версии возвращают игру к её стратегическим корням: только ум и интерфейс, который вы уже носите в кармане — терминал.
Важно: Gambit использует сетевой порт 53531 для партии по сети. Для хостинга потребуется ключ ECDSA (не RSA), базовые навыки работы с SSH и доступ к настройкам роутера или умение сделать обратный туннель.
Основные сценарии использования
- Локальная партия на одной машине с другом, сидящим рядом. Полезно, если у вас нет физической доски.
- Режим сервер/клиент по SSH: хост запускает Gambit в режиме serve, гости подключаются по SSH и играют в терминале.
- Тестирование и автоматизация: запуск на сервере для периодических партий или демонстраций.
Установка Gambit на Linux

Gambit написан на Go. Перед установкой убедитесь, что Go установлен в системе.
Если в дистрибутиве доступен snap, самый простой способ установить Go:
sudo snap install go --classicС Go можно установить Gambit из исходников:
go install github.com/maaslalani/gambit@latestЭтот шаг положит бинарник в ~/go/bin/gambit.
Чтобы запускать gambit из любого места, создайте символьную ссылку:
sudo ln -s ~/go/bin/gambit /usr/bin/gambitЗапуск локально:
gambitАльтернативный путь — клонировать репозиторий GitHub и запустить через go run:
git clone https://github.com/maaslalani/gambit
cd gambit
go run ./Если вы предпочитаете snap-пакеты и он доступен для Gambit:
sudo snap install gambitКак играть в терминале с Gambit — интерфейс и управление

Интерфейс прост:
- При запуске вы сразу видите доску с условными обозначениями фигур белого и чёрного цветов.
- Для хода кликаете мышью по фигуре и по целевой клетке (если есть мышь в терминале).
- Без мыши: вводите координату начальной клетки, затем координату целевой. Пример: e2 e4
- Наблюдение: в Gambit все клетки отрисованы как тёмные фоны, что иногда уменьшаeт контраст. При игре вдвоём на одной машине можно нажать Ctrl + F, чтобы перевернуть доску для удобства соперника.
Если вы знакомы с шахматными обозначениями, управление быстро становится интуитивным.
Хостинг партии по SSH — пошагово
- Подготовка ключа ECDSA. Gambit отвергает RSA-ключи для хостинга, поэтому создайте ключ ECDSA минимум 256 бит:
ssh-keygen -t ecdsa -b 256Файлы ключа по умолчанию окажутся в ~/.ssh/, например ~/.ssh/id_ecdsa и ~/.ssh/id_ecdsa.pub. Рекомендуется защитить приватный ключ фразой-паролем.
- Откройте порт на хосте. На пути от гостя к хосту должен быть открыт порт 53531. Если вы используете ufw:
sudo ufw allow 53531/tcpИли настройте соответствующий правило в вашей системе файрвола.
Проброс портов на роутере. На маршрутизаторе выполните перенаправление внешнего порта 53531 на внутренний IP хоста и порт 53531. Детали зависят от модели роутера; ищите раздел Port Forwarding или Virtual Servers.
Запуск сервера Gambit на хосте:
./gambit serve --key ~/.ssh/id_ecdsaПо умолчанию сервер слушает 53531.
- Подключение гостя к хосту:
ssh host_username@remote.host.ip.address -p 53531 -t room_nameroom_name — имя комнаты, которое задаёт первый подключившийся игрок.
- На хосте для игры откройте ещё одно SSH-подключение к самому себе:
ssh your_username@localhost -p 53531 -t room_nameПосле этого игра запускается и игроки видят одну общую доску.
Важно: хост должен использовать ECDSA-ключ; подключающиеся клиенты могут использовать любые ключи или пароли, если сервер SSH на хосте это позволяет.
Альтернативы пробросу портов: обратный SSH-туннель и публичный ретранслятор
Если вы не хотите или не можете настраивать порт-форвардинг на роутере, у вас есть варианты:
- Обратный SSH-туннель через публичный сервер. На хосте выполните:
ssh -R 53531:localhost:53531 user@public.serverЭто создаст удалённую слушающую точку на public.server:53531, которая будет пересылать трафик на локальный порт хоста 53531. Гости затем подключаются к public.server:53531.
Использовать сервисы туннелирования, такие как ngrok или аналогичные, если это приемлемо с точки зрения безопасности.
Разместить Gambit на VPS с публичным IP и запускать его там как хост.
Каждый вариант имеет свои плюсы и минусы с точки зрения удобства и безопасности.
Безопасность и рекомендации
Важно: не открывайте порт 53531 в интернет без базовой защиты. Любой открытый порт — потенциальная точка входа.
Рекомендации:
- Используйте ключи ECDSA с фразой-паролем. Это защищает приватный ключ при его компрометации.
- Закрывайте доступ по IP-адресам, если вы знаете адреса клиентов. На ufw это делается правилом allow from X to any port 53531.
- Для длительных публичных партий используйте промежуточный сервер или VPN, чтобы не раскрывать домашний IP.
- Следите за обновлениями Gambit и Go в вашем дистрибутиве.
Автоматический запуск сервера Gambit через systemd
Пример systemd unit для хоста, который должен постоянно принимать партии:
[Unit]
Description=Gambit chess server
After=network.target
[Service]
User=your_username
WorkingDirectory=/home/your_username
ExecStart=/usr/bin/gambit serve --key /home/your_username/.ssh/id_ecdsa
Restart=on-failure
[Install]
WantedBy=multi-user.targetСохраните как /etc/systemd/system/gambit.service, затем включите и запустите:
sudo systemctl daemon-reload
sudo systemctl enable --now gambit.serviceОтладка и распространённые проблемы
- Ошибка: Gambit отклоняет ключ. Решение: пересоздайте ключ командой ssh-keygen -t ecdsa -b 256.
- Ошибка: Connection refused. Проверьте, слушает ли процесс gambit порт 53531 и открыт ли порт в файрволе.
- Ошибка: Permission denied (publickey). Убедитесь, что публичный ключ клиента добавлен к авторизованным на сервере или используйте учётные данные, доступные для SSH.
- Проблемы с отрисовкой доски в терминале: попробуйте терминалы с поддержкой 256 цветов или включите эмуляцию терминала, которая корректно обрабатывает символы и цвета.
Рольовая контрольная карта перед игрой
Хост:
- Установлен Gambit и Go, или установлен snap-пакет.
- У создан ключ ECDSA и указан в параметре –key.
- Открыт порт 53531 или настроен обратный туннель.
- Проверен доступ из внешней сети.
Гость:
- Имеется SSH-клиент.
- Знает адрес хоста и имя комнаты.
- При необходимости имеет публичный ключ, если доступ по ключам ограничен.
Быстрый сценарий — пошаговая инструкция (playbook)
- На хосте: сгенерировать ecdsa-ключ: ssh-keygen -t ecdsa -b 256
- На хосте: запустить gambit serve –key ~/.ssh/id_ecdsa
- На клиенте: подключиться ssh host@host.ip -p 53531 -t room_name
- На хосте: открыть второе подключение к localhost для второй стороны ssh localhost -p 53531 -t room_name
- Играть.
Когда Gambit не лучший выбор
- Если вы хотите играть против движка с богатой графикой и подсказками — лучше использовать GUI-клиенты с поддержкой Stockfish.
- Если вам нужны рейтинги, аккаунты и пул игроков — используйте онлайн-платформы вроде Lichess.
- Если вы хотите играть по почте с длительными ходами — существуют программы для корреспондентских шахмат.
Альтернативы и связанный софт
- GNU Chess — шахматный движок, который можно использовать локально или через xboard.
- Stockfish — сильный шахматный движок, часто используется совместно с интерфейсами.
- Веб-сервисы: Lichess, Chess.com — для рейтинговых игр и турниров.
Критерии приёмки
- Сервер Gambit запускается и слушает порт 53531.
- Игроки подключаются по SSH и видят одну и ту же доску.
- Ходы корректно передаются между сессиями.
- Соединение не открывает лишние сервисы и ограничено по IP или проходит через защищённый туннель.
Краткий словарь терминов
- SSH — протокол для защищённого доступа к удалённым компьютерам.
- ECDSA — алгоритм создания SSH-ключей на кривых эллиптической криптографии.
- Порт форвардинг — перенаправление сетевого порта с роутера на внутреннюю машину.
- Обратный туннель — SSH-подключение, в котором удалённый сервер слушает порт и пересылает трафик в локальную сеть.
Небольшая справка по UX
- Используйте терминал с поддержкой мыши и 256 цветов для лучшего визуального восприятия шахматной доски.
- Если сравнивать с физической доской, преимущества Gambit — скорость подготовки, минимум оборудования и возможность играть через сеть без браузера.
Заключение
Gambit — удобный инструмент для быстрых шахматных партий прямо в терминале. Он особенно полезен для тех, кто работает в консоли, любит минимализм или хочет сыграть против друга без графической среды. Для сетевых партий потребуется понять базовые вещи про SSH, ключи ECDSA и проброс портов; при правильной настройке вы получите надёжный и простой способ играть по сети.
Короткие рекомендации: создайте ключ ECDSA с паролем, закройте доступ по IP при возможности, и используйте обратный туннель или публичный сервер, если проброс портов невозможен.
Спасибо за внимание — поставьте партию, если сосед по комнате готов, или пригласите игрока с другой точки мира по SSH и проверьте, как удобно играть без графического интерфейса.
Похожие материалы
Как увидеть, кто изменял Google Docs
Колонтитулы в Google Docs: как добавить и настроить
Оформление в MLA в Google Docs
Помощь при написании в Google Docs
Изменить шрифт по умолчанию в Google Docs и Word