Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 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 9:25:26 |
Менеджер сервисов Linux systemd подробно объяснение
https://www.itsvse.com/thread-10178-1-1.html
 Хозяин| Опубликовано 18.06.2024 13:06:36 |
ASP.NET Core (nineteen) использует BackgroundService для выполнения фоновых задач
https://www.itsvse.com/thread-10591-1-1.html
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com