Mám doma Raspberry Pi 3B (Raspberry Pi 3B Arm architecture 32-bit) a doma jsem si užíval prach, protože .NET Core programy mohou být multiplatformní, takže se chystám napsat webovou stránku, kterou nasadím na Raspberry Pi. Domácí širokopásmové připojení má veřejnou IP adresu, ale ta se při každém restartu routeru změní a bezplatné DDNS routeru ASUS není příliš snadné na použití (domácí IP se změnila a řešení doménových jmen se včas neprojevilo). Mám doma desktopový počítač DELL a EMC server DELL EMC, takže se připravte napsat DDNS službu a nástroj Wake-on-the-Internet s ASP.NET Core.
S DDNS můžeteZískejte IP adresu internetu doma včas, je možné použít funkci Wake-on-NetworkProbuď svůj stolní počítač DELL, což je pohodlné pro konzultaci informací doma.
Stránky napsané pomocí ASP.NET Core 6 jsou nasazeny na Raspberry PiFunguje stabilně už více než 3 měsíce, bez problémů.
Nainstalujte runtime AspNetCore
Nejprve je potřeba nainstalovat Raspberry Pi spolu se systémem Raspberry Pi OS a návod je následující:
Pak nainstalujte AspNetCore Runtime na Raspberry Pi, přihlaste se na hostitele Raspberry Pi přes SSH a používejte hosudo -iPřepněte na root a vytvořte složku /usr/dotnet pomocí následujícího příkazu:
Stáhněte aspnetcore-runtime-6.0.1-linux-arm.tar.gz a rozbalte ji následujícím příkazem:
Pro vytvoření měkkého odkazu je příkaz následující:
V tomto okamžiku je nainstalováno běžící prostředí požadované webem ASP.NET Core a kontrolováno nainstalované runtime, jak je znázorněno na obrázku níže:
DDNS Dynamická služba doménových jmen
Zavolejte rozhraní DNSPod pro implementaci dynamické služby doménových jmen DDNS, dokument rozhraní:Přihlášení k hypertextovému odkazu je viditelné.
Vytvořte nový projekt MVC ASP.NET Core 6 pomocí VS 2022, vytvořte nový DNSPodOptions.cs soubor pro konfiguraci parametrů požadovaných pro rozhraní pro volání, následovně:
appsettings.json Přidejte následující konfiguraci:
Upravte soubor Program.cs tak, aby konfigurační informace byly mapovány na třídu DNSPodOptions, kód je následující:
Vytvořte nový DDNSWorker.cs soubor, vytvořte službu na pozadí, získejte IP adresu jednou za minutu a zavolejte rozhraní DNSPOD pro aktualizaci rozlišení doménových jmen, pokud se IP adresa změní. (Poznámka:Pokud je do 1 hodiny podáno více než 5 žádostí o úpravu záznamů bez jakýchkoli změn, budou záznamy systémem na 1 hodinu uzamčeny a již nebude možné je upravovat。 Například původní hodnota záznamu je již 1.1.1.1 a nový požadavek také vyžaduje její změnu na 1.1.1.1. )
Kód je následující:
Upravte Program.cs soubor a zaregistrujte backendovou službu s následujícím kódem:
Kompletní Program.cs kód je následující:
Debugger může normálně volat rozhraní DNSPPOD, a to následovně:
Wake On LAN
Wake-on-LAN se zkracuje jako WOL nebo WoL, což se do čínštiny většinou překládá jako "online probuzení" a "technologie vzdáleného probuzení". WOL je technologie a zároveň specifikací této technologie, jejímž účinkem je umožnit počítači, který vstoupil do stavu nečinnosti nebo vypnutí, vydávat příkazy přes druhý konec lokální sítě (většinou Ethernet), takže se probudí z hibernace, obnoví provozní stav nebo přepne ze stavu vypnutí do spouštěcího stavu. Kromě toho technologie související s WOL zahrnují také mechanismy dálkového ovládání, jako je vzdálené vypnutí a dálkový restart.
Upravte ovladač HomeController a přidejte rozhraní Wake-on-Network, kód je následující:
Upravte stránku Index.cshtml, přidejte vstupní pole a tlačítko pro MAC adresu a použijte Ajax k volání rozhraní, kód je následující:
Začněte projekt podle níže:
Nasazeno na Raspberry Pi
Při vydání projektu pomocí VS 2022 nahrajte balíček do složky /home/pi/wol na Raspberry Pi, jak je uvedeno níže:
Vytvořte nový soubor nbddns.service ve složce /etc/systemd/system a zaregistrujte projekt jako linuxovou službu, následovně:
Spusť službu nbddns a nastav spuštění tak, aby spouštělo automatické spuštění následujícím příkazem:
Zobrazit stav provozu, jak je znázorněn na následujícím obrázku:
Nakonec v nastavení routeruMapování portů, a pak přístup přes doménu a mapovaný port extranetu, můj telefonPoužívejte 4G sítěnasměrovatNa Raspberry Pi máte přístup ASP.NET Core aplikací, které jsou nasazeny, jak je znázorněno na obrázku níže:
(Konec)
|