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

Своя нода 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.