Lightning-нода LND с Neutrino на небольшом VPS без bitcoind

Установка LND на Ubuntu 24.04 / Debian 12 с лёгким клиентом Neutrino: проверка manifest и подписи, lnd.conf, служба systemd, создание кошелька и seed, бэкап channel.backup, первый канал.

17 октября 2026 г.·4 мин чтения·lightning, lnd, bitcoin, systemd

LND — одна из самых распространённых реализаций Lightning Network. Обычно она работает рядом с локальной нодой Bitcoin, но у неё есть встроенный лёгкий клиент Neutrino: он скачивает заголовки блоков и компактные фильтры вместо всей цепочки. Поэтому LND запускается на маленьком сервере без bitcoind. Ниже — установка, кошелёк и подготовка к первому каналу.

Что нужно

  • Сервер на tanaka.host: 1 vCPU, 2 ГБ памяти, 32 ГБ диска.
  • Ubuntu 24.04 или Debian 12, доступ по SSH под root — Подключение по SSH.
  • Немного BTC для открытия каналов.

Lightning-нода — это горячий кошелёк. Приватные ключи лежат на сервере и должны быть онлайн, чтобы подписывать обновления каналов. Кто получит root на VPS — сможет увести средства. Держите только то, что готовы потерять, сначала закройте сервер (вход по ключу, UFW, fail2ban) и не используйте пароль root повторно.

1. Загрузка и проверка LND

На странице релизов LND выберите последнюю версию без пометки Pre-release. Переменная — с префиксом v и суффиксом -beta, ровно как в названии релиза:

VERSION=v0.21.3-beta
cd /tmp
wget https://github.com/lightningnetwork/lnd/releases/download/${VERSION}/lnd-linux-amd64-${VERSION}.tar.gz
wget https://github.com/lightningnetwork/lnd/releases/download/${VERSION}/manifest-${VERSION}.txt

Релиз подписывают несколько разработчиков, в ассетах лежат файлы manifest-ИМЯ-ВЕРСИЯ.sig. Выберите одного подписанта из списка (например, guggero или ziggie1984), скачайте его подпись и импортируйте ключ из репозитория LND:

SIGNER=ziggie1984
wget https://github.com/lightningnetwork/lnd/releases/download/${VERSION}/manifest-${SIGNER}-${VERSION}.sig
curl -s https://raw.githubusercontent.com/lightningnetwork/lnd/master/scripts/keys/${SIGNER}.asc | gpg --import
gpg --verify manifest-${SIGNER}-${VERSION}.sig manifest-${VERSION}.txt

Ищите gpg: Good signature. Затем архив против подписанного манифеста:

sha256sum --ignore-missing --check manifest-${VERSION}.txt

Строка для lnd-linux-amd64-VERSION.tar.gz должна быть OK. Установка:

tar -xzf lnd-linux-amd64-${VERSION}.tar.gz
install -m 0755 -o root -g root -t /usr/local/bin lnd-linux-amd64-${VERSION}/lnd lnd-linux-amd64-${VERSION}/lncli
lnd --version

2. Пользователь и lnd.conf

LND работает под своим пользователем, данные — в /home/lnd/.lnd, это каталог по умолчанию на Linux:

useradd --create-home --shell /bin/bash lnd
sudo -u lnd mkdir -p /home/lnd/.lnd
sudo -u lnd nano /home/lnd/.lnd/lnd.conf

Поменяйте alias и IP:

[Application Options]
alias=MyLightningNode
listen=0.0.0.0:9735
externalip=YOUR_SERVER_IP
debuglevel=info

[Bitcoin]
bitcoin.mainnet=true
bitcoin.node=neutrino

[fee]
fee.url=https://nodes.lightning.computer/fees/v1/btc-fee-estimates.json
  • bitcoin.node=neutrino переключает LND на лёгкий бэкенд. Сменить потом Neutrino на полную ноду (или обратно) не получится — решайте сейчас.
  • fee.url — внешняя оценка комиссий; по sample-конфигу LND для Neutrino на mainnet обязательна.
  • externalip анонсирует ваш адрес, чтобы другие ноды могли открывать каналы к вам. Нужны только исходящие каналы — уберите.
  • gRPC (10009) и REST (8080) по умолчанию на localhost. Наружу не выставляйте.

Порт пиров в брандмауэре:

ufw allow 9735/tcp

3. Служба systemd

/etc/systemd/system/lnd.service — по образцу юнита из репозитория LND, без зависимости от bitcoind:

[Unit]
Description=Lightning Network Daemon
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/usr/local/bin/lnd
ExecStop=/usr/local/bin/lncli stop
User=lnd
Group=lnd
Restart=on-failure
RestartSec=60
Type=notify
TimeoutStartSec=1200
TimeoutStopSec=3600
ProtectSystem=full
NoNewPrivileges=true
PrivateDevices=true
MemoryDenyWriteExecute=true

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now lnd
journalctl -u lnd -f

LND стартует и ждёт кошелёк. Выход из журнала — Ctrl+C.

4. Кошелёк и seed

Переключитесь на пользователя lnd, чтобы lncli нашёл сертификат и макаруны:

sudo -iu lnd
lncli create
  • Пароль кошелька от 8 символов — он понадобится после каждого перезапуска.
  • На вопрос про существующий seed ответьте n, чтобы создать новый.
  • Passphrase для seed — по желанию; тогда для восстановления нужны и слова, и passphrase.
  • LND выведет 24 слова. Запишите на бумаге, храните офлайн.

Seed сам по себе не восстановит всё. 24 слова возвращают ончейн-кошелёк. Средства в открытых каналах восстанавливаются из файла ~/.lnd/data/chain/bitcoin/mainnet/channel.backup, который LND обновляет при каждом открытии и закрытии канала. Регулярно копируйте его с сервера — см. Резервные копии VPS.

После перезагрузки кошелёк заблокирован:

sudo -iu lnd lncli unlock

Можно разблокировать автоматически через wallet-unlock-password-file, но тогда пароль лежит на том же сервере.

5. Синхронизация

Neutrino сначала скачивает все заголовки блоков и фильтров. Это гораздо меньше полной цепочки, но всё равно занимает время. Проверка:

sudo -iu lnd lncli getinfo

Ждите, пока synced_to_chain и synced_to_graph станут true. Память при этом остаётся низкой — потому и хватает 2 ГБ.

6. Пополнение и первый канал

Адрес для депозита и баланс:

sudo -iu lnd lncli newaddress p2wkh
sudo -iu lnd lncli walletbalance

Когда депозит подтвердится:

  1. Выберите пира — надёжную, хорошо связанную ноду; публичные обозреватели показывают ёмкость и аптайм.
  2. lncli connect PUBKEY@HOST:9735.
  3. lncli openchannel --node_key PUBKEY --local_amt СУММА_В_САТОШИ. Многие ноды задают минимальный размер канала — проверьте их политику.
  4. lncli pendingchannels покажет транзакцию открытия, lncli listchannels — канал, когда он станет активным.

Открытие и закрытие канала — обычные транзакции Bitcoin с ончейн-комиссией. Первый канал даёт только исходящую ёмкость; чтобы принимать платежи, нужна входящая ликвидность — тратьте через канал или попросите пира открыть канал к вам.

Поддержка ноды

  • Обновление: заново проверить релиз, заменить бинарники, systemctl restart lnd, разблокировать кошелёк.
  • Сервер должен быть оплачен: офлайн-нода не может защищать свои каналы.
  • Останавливать только systemctl stop lnd, никогда kill -9.

Если нужна нода, которая сама проверяет каждый блок, — pruned-нода Bitcoin Core.