Doma mám Raspberry Pi 3B (Raspberry Pi 3B Arm architecture 32-bit) a doma som sa zanedbával, pretože .NET Core programy môžu byť multiplatformové, takže plánujem napísať webovú stránku na nasadenie na Raspberry Pi. Domáce širokopásmové pripojenie má verejnú IP adresu, ale tá sa mení pri každom reštarte routera a bezplatné DDNS ASUS routera nie je veľmi jednoduché na používanie (domáca IP adresa sa zmenila a riešenie doménového mena sa neprejavilo včas). Doma mám DELL desktop a DELL EMC server, takže sa pripravte napísať DDNS službu a nástroj Wake-on-the-Internet s ASP.NET Core.
S DDNS môžeteZískajte IP adresu internetu doma včas, použitie funkcie Wake-on-Network je možnéPrebuď môj stolný počítač DELL, čo je pohodlné na konzultáciu informácií doma.
Stránky napísané pomocou ASP.NET Core 6 sú nasadené na Raspberry PiBeží nepretržite už viac ako 3 mesiace, bez problémov.
Nainštalujte runtime AspNetCore
Najprv je potrebné nainštalovať Raspberry Pi spolu so systémom Raspberry Pi OS a návod je nasledovný:
Potom nainštaluj AspNetCore Runtime na Raspberry Pi, prihlás sa na hostiteľa Raspberry Pi cez SSH a používaj hosudo -iPrepnite na root a vytvorte priečinok /usr/dotnet pomocou nasledujúceho príkazu:
Stiahnite aspnetcore-runtime-6.0.1-linux-arm.tar.gz a rozbaľte ho nasledujúcim príkazom:
Na vytvorenie mäkkého odkazu je príkaz nasledovný:
V tomto bode sa nainštaluje bežiace prostredie požadované ASP.NET Core webovou stránkou a skontroluje sa nainštalovaný runtime, ako je znázornené na obrázku nižšie:
DDNS Dynamická služba doménových mien
Zavolajte rozhranie DNSPod na implementáciu dynamickej služby doménových mien DDNS, dokument rozhrania:Prihlásenie na hypertextový odkaz je viditeľné.
Vytvorte nový MVC projekt ASP.NET Core 6 pomocou VS 2022, vytvorte nový DNSPodOptions.cs súbor na konfiguráciu parametrov potrebných pre rozhranie vyvolávania, nasledovne:
appsettings.json Pridajte nasledujúcu konfiguráciu:
Upravte Program.cs súbor tak, aby konfiguračné informácie mapoval na triedu DNSPodOptions, kód je nasledovný:
Vytvorte nový DDNSWorker.cs súbor, vytvorte službu na pozadí, získajte IP adresu raz za minútu a zavolajte rozhranie DNSPOD na aktualizáciu rozlíšenia doménového mena, ak sa IP adresa zmení. (Poznámka:Ak je do 1 hodiny podaných viac ako 5 žiadostí o úpravu záznamov bez akýchkoľvek zmien, záznamy budú na 1 hodinu zablokované systémom a už ich nebude možné upravovať。 Napríklad pôvodná hodnota záznamu je už 1.1.1.1 a nová požiadavka tiež vyžaduje jej zmenu na 1.1.1.1. )
Kód je nasledovný:
Upravte Program.cs súbor a zaregistrujte backendovú službu s nasledujúcim kódom:
Kompletný Program.cs kód je nasledovný:
Debugger môže normálne volať rozhranie DNSPod, nasledovne:
Wake On LAN
Wake-on-LAN sa skrátene označuje ako WOL alebo WoL, čo sa do čínštiny väčšinou prekladá ako "online wake-up" a "remote wake-up" technológia. WOL je technológia, ktorá je zároveň jej špecifikáciou, a jej účinkom je umožniť počítaču, ktorý vstúpil do stavu nečinnosti alebo vypnutia, vydávať mu príkazy cez druhý koniec lokálnej siete (väčšinou Ethernet), aby sa prebudil z hibernácie, obnovil prevádzkový stav alebo prešiel z vypnutia do štartovacieho stavu. Okrem toho technológie súvisiace s WOL zahŕňajú aj mechanizmy diaľkového ovládania, ako je diaľkové vypnutie a diaľkový reštart.
Upravte ovládač HomeController a pridajte rozhranie Wake-on-Network, kód je nasledovný:
Upravte stránku Index.cshtml, pridajte vstupné pole a tlačidlo MAC adresy a použite Ajax na vyvolanie rozhrania, kód je nasledovný:
Začnite projekt tak, ako je uvedené nižšie:
Nasadené na Raspberry Pi
Pri použití VS 2022 na vydanie projektu nahrajte release balík do priečinka /home/pi/wol na Raspberry Pi, ako je uvedené nižšie:
Vytvorte nový súbor nbddns.service v priečinku /etc/systemd/system a zaregistrujte projekt ako Linux službu, nasledovne:
Spusti službu nbddns a nastav štart tak, aby automaticky štartoval nasledujúcim príkazom:
Pozrite si stav prevádzky, ako je znázornené na nasledujúcom obrázku:
Nakoniec v nastaveniach routeraMapovanie portov, a potom prístup cez doménové meno a mapovaný extranetový port, môj telefónPoužívajte 4G sietepriamyMôžete pristupovať k ASP.NET Core aplikáciám nasadeným na Raspberry Pi, ako je znázornené na obrázku nižšie:
(Koniec)
|