Saya memiliki Raspberry Pi 3B (arsitektur Raspberry Pi 3B Arm 32-bit) di rumah, dan saya telah makan debu di rumah, karena program .NET Core dapat lintas platform, jadi saya akan menulis situs web untuk diterapkan di Raspberry Pi. Broadband rumah memiliki alamat IP publik, tetapi alamat IP akan berubah setiap kali router dihidupkan ulang, dan DDNS gratis dari router ASUS tidak terlalu mudah digunakan (IP rumah telah berubah, dan resolusi nama domain belum berlaku tepat waktu). Saya memiliki desktop DELL dan server DELL EMC di rumah, jadi bersiaplah untuk menulis layanan DDNS dan alat Wake-on-the-Internet dengan ASP.NET Core.
Dengan DDNS, Anda dapatDapatkan alamat IP Internet di rumah tepat waktu, menggunakan fungsi Wake-on-Network dimungkinkanBangunkan komputer desktop DELL saya, yang nyaman untuk berkonsultasi informasi di rumah.
Situs yang ditulis menggunakan ASP.NET Core 6 disebarkan di Raspberry PiItu telah berjalan dengan mantap selama lebih dari 3 bulan, tanpa masalah.
Menginstal runtime AspNetCore
Pertama, Raspberry Pi perlu diinstal dengan sistem OS Raspberry Pi, dan tutorialnya adalah sebagai berikut:
Kemudian instal AspNetCore Runtimes di atas Raspberry Pi, masuk ke host Raspberry Pi menggunakan SSH, dan gunakansudo -iBeralih ke root dan buat folder /usr/dotnet dengan perintah berikut:
Unduh aspnetcore-runtime-6.0.1-linux-arm.tar.gz dan unzip dengan perintah berikut:
Untuk membuat soft link, perintahnya adalah sebagai berikut:
Pada titik ini, lingkungan berjalan yang diperlukan oleh situs web Core ASP.NET diinstal, dan runtime yang diinstal diperiksa, seperti yang ditunjukkan pada gambar di bawah ini:
Layanan Nama Domain Dinamis DDNS
Panggil antarmuka DNSPod untuk mengimplementasikan layanan nama domain dinamis DDNS, dokumen antarmuka:Login hyperlink terlihat.
Buat proyek MVC baru ASP.NET Core 6 menggunakan VS 2022, buat file DNSPodOptions.cs baru untuk mengonfigurasi parameter yang diperlukan untuk antarmuka pemanggilan, sebagai berikut:
appsettings.json Tambahkan konfigurasi berikut:
Ubah file Program.cs untuk memetakan informasi konfigurasi ke kelas DNSPodOptions, kodenya adalah sebagai berikut:
Buat file DDNSWorker.cs baru, buat layanan latar belakang, dapatkan alamat IP satu menit sekali, dan panggil antarmuka DNSPod untuk memperbarui resolusi nama domain jika alamat IP berubah. (Catatan:Jika lebih dari 5 permintaan untuk memodifikasi catatan tanpa perubahan apa pun diajukan dalam waktu 1 jam, catatan akan dikunci oleh sistem selama 1 jam dan tidak akan diizinkan untuk dimodifikasi lagi。 Misalnya, nilai rekaman asli sudah 1.1.1.1, dan permintaan baru juga mengharuskannya diubah menjadi 1.1.1.1. )
Kodenya adalah sebagai berikut:
Ubah file Program.cs dan daftarkan layanan backend dengan kode berikut:
Kode Program.cs lengkap adalah sebagai berikut:
Debugger dapat memanggil antarmuka DNSPod secara normal, sebagai berikut:
Bangun Di LAN
Wake-on-LAN disingkat WOL atau WoL, yang sebagian besar diterjemahkan ke dalam bahasa Cina sebagai teknologi "bangun online" dan "bangun jarak jauh". WOL adalah teknologi, dan juga merupakan spesifikasi dari teknologi ini, dan efeknya adalah memungkinkan komputer yang telah memasuki keadaan tidak aktif atau mati untuk mengeluarkan perintah kepadanya melalui ujung lain dari jaringan area lokal (sebagian besar Ethernet), sehingga bangun dari hibernasi, melanjutkan ke status operasi, atau beralih dari status shutdown ke status boot. Selain itu, teknologi terkait WOL juga mencakup mekanisme kendali jarak jauh seperti shutdown jarak jauh dan restart jarak jauh.
Ubah pengontrol HomeController dan tambahkan antarmuka Wake-on-Network, kodenya adalah sebagai berikut:
Edit halaman Index.cshtml, tambahkan kotak input dan tombol alamat MAC, dan gunakan Ajax untuk memanggil antarmuka, kodenya adalah sebagai berikut:
Mulai proyek seperti yang ditunjukkan di bawah ini:
Digunakan di Raspberry Pi
Menggunakan VS 2022 untuk merilis proyek, unggah paket rilis ke folder /home/pi/wol Raspberry Pi, seperti yang ditunjukkan di bawah ini:
Buat file nbddns.service baru di bawah folder /etc/systemd/system dan daftarkan proyek sebagai layanan Linux, sebagai berikut:
Mulai layanan nbddns dan atur boot untuk memulai mulai otomatis dengan perintah berikut:
Lihat status layanan seperti yang ditunjukkan pada gambar berikut:
Terakhir, di pengaturan routerPemetaan port, dan kemudian akses melalui nama domain dan port ekstranet yang dipetakan, telepon sayaGunakan jaringan 4GlangsungAnda dapat mengakses aplikasi Core ASP.NET yang disebarkan di atas Raspberry Pi, seperti yang ditunjukkan pada gambar di bawah ini:
(Akhir)
|