Jag har en Raspberry Pi 3B (Raspberry Pi 3B Arm-arkitektur 32-bitars) hemma, och jag har ätit damm hemma eftersom .NET Core-program kan vara plattformsoberoende och jag tänker skriva en webbplats för att distribuera på Raspberry Pi. Hemmets bredband har en publik IP-adress, men IP-adressen ändras varje gång routern startas om, och den fria DDNS-adressen för ASUS-routern är inte särskilt lätt att använda (hem-IP:n har ändrats och domännamnsupplösningen har inte trätt i kraft i tid). Jag har en DELL-stationär dator och en DELL EMC-server hemma, så gör dig redo att skriva en DDNS-tjänst och ett Wake-on-the-Internet-verktyg med ASP.NET Core.
Med DDNS kan duFå tag på internetets IP-adress hemma i tid, med hjälp av Wake-on-Network-funktionen är möjligtVäcker min DELL-stationära dator, vilket är praktiskt för att konsultera information hemma.
Sajter skrivna med ASP.NET Core 6 distribueras på Raspberry PiDen har gått stadigt i mer än tre månader, utan några problem.
Installera AspNetCore-runtimen
Först måste Raspberry Pi installeras med Raspberry Pi OS-systemet, och handledningen är följande:
Installera sedan AspNetCore Runtimes ovanpå Raspberry Pi, logga in på Raspberry Pi:s värd med SSH och använd detsudo -iByt till root och skapa en /usr/dotnet-mapp med följande kommando:
Ladda ner aspnetcore-runtime-6.0.1-linux-arm.tar.gz och packa upp den med följande kommando:
För att skapa en mjuklänk är kommandot följande:
Vid denna punkt installeras den körmiljö som krävs av ASP.NET Core-webbplats, och den installerade körtiden kontrolleras, som visas i figuren nedan:
DDNS dynamisk domännamnstjänst
Anropa DNSPod-gränssnittet för att implementera DDNS dynamiska domännamnstjänst, gränssnittsdokument:Inloggningen med hyperlänken är synlig.
Skapa ett nytt MVC-projekt ASP.NET Core 6 med VS 2022, skapa en ny DNSPodOptions.cs-fil för att konfigurera de parametrar som krävs för anropsgränssnittet, enligt följande:
appsettings.json Lägg till följande konfiguration:
Modifiera Program.cs-filen för att mappa konfigurationsinformationen till DNSPodOptions-klassen, koden är följande:
Skapa en ny DDNSWorker.cs fil, skapa en bakgrundstjänst, hämta en IP-adress en gång i minuten och anropa DNSPod-gränssnittet för att uppdatera domännamnsupplösningen om IP-adressen ändras. (Not:Om fler än 5 förfrågningar om att ändra poster utan några ändringar skickas in inom 1 timme, kommer registren att låsas av systemet i 1 timme och får inte ändras igen。 Till exempel är det ursprungliga postvärdet redan 1.1.1.1, och den nya förfrågan kräver också att det ändras till 1.1.1.1. )
Koden är följande:
Modifiera filen Program.cs och registrera backend-tjänsten med följande kod:
Den kompletta Program.cs koden är följande:
Debuggern kan anropa DNSPod-gränssnittet normalt, enligt följande:
Vakna på LAN
Wake-on-LAN förkortas WOL eller WoL, vilket oftast översätts till kinesiska som "online-väckning" och "fjärruppvakning"-teknik. WOL är en teknologi, och det är också specifikationen för denna teknik, och dess effekt är att tillåta en dator som gått in i ett vilande eller avstängt tillstånd att ge order till den via andra änden av det lokala nätverket (främst Ethernet), så att den vaknar från viloläge, återgår till drifttillstånd eller växlar från avstängningsläge till startläge. Dessutom inkluderar WOL-relaterade teknologier även fjärrstyrda mekanismer såsom fjärravstängning och fjärromstart.
Modifiera HomeController-kontrollern och lägg till Wake-on-Network-gränssnittet, koden är följande:
Redigera sidan Index.cshtml, lägg till MAC-adressinmatningsrutan och knappen, och använd Ajax för att anropa gränssnittet, koden är följande:
Starta projektet enligt nedan:
Utplacerad på Raspberry Pi
Använd VS 2022 för att släppa ett projekt, ladda upp releasepaketet till Raspberry Pi:s /home/pi/wol-mapp, som visas nedan:
Skapa en ny nbddns.service-fil under mappen /etc/systemd/system och registrera projektet som en Linux-tjänst, enligt följande:
Starta nbddns-tjänsten och ställ in starten av auto-start med följande kommando:
Visa servicestatusen som visas i följande figur:
Slutligen, i routerinställningarnaPortkartläggning, och sedan åtkomst via domännamnet och den mappade extranetporten, min telefonAnvänd 4G-nätdirektDu kan komma åt ASP.NET Core-appar som är installerade ovanpå Raspberry Pi, som visas i figuren nedan:
(Slut)
|