Am un Raspberry Pi 3B (arhitectură Arm Raspberry Pi 3B pe 32 de biți) acasă și am început să mănânc praf acasă, pentru că programele .NET Core pot fi cross-platform, așa că voi scrie un site pe care să-l implementez pe Raspberry Pi. Banda largă de acasă are o adresă IP publică, dar adresa IP se va schimba de fiecare dată când routerul este repornit, iar DDNS-ul gratuit al routerului ASUS nu este foarte ușor de folosit (IP-ul de acasă s-a schimbat, iar rezoluția numelor de domeniu nu a intrat în vigoare la timp). Am un desktop DELL și un server EMC DELL acasă, așa că pregătește-te să scrii un serviciu DDNS și un instrument Wake-on-the-Internet cu ASP.NET Core.
Cu DDNS, poțiObține la timp adresa IP a Internetului de acasă, folosind funcția Wake-on-Network este posibilăSă trezesc calculatorul meu desktop DELL, ceea ce este convenabil pentru consultarea informațiilor acasă.
Site-urile scrise folosind ASP.NET Core 6 sunt implementate pe Raspberry PiFuncționează constant de mai bine de 3 luni, fără nicio problemă.
Instalează runtime-ul AspNetCore
În primul rând, Raspberry Pi trebuie instalat cu sistemul Raspberry Pi OS, iar tutorialul este următorul:
Apoi instalează runtime-uri AspNetCore deasupra Raspberry Pi, conectează-te la gazda Raspberry Pi folosind SSH și folosește-lsudo -iComută pe root și creează un folder /usr/dotnet cu următoarea comandă:
Descarcă aspnetcore-runtime-6.0.1-linux-arm.tar.gz și decomprimă-l cu următoarea comandă:
Pentru a crea o legătură soft, comanda este următoarea:
În acest moment, mediul de rulare necesar pentru site-ul ASP.NET Core este instalat, iar timpul de execuție instalat este verificat, așa cum se vede în figura de mai jos:
Serviciul Dinamic de Nume de Domenii DDNS
Apelează interfața DNSPod pentru a implementa serviciul dinamic de nume de domeniu DDNS, document de interfață:Autentificarea cu hyperlink este vizibilă.
Creează un nou proiect MVC ASP.NET Core 6 folosind VS 2022, creează un nou fișier DNSPodOptions.cs pentru a configura parametrii necesari interfeței de invocare, după cum urmează:
appsettings.json Adaugă următoarea configurație:
Modifică fișierul Program.cs pentru a mapa informațiile de configurare la clasa DNSPodOptions, iar codul este următorul:
Creează un nou fișier DDNSWorker.cs, creează un serviciu de fundal, obține o adresă IP o dată pe minut și apelează interfața DNSPod pentru a actualiza rezoluția numelui de domeniu dacă adresa IP se schimbă. (Notă:Dacă mai mult de 5 cereri de modificare a înregistrărilor fără nicio modificare sunt trimise în decurs de 1 oră, înregistrările vor fi blocate de sistem timp de 1 oră și nu vor mai putea fi modificate。 De exemplu, valoarea originală a înregistrării este deja 1.1.1.1, iar noua cerere necesită de asemenea schimbarea acesteia în 1.1.1.1. )
Codul este următorul:
Modificați fișierul Program.cs și înregistrați serviciul backend cu următorul cod:
Codul Program.cs complet este următorul:
Depanorul poate chema interfața DNSPod în mod normal, după cum urmează:
Wake On LAN
Wake-on-LAN este prescurtat WOL sau WoL, care este tradus în principal în chineză ca "trezire online" și tehnologie "trezire la distanță". WOL este o tehnologie și este, de asemenea, specificația acestei tehnologii, iar efectul său este de a permite unui calculator care a intrat într-o stare de latentă sau oprire să emită ordine către el prin celălalt capăt al rețelei locale (în principal Ethernet), astfel încât să se trezească din hibernare, să revină la starea de funcționare sau să comute de la starea de oprire la cea de boot. În plus, tehnologiile legate de WOL includ și mecanisme de control de la distanță, cum ar fi oprirea la distanță și repornirea de la distanță.
Modifică controlerul HomeController și adaugă interfața Wake-on-Network, codul este următorul:
Editează pagina Index.cshtml, adaugă caseta și butonul de introducere pentru adresa MAC și folosește Ajax pentru a chema interfața, codul este următorul:
Începe proiectul așa cum se arată mai jos:
Desfășurat pe Raspberry Pi
Folosind VS 2022 pentru a lansa un proiect, încărcați pachetul de lansare în folderul /home/pi/wol al Raspberry Pi, așa cum se arată mai jos:
Creează un nou fișier nbddns.service sub folderul /etc/systemd/system și înregistrează proiectul ca serviciu Linux, după cum urmează:
Pornește serviciul nbddns și setează bootul să înceapă pornirea automată cu următoarea comandă:
Vizualizați starea serviciului așa cum este prezentată în următoarea figură:
În final, în setările routeruluiCartografierea porturilor, și apoi acces prin numele de domeniu și portul extranet mapat, telefonul meuFolosiți rețele 4GdirectPoți accesa ASP.NET aplicații Core implementate deasupra Raspberry Pi-ului, așa cum se arată în figura de mai jos:
(Sfârșit)
|