Ik heb thuis een Raspberry Pi 3B (Raspberry Pi 3B Arm-architectuur 32-bit) en ik heb thuis stof geeten, omdat .NET Core-programma's cross-platform kunnen zijn, dus ik ga een website schrijven om op Raspberry Pi te implementeren. Het thuisbreedband heeft een openbaar IP-adres, maar het IP-adres verandert elke keer dat de router wordt herstart, en de gratis DDNS van de ASUS-router is niet erg eenvoudig te gebruiken (het thuis-IP is veranderd en de domeinnaamresolutie is niet op tijd van kracht geworden). Ik heb thuis een DELL-desktop en een DELL EMC-server, dus maak je klaar om een DDNS-service en een Wake-on-the-Internet-tool te schrijven met ASP.NET Core.
Met DDNS kun je dat welHaal het IP-adres van het internet thuis op tijd op, met behulp van de Wake-on-Network-functie is mogelijkMaak mijn DELL desktopcomputer wakker, wat handig is om informatie thuis te raadplegen.
Sites die met ASP.NET Core 6 zijn geschreven, worden op Raspberry Pi gedisponeerdHij draait al meer dan 3 maanden gestaag, zonder problemen.
Installeer de AspNetCore-runtime
Allereerst moet de Raspberry Pi worden geïnstalleerd met het Raspberry Pi OS-systeem, en de tutorial is als volgt:
Installeer vervolgens AspNetCore Runtimes bovenop de Raspberry Pi, log in op de Raspberry Pi-host met SSH en gebruik hetsudo -iSchakel over naar root en maak een /usr/dotnet-map aan met het volgende commando:
Download aspnetcore-runtime-6.0.1-linux-arm.tar.gz en pak het uit met het volgende commando:
Om een soft link te maken, is het commando als volgt:
Op dit punt wordt de uitvoerende omgeving die ASP.NET Core-website vereist geïnstalleerd en wordt de geïnstalleerde runtime gecontroleerd, zoals weergegeven in de onderstaande figuur:
DDNS Dynamische Domeinnaamdienst
Roep de DNSPod-interface aan om DDNS dynamische domeinnaamdienst te implementeren, interfacedocument:De hyperlink-login is zichtbaar.
Maak een nieuw MVC-project aan ASP.NET Core 6 met VS 2022, maak een nieuw DNSPodOptions.cs-bestand aan om de parameters te configureren die nodig zijn voor de aanroepinterface, als volgt:
appsettings.json Voeg de volgende configuratie toe:
Pas het Program.cs-bestand aan om de configuratie-informatie toe te wijzen op de DNSPodOptions-klasse; de code is als volgt:
Maak een nieuw DDNSWorker.cs bestand aan, maak een achtergronddienst aan, verkrijg eens per minuut een IP-adres en roep de DNSPod-interface aan om de domeinnaamresolutie bij te werken als het IP-adres verandert. (Opmerking:Als er binnen 1 uur meer dan 5 verzoeken om records te wijzigen zonder wijzigingen worden ingediend, worden de records door het systeem 1 uur geblokkeerd en mogen ze niet opnieuw worden aangepast。 Bijvoorbeeld, de oorspronkelijke recordwaarde is al 1.1.1.1, en het nieuwe verzoek vereist ook dat deze wordt gewijzigd naar 1.1.1.1. )
De code is als volgt:
Wijzig het Program.cs-bestand en registreer de backend-service met de volgende code:
De volledige Program.cs code is als volgt:
De debugger kan de DNSPod-interface normaal aanroepen, als volgt:
Wake On LAN
Wake-on-LAN wordt afgekort als WOL of WoL, wat meestal in het Chinees wordt vertaald als "online wake-up" en "remote wake-up" technologie. WOL is een technologie, en het is ook de specificatie van deze technologie, en het effect ervan is dat een computer die in een stilstand- of afsluittoestand is geraakt, orders kan geven via het andere uiteinde van het lokale netwerk (voornamelijk Ethernet), zodat hij uit de sluimerstand ontwaakt, terugkeert naar de bedrijfsstand, of schakelt van afsluittoestand naar opstart. Daarnaast omvatten WOL-gerelateerde technologieën ook afstandsbedieningsmechanismen zoals afstandsbediening en herstart op afstand.
Pas de HomeController-controller aan en voeg de Wake-on-Network-interface toe, de code is als volgt:
Bewerk de Index.cshtml-pagina, voeg het MAC-adresinvoervak en de knop toe, en gebruik Ajax om de interface aan te roepen; de code is als volgt:
Begin het project zoals hieronder getoond:
Ingezet op de Raspberry Pi
Gebruik VS 2022 om een project uit te brengen, en upload het releasepakket naar de /home/pi/wol-map van de Raspberry Pi, zoals hieronder weergegeven:
Maak een nieuw nbddns.service-bestand aan onder de map /etc/systemd/system en registreer het project als een Linux-service, als volgt:
Start de nbddns-service en stel de boot in om automatisch te starten met het volgende commando:
Bekijk de servicestatus zoals weergegeven in de volgende figuur:
Tot slot, in de routerinstellingenPoortmapping, en vervolgens via de domeinnaam en de toegewezen extranetpoort mijn telefoon te bereikenGebruik 4G-netwerkenrechtstreeksJe kunt toegang krijgen tot ASP.NET Core-apps die bovenop de Raspberry Pi zijn geïnstalleerd, zoals getoond in de onderstaande figuur:
(Einde)
|