Ho un Raspberry Pi 3B (architettura Arm 32-bit Raspberry Pi 3B) a casa, e sto mangiando polvere a casa, perché i programmi .NET Core possono essere multipiattaforma, quindi scriverò un sito web da distribuire su Raspberry Pi. La banda larga domestica ha un indirizzo IP pubblico, ma l'indirizzo IP cambia ogni volta che il router viene riavviato, e il DDNS gratuito del router ASUS non è molto facile da usare (l'IP di casa è cambiato e la risoluzione del nome di dominio non è stata effettiva in tempo). Ho un desktop DELL e un server EMC DELL a casa, quindi preparati a scrivere un servizio DDNS e uno strumento Wake-on-the-Internet con ASP.NET Core.
Con DDNS puoiOttieni l'indirizzo IP di Internet a casa in tempo, usando la funzione Wake-on-Network è possibileRisvegliare il mio computer desktop DELL, il che è comodo per consultare informazioni a casa.
I siti scritti con ASP.NET Core 6 sono distribuiti su Raspberry PiVa avanti in modo costante da più di 3 mesi, senza alcun problema.
Installa il runtime AspNetCore
Innanzitutto, il Raspberry Pi deve essere installato con il sistema operativo Raspberry Pi, e il tutorial è il seguente:
Poi installa i runtime AspNetCore sopra il Raspberry Pi, accedi all'host del Raspberry Pi usando SSH e usaloSudo -IPassa alla root e crea una cartella /usr/dotnet con il seguente comando:
Scarica aspnetcore-runtime-6.0.1-linux-arm.tar.gz e scomprimilo con il seguente comando:
Per creare un collegamento soft, il comando è il seguente:
A questo punto, l'ambiente di esecuzione richiesto dal sito Core ASP.NET viene installato e viene controllato il runtime installato, come mostrato nella figura sottostante:
Servizio Dinamico di Nomi di Dominio DDNS
Chiama l'interfaccia DNSPod per implementare il servizio dinamico di nomi di dominio DDNS, documento di interfaccia:Il login del link ipertestuale è visibile.
Crea un nuovo progetto MVC ASP.NET Core 6 usando VS 2022, crea un nuovo file DNSPodOptions.cs per configurare i parametri richiesti per l'interfaccia di invocazione, come segue:
appsettings.json Aggiungi la seguente configurazione:
Modifica il file Program.cs per mappare le informazioni di configurazione alla classe DNSPodOptions, il codice è il seguente:
Crea un nuovo file DDNSWorker.cs, crea un servizio in background, ottieni un indirizzo IP una volta al minuto e chiama l'interfaccia DNSPod per aggiornare la risoluzione del nome di dominio se l'indirizzo IP cambia. (Nota:Se vengono presentate più di 5 richieste di modifica dei record senza alcuna modifica entro 1 ora, i record verranno bloccati dal sistema per 1 ora e non potranno più essere modificati。 Ad esempio, il valore originale del record è già 1.1.1.1, e la nuova richiesta richiede anche che venga cambiato in 1.1.1.1. )
Il codice è il seguente:
Modifica il file Program.cs e registra il servizio backend con il seguente codice:
Il codice completo Program.cs è il seguente:
Il debugger può chiamare normalmente l'interfaccia DNSPod, come segue:
Sveglia su LAN
Wake-on-LAN è abbreviato come WOL o WoL, che viene tradotto principalmente in cinese come tecnologia "risveglio online" e "risveglio remoto". Il WOL è una tecnologia, ed è anche la specifica di questa tecnologia, e il suo effetto è permettere a un computer entrato in uno stato di dormienza o spegnimento di emettere ordini attraverso l'altra estremità della rete locale (principalmente Ethernet), così che si risvegli dall'ibernazione, riprenda allo stato operativo o passi dallo stato di spegnimento a quello di avvio. Inoltre, le tecnologie legate a WOL includono anche meccanismi di controllo remoto come lo spegnimento remoto e il riavvio remoto.
Modifica il controller HomeController e aggiungi l'interfaccia Wake-on-Network, il codice è il seguente:
Modifica la pagina Index.cshtml, aggiungi la casella e il pulsante di input dell'indirizzo MAC, e usa Ajax per chiamare l'interfaccia, il codice è il seguente:
Inizia il progetto come mostrato qui sotto:
Schierato sul Raspberry Pi
Utilizzando VS 2022 per rilasciare un progetto, carica il pacchetto di rilascio nella cartella /home/pi/wol del Raspberry Pi, come mostrato di seguito:
Crea un nuovo file nbddns.service sotto la cartella /etc/systemd/system e registra il progetto come servizio Linux, come segue:
Avvia il servizio nbddns e imposta l'avvio per avviare l'auto-start con il seguente comando:
Visualizza lo stato del servizio come mostrato nella figura seguente:
Infine, nelle impostazioni del routerMappatura delle porte, e poi accesso tramite il nome di dominio e la porta extranet mappata, il mio telefonoUsa reti 4GdirettoPuoi accedere alle ASP.NET app Core distribuite sopra il Raspberry Pi, come mostrato nella figura sottostante:
(Fine)
|