Réveiller son PC à distance avec un simple fichier texte depuis un NAS

Ced_Mandrake_WoL

Vous avez besoin d’allumer votre PC fixe à distance via Wake-on-LAN (WoL), mais vous ne voulez pas exposer de port SSH sur Internet ni utiliser une application tierce compliquée ou gourmande en ressources ?

Aujourd’hui, on va voir comment mettre en place une méthode ultra simple et sécurisée : allumer votre PC en créant un simple fichier texte REVEIL.txt dans un dossier partagé de votre NAS.

Que ce soit depuis votre smartphone (via SMB ou WireGuard) ou depuis n’importe quel appareil connecté à votre réseau local, il vous suffira de déposer ce fichier pour que votre tour s’allume dans la minute !


🛠️ Le principe

  1. Un script tourne en tâche de fond sur le NAS (via cron) toutes les minutes.
  2. Il vérifie si le fichier déclencheur REVEIL.txt existe dans un dossier partagé.
  3. S’il est présent :
  • Le NAS génère et envoie le Magic Packet (paquet magique UDP/WoL) sur l’adresse de broadcast de votre réseau local.
  • Il supprime immédiatement le fichier REVEIL.txt pour éviter les démarrages en boucle.

Cette technique de ‘fichier déclencheur’ est un truc de vieux de routard, qui peut être adapté à de nombreuses situations pour automatiser certaines taches à la demande. Gardez la dans un coin, elle vous resservira.


1. La pré-requis indispensable : Côté PC (BIOS & Windows)

Pour que la carte réseau de votre PC écoute le réseau même quand la machine est éteinte, il faut valider deux ou trois réglages essentiels :

Côté BIOS (Exemple sur carte mère AMD / Gigabyte AORUS)

  • Power On By PCI-E Device (ou Wake-on-LAN) : à régler sur Enabled.
  • ErP / EuP : à régler impérativement sur Disabled. (Si ErP est activé, la carte mère coupe le 5V Standby et la carte réseau s’éteint complètement).

Côté Windows

  • Désactiver le Démarrage Rapide (Fast Startup) : Dans les Options d’alimentation, décochez la case « Activer le démarrage rapide ». Quand le démarrage rapide est actif, Windows plonge la carte réseau dans un sommeil profond incompatible avec le WoL.
  • Propriétés de la carte réseau (dans le Gestionnaire de périphériques) :
  • Activez l’option Activer au moyen d’un paquet magique (Wake on Magic Packet).
  • Cochez « Autoriser ce périphérique à sortir l’ordinateur de veille » et « Autoriser uniquement un paquet magique… ».

2. Le script sur le NAS (ReadyNAS OS 6 / Debian)

Sur les anciens NAS (comme le ReadyNAS RN104), les utilitaires réseau classiques (python, nc/netcat, etherwake) ne sont pas toujours installés par défaut ou peuvent poser des problèmes de dépendances obsolètes. Et la machine ne dispose que 512Mo de RAM, il faut économiser les ressources.

Heureusement, Perl est installé nativement sur 100 % des systèmes ReadyNAS OS (car l’interface Web l’utilise). C’est lui qu’on utilise pour construire et envoyer la trame binaire du paquet magique sans aucune dépendance externe !

Création du script

Connectez-vous en SSH à votre NAS et créez un fichier de script (par exemple dans /data/scripts/wol_trigger.sh) :

Bash
nano /data/scripts/wol_trigger.sh

Collez-y le code suivant en adaptant :

  • Le chemin du fichier déclencheur (TRIGGER_FILEici REVEIL.txt)
  • L’adresse MAC de la carte réseau de votre PC (au format bloc sans : ou - par exemple 17C07D7581E56)
  • L’adresse de broadcast de votre réseau local (généralement 192.168.1.255 sur les box de particuliers)
Bash
#!/bin/sh

# Chemin du fichier déclencheur dans votre partage NAS
TRIGGER_FILE="/data/Documents/REVEIL.txt"

# Vérification de la présence du fichier
if [ -f "$TRIGGER_FILE" ]; then
    # Envoi du paquet magique via Perl (nativement présent sur ReadyNAS OS)
    perl -e '
        use Socket;
        socket(S, PF_INET, SOCK_DGRAM, getprotobyname("udp"));
        setsockopt(S, SOL_SOCKET, SO_BROADCAST, 1);
        my $mac = pack("H*", "17C07D7581E56");
        my $packet = "\xff" x 6 . $mac x 16;
        send(S, $packet, 0, sockaddr_in(9, inet_aton("192.x.x.255")));
    ' >/dev/null 2>&1

    # Suppression du fichier déclencheur pour éviter les réveils en boucle
    rm -f "$TRIGGER_FILE"
fi

Rendez le script exécutable :

Bash
chmod +x /data/scripts/wol_trigger.sh

3. Automatisation avec Cron

Pour que le NAS vérifie automatiquement la présence du fichier toutes les minutes, ouvrez la table crontab du compte root :

Bash
crontab -e

Ajoutez cette ligne tout en bas :

Bash
* * * * * /data/scripts/wol_trigger.sh >/dev/null 2>&1

Sauvegardez et quittez. (ctrl+O, entrer, crtl+X)

💡 Pourquoi cette méthode est top ?

  1. Sécurité maximale : Inutile de laisser un port SSH ou une interface d’administration ouverte vers l’extérieur. Si vous avez un accès à vos fichiers NAS (via VPN WireGuard, Nextcloud ou partage SMB local), vous avez votre déclencheur.
  2. Aucune dépendance : Le script n’utilise ni Python, ni Netcat, ni etherwake. Il tourne à 100 % sur les outils natifs de ReadyNAS OS.
  3. Usage ultra-simple : Un petit raccourci pour créer un fichier texte depuis votre téléphone, et votre tour démarre à distance !

Bonne bidouille à tous !

Avatar de Cedric Ougier

Cédric Ougier

Retrouvez-moi également via

Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.