У мене вдома є Raspberry Pi 3B (архітектура Raspberry Pi 3B Arm 32-bit), і я вдома постійно пилюся, бо програми .NET Core можуть бути кросплатформенними, тому я збираюся написати сайт для розгортання на Raspberry Pi. Домашній широкосмуговий інтернет має публічну IP-адресу, але IP-адреса змінюється щоразу при перезавантаженні маршрутизатора, а безкоштовний DDNS ASUS-роутера не дуже простий у використанні (домашня IP змінилася, і розв'язання доменного імені не набуло чинності вчасно). У мене вдома є настільний комп'ютер DELL і EMC сервер DELL, тож готуйтеся писати сервіс DDNS і інструмент Wake-on-the-Internet з ASP.NET Core.
З DDNS ви можетеВчасно отримайте IP-адресу Інтернету вдома, можливо за допомогою функції Wake-on-NetworkРозбудіть мій настільний комп'ютер DELL, що зручно для консультації інформації вдома.
Сайти, написані ASP.NET Core 6, розгортаються на Raspberry PiВін працює стабільно вже понад 3 місяці, без жодних проблем.
Встановити AspNetCore runtime
По-перше, Raspberry Pi потрібно встановити на систему Raspberry Pi OS, а навчальний посібник виглядає так:
Потім встановіть AspNetCore Runtime поверх Raspberry Pi, увійдіть на хост Raspberry Pi через SSH і використовуйте йогоsudo -iПереключіться на 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-адреса зміниться. (Примітка:Якщо протягом 1 години подано більше 5 запитів на зміну записів без змін, записи будуть заблоковані системою на 1 годину і не дозволять їх знову змінювати。 Наприклад, початкове значення запису вже дорівнює 1.1.1.1, а новий запит також вимагає зміни на 1.1.1.1. )
Код виглядає так:
Модифікуйте Program.cs файл і зареєструйте бекенд-сервіс із наступним кодом:
Повний код Program.cs виглядає так:
Відлагоджувач може викликати інтерфейс DNSPod звичайним чином, наступним чином:
Wake On LAN
Wake-on-LAN скорочено WOL або WoL, що переважно перекладається китайською як «онлайн-пробудження» та «технологія віддаленого пробудження». 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 і встановіть завантаження на автоматичний запуск за допомогою наступної команди:
Перегляньте статус сервісу, як показано на наступному рисунку:
Нарешті, у налаштуваннях роутераКартографування портів, а потім доступ через доменне ім'я і відкладений екстранет-порт, мій телефонВикористання мереж 4GпрямийВи можете отримати доступ до ASP.NET Core додатків, розгорнутих поверх Raspberry Pi, як показано на рисунку нижче:
(Кінець)
|