Pruned-нода Monero (monerod) на VPS под systemd

Установка monerod на Ubuntu 24.04 / Debian 12 с обрезкой блокчейна: проверка подписи binaryFate, пользователь и каталоги, monerod.conf, служба systemd, контроль синхронизации, подключение кошелька через SSH-туннель и публичный restricted RPC.

21 октября 2026 г.·3 мин чтения·monero, node, systemd, ubuntu

Своя нода Monero означает, что кошелёк говорит с демоном под вашим контролем, а не со случайной удалённой нодой, которая видит ваш IP и время запросов. Pruned-нода хранит примерно треть данных блокчейна и при этом проверяет всё. Ниже — установка по схеме официального systemd-руководства Monero плюс обрезка.

Что нужно

  • Сервер на tanaka.host: 6 vCPU, 12 ГБ памяти, 192 ГБ диска. Обрезанная база занимает ~110 ГБ и растёт — на меньших дисках место кончится быстро.
  • Ubuntu 24.04 или Debian 12, доступ по SSH под root — Подключение по SSH.

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

Последняя версия CLI — на getmonero.org/downloads. В переменной без v:

VERSION=0.18.5.1
cd /tmp
wget https://downloads.getmonero.org/cli/monero-linux-x64-v${VERSION}.tar.bz2

Список хешей подписывает binaryFate. Импортируйте ключ и сверьте отпечаток:

wget -O binaryfate.asc https://raw.githubusercontent.com/monero-project/monero/master/utils/gpg_keys/binaryfate.asc
gpg --keyid-format long --with-fingerprint binaryfate.asc
gpg --import binaryfate.asc

Отпечаток должен быть 81AC 591F E9C4 B65C 5806 AFC3 F0AF 4D46 2A0B DF92. Дальше подписанный список и проверка:

wget -O hashes.txt https://www.getmonero.org/downloads/hashes.txt
gpg --verify hashes.txt

Ищите Good signature from "binaryFate". Хеш архива против списка:

grep "monero-linux-x64-v${VERSION}.tar.bz2" hashes.txt | sha256sum --check

Вывод — monero-linux-x64-VERSION.tar.bz2: OK. Иначе удаляйте и качайте заново.

2. Установка и пользователь

apt install -y bzip2
tar -xjf monero-linux-x64-v${VERSION}.tar.bz2
mv monero-x86_64-linux-gnu-v${VERSION}/* /usr/local/bin/
chown root:root /usr/local/bin/monero*
monerod --version

Системный пользователь и каталоги конфига, базы и логов — как в официальном руководстве:

useradd --system monero
mkdir -pm 750 /etc/monero /var/lib/monero /var/log/monero
chown root:monero /etc/monero
chown monero:monero /var/lib/monero /var/log/monero

3. monerod.conf

nano /etc/monero/monerod.conf

Приватная нода для своих кошельков:

data-dir=/var/lib/monero/bitmonero
prune-blockchain=1
sync-pruned-blocks=1

check-updates=disabled
enable-dns-blocklist=1

log-file=/var/log/monero/monero.log
log-level=0

p2p-bind-ip=0.0.0.0
p2p-bind-port=18080
no-igd=1

out-peers=12
in-peers=48

prune-blockchain=1 задаётся до первой синхронизации. Включённая позже обрезка удаляет старые данные только логически — файл базы не уменьшится.

sync-pruned-blocks=1 принимает уже обрезанные блоки от пиров и экономит трафик. Полный RPC остаётся на 127.0.0.1:18081 по умолчанию — на публичный адрес его не привязывайте.

4. Служба systemd

/etc/systemd/system/monerod.service:

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

[Service]
Type=simple
ExecStart=/usr/local/bin/monerod --config-file /etc/monero/monerod.conf --non-interactive
Restart=always
RestartSec=30
User=monero
Group=monero
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now monerod
systemctl status monerod

P2P-порт для входящих пиров:

ufw allow 18080/tcp

Для firewalld: firewall-cmd --permanent --add-port=18080/tcp && firewall-cmd --reload. См. Брандмауэр UFW и firewalld.

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

monerod умеет отправлять команды работающему демону:

monerod status
monerod sync_info
tail -n 100 /var/log/monero/monero.log

status выводит высоту как текущая/целевая с процентом. Первая синхронизация скачивает и проверяет всю историю — на VPS обычно от одного до нескольких дней; упирается в диск, NVMe помогает. Свободное место: df -h /var/lib/monero.

Не прерывайте базу. Останавливайте только systemctl stop monerod и дожидайтесь завершения. Жёсткое выключение во время записи может повредить LMDB и потребовать пересинхронизации.

6. Подключение кошелька

Самый безопасный способ — SSH-туннель до локального RPC, ничего лишнего наружу не открывается:

ssh -N -L 18081:127.0.0.1:18081 root@YOUR_SERVER_IP

Пока туннель открыт, укажите в кошельке (Monero GUI, Feather, monero-wallet-cli) удалённую ноду 127.0.0.1:18081.

Публичный RPC: открывать или нет

Можно отдать чужим кошелькам restricted RPC — он скрывает админские вызовы. Официальная схема:

rpc-restricted-bind-ip=0.0.0.0
rpc-restricted-bind-port=18089
public-node=1

плюс ufw allow 18089/tcp. public-node=1 анонсирует ноду в P2P-сети, чтобы кошельки находили её автоматически; хотите делиться адресом только с друзьями — уберите.

Что учесть:

  • Трафик и нагрузка растут: каждый подключённый кошелёк сканирует блоки через вашу ноду.
  • IP становится публичным, ноду будут сканировать. Остальной сервер держите закрытым — UFW и fail2ban.
  • Порт 18081 наружу — никогда. Unrestricted RPC позволяет в том числе остановить демон.

Поддержка

Обновление: скачать и проверить новый релиз, заменить бинарники в /usr/local/bin, systemctl restart monerod. Следите за оплатой сервера — пересинхронизация ~110 ГБ с нуля займёт дни.

Нода проверена и установлена, обрезка включена до первой синхронизации, демон работает под systemd от своего пользователя. Кошельки пользуются ей приватно через туннель или публично через restricted RPC. Для контроля доступности ноды пригодится Uptime Kuma.