У меня дома есть 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, как показано на рисунке ниже:
(Конец)
|