Έχω ένα Raspberry Pi 3B (αρχιτεκτονική Raspberry Pi 3B Arm 32-bit) στο σπίτι και τρώω σκόνη στο σπίτι, επειδή τα προγράμματα .NET Core μπορούν να είναι cross-platform, οπότε θα γράψω έναν ιστότοπο για ανάπτυξη στο Raspberry Pi. Η οικιακή ευρυζωνική σύνδεση έχει μια δημόσια διεύθυνση IP, αλλά η διεύθυνση IP θα αλλάζει κάθε φορά που γίνεται επανεκκίνηση του δρομολογητή και το δωρεάν DDNS του δρομολογητή ASUS δεν είναι πολύ εύκολο στη χρήση (η αρχική IP έχει αλλάξει και η ανάλυση του ονόματος τομέα δεν έχει τεθεί σε ισχύ εγκαίρως). Έχω έναν επιτραπέζιο υπολογιστή DELL και έναν διακομιστή DELL EMC στο σπίτι, οπότε ετοιμαστείτε να γράψετε μια υπηρεσία DDNS και ένα εργαλείο Wake-on-the-Internet με ASP.NET Core.
Με το DDNS, μπορείτεΛάβετε έγκαιρα τη διεύθυνση IP του Διαδικτύου στο σπίτι, είναι δυνατή η χρήση της λειτουργίας Wake-on-NetworkΑφύπνιση του επιτραπέζιου υπολογιστή DELL, το οποίο είναι βολικό για να συμβουλευτείτε πληροφορίες στο σπίτι.
Οι ιστότοποι που έχουν γραφτεί με χρήση ASP.NET Core 6 αναπτύσσονται στο Raspberry PiΛειτουργεί σταθερά για περισσότερο από 3 μήνες, χωρίς κανένα πρόβλημα.
Εγκαταστήστε το χρόνο εκτέλεσης AspNetCore
Αρχικά, το Raspberry Pi πρέπει να εγκατασταθεί με το σύστημα Raspberry Pi OS και το σεμινάριο έχει ως εξής:
Στη συνέχεια, εγκαταστήστε το AspNetCore Runtimes πάνω από το Raspberry Pi, συνδεθείτε στον κεντρικό υπολογιστή Raspberry Pi χρησιμοποιώντας SSH και χρησιμοποιήστε τοsudo -ιΜεταβείτε στο root και δημιουργήστε έναν φάκελο /usr/dotnet με την ακόλουθη εντολή:
Κατεβάστε aspnetcore-runtime-6.0.1-linux-arm.tar.gz και αποσυμπιέστε το με την ακόλουθη εντολή:
Για να δημιουργήσετε έναν μαλακό σύνδεσμο, η εντολή είναι η εξής:
Σε αυτό το σημείο, εγκαθίσταται το περιβάλλον λειτουργίας που απαιτείται από ASP.NET ιστότοπο Core και ελέγχεται ο εγκατεστημένος χρόνος εκτέλεσης, όπως φαίνεται στο παρακάτω σχήμα:
Υπηρεσία δυναμικών ονομάτων τομέα DDNS
Καλέστε τη διεπαφή DNSPod για να εφαρμόσετε την υπηρεσία δυναμικού ονόματος τομέα DDNS, έγγραφο διεπαφής:Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Δημιουργήστε ένα νέο έργο MVC ASP.NET Core 6 χρησιμοποιώντας το VS 2022, δημιουργήστε ένα νέο αρχείο DNSPodOptions.cs για να διαμορφώσετε τις παραμέτρους που απαιτούνται για τη διεπαφή κλήσης, ως εξής:
appsettings.json Προσθέστε την ακόλουθη διαμόρφωση:
Τροποποιήστε το αρχείο Program.cs για να αντιστοιχίσετε τις πληροφορίες διαμόρφωσης στην κλάση DNSPodOptions, ο κώδικας είναι ο εξής:
Δημιουργήστε ένα νέο αρχείο DDNSWorker.cs, δημιουργήστε μια υπηρεσία παρασκηνίου, αποκτήστε μια διεύθυνση IP μία φορά το λεπτό και καλέστε τη διεπαφή DNSPod για να ενημερώσετε την ανάλυση του ονόματος τομέα εάν αλλάξει η διεύθυνση IP. (Σημείωση:Εάν υποβληθούν περισσότερα από 5 αιτήματα τροποποίησης εγγραφών χωρίς αλλαγές εντός 1 ώρας, οι εγγραφές θα κλειδωθούν από το σύστημα για 1 ώρα και δεν θα επιτραπεί να τροποποιηθούν ξανά。 Για παράδειγμα, η αρχική τιμή εγγραφής είναι ήδη 1.1.1.1 και η νέα αίτηση απαιτεί επίσης την αλλαγή της σε 1.1.1.1. )
Ο κωδικός έχει ως εξής:
Τροποποιήστε το αρχείο Program.cs και καταχωρήστε την υπηρεσία υποστήριξης με τον ακόλουθο κώδικα:
Ο πλήρης κωδικός Program.cs έχει ως εξής:
Το πρόγραμμα εντοπισμού σφαλμάτων μπορεί να καλέσει τη διασύνδεση DNSPod κανονικά, ως εξής:
Αφύπνιση στο LAN
Το Wake-on-LAN συντομεύεται ως WOL ή WoL, το οποίο μεταφράζεται κυρίως στα κινέζικα ως τεχνολογία "online αφύπνισης" και "απομακρυσμένης αφύπνισης". Το WOL είναι μια τεχνολογία, και είναι επίσης η προδιαγραφή αυτής της τεχνολογίας, και το αποτέλεσμά της είναι να επιτρέπει σε έναν υπολογιστή που έχει εισέλθει σε κατάσταση αδράνειας ή τερματισμού λειτουργίας να του εκδίδει εντολές μέσω του άλλου άκρου του τοπικού δικτύου (κυρίως Ethernet), έτσι ώστε να ξυπνά από την κατάσταση αδρανοποίησης, να επανέρχεται σε κατάσταση λειτουργίας ή να μεταβαίνει από κατάσταση τερματισμού λειτουργίας σε κατάσταση εκκίνησης. Επιπλέον, οι τεχνολογίες που σχετίζονται με το WOL περιλαμβάνουν επίσης μηχανισμούς τηλεχειρισμού, όπως απομακρυσμένο τερματισμό λειτουργίας και απομακρυσμένη επανεκκίνηση.
Τροποποιήστε τον ελεγκτή HomeController και προσθέστε τη διεπαφή Wake-on-Network, ο κωδικός έχει ως εξής:
Επεξεργαστείτε τη σελίδα Index.cshtml, προσθέστε το πλαίσιο και το κουμπί εισαγωγής διεύθυνσης MAC και χρησιμοποιήστε το Ajax για να καλέσετε τη διεπαφή, ο κώδικας είναι ο εξής:
Ξεκινήστε το έργο όπως φαίνεται παρακάτω:
Αναπτύσσεται στο Raspberry Pi
Χρησιμοποιώντας το VS 2022 για την κυκλοφορία ενός έργου, ανεβάστε το πακέτο έκδοσης στο φάκελο /home/pi/wol του Raspberry Pi, όπως φαίνεται παρακάτω:
Δημιουργήστε ένα νέο αρχείο nbddns.service κάτω από το φάκελο /etc/systemd/system και καταχωρήστε το έργο ως υπηρεσία Linux, ως εξής:
Ξεκινήστε την υπηρεσία nbddns και ρυθμίστε την εκκίνηση να ξεκινά την αυτόματη εκκίνηση με την ακόλουθη εντολή:
Δείτε την κατάσταση της υπηρεσίας όπως φαίνεται στην παρακάτω εικόνα:
Τέλος, στις ρυθμίσεις του δρομολογητήΧαρτογράφηση λιμένωνκαι, στη συνέχεια, αποκτήστε πρόσβαση μέσω του ονόματος τομέα και της αντιστοιχισμένης θύρας extranet, My PhoneΧρησιμοποιήστε δίκτυα 4GάμεσοςΜπορείτε να αποκτήσετε πρόσβαση σε ASP.NET εφαρμογές Core που έχουν αναπτυχθεί πάνω από το Raspberry Pi, όπως φαίνεται στο παρακάτω σχήμα:
(Τέλος)
|