Passer au contenu principal

rncp

Cette page résume mes notes personnelles (obso1337)

rncp est un utilitaire de transfert de fichiers via la pile Reticulum.

rncp en tant que service

créer le fichier /etc/systemd/system/rncp.service

[Unit]
Description=Reticulum RNCP File Transfer Service
After=network.target rnsd.service
Requires=rnsd.service

[Service]
Type=simple
User=chris
WorkingDirectory=/home/chris/rncp_received
ExecStart=/usr/bin/python3 -u /usr/local/bin/rncp --listen --verbose
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

 

A la ligne ExecStart, on préfixe rncp de "/usr/bin/python3 -u" sinon il n'y a pas de logging dans journald

activation du service

sudo systemctl daemon-reload
sudo systemctl enable rncp
sudo systemctl start rncp

 

Vérification du statut

sudo systemctl status rncp

Identités

Générer une identité pour rncp

$ rnid -g ~/.reticulum/storage/identities/rncp

Afficher l'identité

$ rnid -i ~/.reticulum/storage/identities/rncp -p
[2026-05-24 21:42:47] Loaded Identity <7ea4f455d590e3b2f1106125268ee64b> from /home/on3pwn/.reticulum/storage/identities/rncp
[2026-05-24 21:42:47] Public Key  : 1ca00f5d8c28fb69f0bb9ddd26de815c38ccfc2f9072e93b786424be1f8ce068b6162445235bbe0faf7795a6bc4b37c88c104cabba25f8ad6e90e3ed6f835ff2
[2026-05-24 21:42:47] Private Key : Hidden

Ce qui nous intéresse c'est "Loaded Identity" qui est l'identité qu'il faut échanger avec l'hôte distant

S'il s'agit d'un serveur, il faut mettre l'identité de l'hôte distant dans ~/.rncp/allowed_identities
--> Redémarrer le service rncp si ~/.rncp/allowed_identities est modifié.

S'il s'agit d'un échange ponctuel il faut que l'hôte listener ajoute "-a <remote_identity> pour autoriser l'hôte client à transférer son fichier

$ rncp /tmp/toto efc008551421e522268a388e9c738b30
Transfer complete  100.0% - 28 B of 28 B - 279 bps  
/tmp/toto copied to <efc008551421e522268a388e9c738b30>