J’ai un Raspberry Pi 3B (architecture Arm 32 bits Raspberry Pi 3B) à la maison, et j’ai pris la poussière chez moi, car les programmes .NET Core peuvent être multiplateformes, donc je vais écrire un site web à déployer sur Raspberry Pi. Le haut débit domestique a une adresse IP publique, mais celle-ci change à chaque redémarrage du routeur, et le DDNS gratuit du routeur ASUS n’est pas très facile à utiliser (l’IP domestique a changé, et la résolution du nom de domaine n’a pas pris effet à temps). J’ai un bureau DELL et un serveur EMC DELL à la maison, alors préparez-vous à écrire un service DDNS et un outil Wake-on-the-Internet avec ASP.NET Core.
Avec DDNS, vous pouvezObtenez l’adresse IP d’Internet chez vous à temps, en utilisant la fonction Wake-on-Network est possibleRéveille mon ordinateur de bureau DELL, ce qui est pratique pour consulter des informations à domicile.
Les sites écrits avec ASP.NET Core 6 sont déployés sur Raspberry PiElle fonctionne régulièrement depuis plus de 3 mois, sans aucun problème.
Installer l’exécution AspNetCore
Tout d’abord, le Raspberry Pi doit être installé avec le système Raspberry Pi OS, et le tutoriel est le suivant :
Ensuite, installer les runtimes AspNetCore par-dessus le Raspberry Pi, se connecter à l’hôte Raspberry Pi via SSH, et l’utiliserSudo -IPassez à la racine et créez un dossier /usr/dotnet avec la commande suivante :
Téléchargez aspnetcore-runtime-6.0.1-linux-arm.tar.gz et décompressez-le avec la commande suivante :
Pour créer un lien logiciel, la commande est la suivante :
À ce stade, l’environnement d’exécution requis par ASP.NET site Core est installé, et le temps d’exécution installé est vérifié, comme montré dans la figure ci-dessous :
Service dynamique de noms de domaine DDNS
Appelez l’interface DNSPod pour implémenter le service dynamique de noms de domaine DDNS, document d’interface :La connexion hyperlientérée est visible.
Créer un nouveau projet MVC ASP.NET Core 6 en utilisant VS 2022, créer un nouveau fichier DNSPodOptions.cs pour configurer les paramètres nécessaires à l’interface d’invocation, comme suit :
appsettings.json Ajouter la configuration suivante :
Modifiez le fichier Program.cs pour associer les informations de configuration à la classe DNSPodOptions, le code est le suivant :
Créez un nouveau fichier DDNSWorker.cs, créez un service en arrière-plan, obtenez une adresse IP une fois par minute, et appelez l’interface DNSPod pour mettre à jour la résolution du nom de domaine si l’adresse IP change. (Note :Si plus de 5 demandes de modification des enregistrements sans aucune modification sont soumises dans l’espace d’une heure, les enregistrements seront verrouillés par le système pendant 1 heure et ne pourront plus être modifiés。 Par exemple, la valeur originale de l’enregistrement est déjà 1.1.1.1, et la nouvelle requête nécessite également de la changer en 1.1.1.1. )
Le code est le suivant :
Modifiez le fichier Program.cs et enregistrez le service backend avec le code suivant :
Le code complet de Program.cs est le suivant :
Le débogueur peut appeler normalement l’interface DNSPod, comme suit :
Veille sur le réseau local
Wake-on-LAN est abrégé en WOL ou WoL, ce qui se traduit principalement en chinois par « réveil en ligne » et technologie de « réveil à distance ». La WOL est une technologie, et c’est aussi la spécification de cette technologie, et son effet est de permettre à un ordinateur entré en dormance ou d’arrêt de lui donner des ordres via l’autre extrémité du réseau local (principalement Ethernet), de sorte qu’il se réveille de l’hibernation, reprend l’état de fonctionnement, ou passe de l’état d’arrêt à l’état de démarrage. De plus, les technologies liées à WOL incluent également des mécanismes de contrôle à distance tels que l’arrêt à distance et le redémarrage à distance.
Modifiez le contrôleur HomeController et ajoutez l’interface Wake-on-Network, le code est le suivant :
Modifiez la page Index.cshtml, ajoutez la boîte d’entrée et le bouton de l’adresse MAC, et utilisez Ajax pour appeler l’interface, le code est le suivant :
Commencez le projet comme indiqué ci-dessous :
Déploié sur le Raspberry Pi
En utilisant VS 2022 pour publier un projet, téléchargez le paquet de release dans le dossier /home/pi/wol du Raspberry Pi, comme indiqué ci-dessous :
Créez un nouveau fichier nbddns.service sous le dossier /etc/systemd/system et enregistrez le projet comme un service Linux, comme suit :
Démarrez le service nbddns et réglez le démarrage pour démarrer automatiquement avec la commande suivante :
Consultez l’état du service tel que montré dans la figure suivante :
Enfin, dans les paramètres du routeurCartographie des ports, puis l’accès via le nom de domaine et le port extranet mappé, mon téléphoneUtilisez les réseaux 4GdirectVous pouvez accéder à ASP.NET applications Core déployées sur le Raspberry Pi, comme montré dans la figure ci-dessous :
(Fin)
|