Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 14475|Відповідь: 4

[Джерело] [Практична операція] ASP.NET Core 6 розгорнуто на ARM Raspberry Pi для реалізації DDNS і Wake-on-Network

[Копіювати посилання]
Опубліковано 09.03.2022 22:36:53 | | | |
У мене вдома є 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, а навчальний посібник виглядає так:

Raspberry Pi 3B (Raspberry Pi 3B) встановлений разом із системою Raspberry Pi OS
https://www.itsvse.com/thread-10052-1-1.html

Потім встановіть 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, як показано на рисунку нижче:



(Кінець)





Попередній:ASP.NET Маршрут кінцевої точки Core (XI) додає проміжне програмне забезпечення для відображення всіх DI-сервісів
Наступний:Linux ssh: команда не знайдена
Опубліковано 10.03.2022 11:16:19 |
Видно, що було з'їдено багато попелу
Опубліковано 12.03.2022 15:17:50 |
Приходь і вчися знову
 Орендодавець| Опубліковано 23.09.2023 09:25:26 |
Менеджер сервісів Linux systemd детально пояснює
https://www.itsvse.com/thread-10178-1-1.html
 Орендодавець| Опубліковано 18.06.2024 13:06:36 |
ASP.NET Core (дев'ятнадцять) використовує Background Service для виконання фонових завдань
https://www.itsvse.com/thread-10591-1-1.html
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com