Ich habe zu Hause einen Raspberry Pi 3B (Raspberry Pi 3B Arm-Architektur 32-Bit) und habe zu Hause Staub gefressen, weil .NET Core-Programme plattformübergreifend sein können, also werde ich eine Website schreiben, die ich auf Raspberry Pi bereitstellen kann. Das Heim-Breitband hat eine öffentliche IP-Adresse, aber die IP-Adresse ändert sich jedes Mal, wenn der Router neu gestartet wird, und das kostenlose DDNS des ASUS-Routers ist nicht sehr einfach zu bedienen (die Heim-IP hat sich geändert und die Domainnamen-Auflösung ist nicht rechtzeitig in Kraft getreten). Ich habe einen DELL-Desktop und einen DELL-EMC-Server zu Hause, also mach dich bereit, einen DDNS-Dienst und ein Wake-on-the-Internet-Tool mit ASP.NET Core zu schreiben.
Mit DDNS kannst du das tunErhalten Sie rechtzeitig die IP-Adresse des Internets zu Hause, mit der Wake-on-Network-Funktion ist möglichWecke meinen DELL-Desktop-Computer auf, was praktisch ist, um Informationen zu Hause zu konsultieren.
Websites, die mit ASP.NET Core 6 geschrieben wurden, werden auf Raspberry Pi bereitgestelltEs läuft seit mehr als drei Monaten ununterbrochen, ohne Probleme.
Installieren Sie die AspNetCore-Laufzeitumgebung
Zuerst muss der Raspberry Pi mit dem Raspberry Pi OS-System installiert werden, und das Tutorial lautet wie folgt:
Installiere dann AspNetCore Runtimes auf dem Raspberry Pi, melde dich mit SSH am Raspberry Pi Host an und nutze essudo -iWechsle zum Root und erstelle einen /usr/dotnet-Ordner mit folgendem Befehl:
Laden Sie aspnetcore-runtime-6.0.1-linux-arm.tar.gz herunter und entpacken Sie sie mit folgendem Befehl:
Um einen Softlink zu erstellen, lautet der Befehl wie folgt:
An diesem Punkt wird die von ASP.NET Core-Website benötigte Laufzeitumgebung installiert und die installierte Laufzeit überprüft, wie in der untenstehenden Abbildung dargestellt:
DDNS Dynamischer Domain Name Service
Rufen Sie die DNSPod-Schnittstelle auf, um den DDNS-Dynamic Domain Name Service und das Schnittstellendokument zu implementieren:Der Hyperlink-Login ist sichtbar.
Erstellen Sie ein neues MVC-Projekt ASP.NET Core 6 mit VS 2022, erstellen Sie eine neue DNSPodOptions.cs-Datei, um die für die Aufruf-Schnittstelle erforderlichen Parameter wie folgt zu konfigurieren:
appsettings.json Fügen Sie folgende Konfiguration hinzu:
Verändern Sie die Program.cs-Datei, um die Konfigurationsinformationen der Klasse DNSPodOptions zuzuordnen; der Code lautet wie folgt:
Erstellen Sie eine neue DDNSWorker.cs-Datei, erstellen Sie einen Hintergrunddienst, erhalten Sie einmal pro Minute eine IP-Adresse und rufen Sie die DNSPod-Schnittstelle auf, um die Domain-Definition zu aktualisieren, falls sich die IP-Adresse ändert. (Anmerkung:Wenn innerhalb von 1 Stunde mehr als 5 Anfragen zur Änderung von Datensätzen ohne Änderungen eingereicht werden, werden die Datensätze vom System für eine Stunde gesperrt und dürfen nicht erneut geändert werden。 Zum Beispiel ist der ursprüngliche Datensatz bereits 1.1.1.1, und die neue Anfrage erfordert außerdem, dass er auf 1.1.1.1 geändert wird. )
Der Code lautet wie folgt:
Ändern Sie die Program.cs-Datei und registrieren Sie den Backend-Service mit folgendem Code:
Der vollständige Program.cs-Code lautet wie folgt:
Der Debugger kann die DNSPod-Schnittstelle wie folgt aufrufen:
Wake On LAN
Wake-on-LAN wird als WOL oder WoL abgekürzt, was im Chinesischen meist als "Online-Wake-up" und "Remote Wake-up"-Technologie übersetzt wird. WOL ist eine Technologie, und sie ist auch die Spezifikation dieser Technologie; ihr Zweck besteht darin, dass ein Computer, der in einen Ruhezustand oder Abschaltzustand versetzt ist, ihm über das andere Ende des lokalen Netzwerks (meist Ethernet) Befehle geben kann, sodass er aus dem Ruhezustand erwacht, in den Betriebszustand zurückkehrt oder vom Abschaltzustand in den Bootzustand wechselt. Darüber hinaus umfassen WOL-bezogene Technologien auch Fernsteuerungsmechanismen wie Fernabschalten und Fernstart.
Ändere den HomeController-Controller und füge die Wake-on-Network-Schnittstelle hinzu, der Code lautet wie folgt:
Bearbeiten Sie die Index.cshtml-Seite, fügen Sie das MAC-Adresseingabefeld und den Button hinzu und verwenden Sie Ajax, um die Schnittstelle aufzurufen, der Code ist wie folgt:
Starten Sie das Projekt wie unten gezeigt:
Einsatz auf dem Raspberry Pi
Um ein Projekt mit VS 2022 zu veröffentlichen, lade das Release-Paket in den /home/pi/wol-Ordner des Raspberry Pi hoch, wie unten gezeigt:
Erstelle eine neue nbddns.service-Datei unter dem /etc/systemd/system-Ordner und registriere das Projekt als Linux-Dienst wie folgt:
Starte den nbddns-Dienst und stelle den Boot mit folgendem Befehl auf Auto-Start ein:
Sehen Sie sich den Dienststatus wie in der folgenden Abbildung dargestellt an:
Schließlich in den Router-EinstellungenPort-Mapping, und dann über den Domainnamen und den zugeordneten Extranet-Port auf mein Handy zugreifen4G-Netze nutzendirektSie können auf ASP.NET Core-Apps zugreifen, die auf dem Raspberry Pi installiert sind., wie in der untenstehenden Abbildung dargestellt:
(Ende)
|