Tengo una Raspberry Pi 3B (arquitectura Arm Raspberry Pi 3B de 32 bits) en casa, y he estado comiendo polvo en casa, porque los programas .NET Core pueden ser multiplataforma, así que voy a escribir una página web para desplegar en Raspberry Pi. La banda ancha doméstica tiene una dirección IP pública, pero esta cambia cada vez que se reinicia el router, y el DDNS gratuito del router ASUS no es muy fácil de usar (la IP de casa ha cambiado y la resolución del nombre de dominio no ha entrado en vigor a tiempo). Tengo un sobremesa DELL y un servidor EMC DELL en casa, así que prepárate para escribir un servicio DDNS y una herramienta Wake-on-the-Internet con ASP.NET Core.
Con DDNS, puedesConsigue la dirección IP de Internet en casa a tiempo, usando la función Wake-on-Network es posibleDespertar mi ordenador de sobremesa DELL, lo cual es cómodo para consultar información en casa.
Los sitios escritos usando ASP.NET Core 6 se despliegan en Raspberry PiHa estado funcionando de forma constante durante más de 3 meses, sin ningún problema.
Instalar el runtime de AspNetCore
Primero, la Raspberry Pi debe instalarse con el sistema operativo Raspberry Pi, y el tutorial es el siguiente:
Luego instala los runtimes de AspNetCore encima de la Raspberry Pi, inicia sesión en el host de la Raspberry Pi usando SSH y úsaloSudo -ICambia a root y crea una carpeta /usr/dotnet con el siguiente comando:
Descárgate aspnetcore-runtime-6.0.1-linux-arm.tar.gz y descomprime con el siguiente comando:
Para crear un enlace suave, el comando es el siguiente:
En este punto, se instala el entorno de ejecución requerido por ASP.NET sitio web Core y se comprueba el tiempo de ejecución instalado, como se muestra en la figura siguiente:
Servicio Dinámico de Nombres de Dominio DDNS
Llama a la interfaz DNSPod para implementar el servicio dinámico de nombres de dominio DDNS, documento de interfaz:El inicio de sesión del hipervínculo es visible.
Crea un nuevo proyecto MVC ASP.NET Core 6 usando VS 2022, crea un nuevo archivo DNSPodOptions.cs para configurar los parámetros necesarios para la interfaz de invocación, de la siguiente manera:
appsettings.json Añadir la siguiente configuración:
Modifica el archivo Program.cs para mapear la información de configuración a la clase DNSPodOptions, el código es el siguiente:
Crea un nuevo archivo DDNSWorker.cs, crea un servicio en segundo plano, obtén una dirección IP una vez por minuto y llama a la interfaz DNSPod para actualizar la resolución del nombre de dominio si la dirección IP cambia. (Nota:Si se envían más de 5 solicitudes para modificar registros sin ningún cambio en un plazo de 1 hora, los registros serán bloqueados por el sistema durante 1 hora y no se permitirá modificarse de nuevo。 Por ejemplo, el valor original del registro ya es 1.1.1.1, y la nueva solicitud también requiere que se cambie a 1.1.1.1. )
El código es el siguiente:
Modifica el archivo Program.cs y registra el servicio de backend con el siguiente código:
El código completo de Program.cs es el siguiente:
El depurador puede llamar a la interfaz DNSPod normalmente, de la siguiente manera:
Despertar en LAN
Wake-on-LAN se abrevia como WOL o WoL, que se traduce mayormente al chino como "activación en línea" y tecnología de "despertar remoto". WOL es una tecnología, y también es la especificación de esta tecnología, y su efecto es permitir que un ordenador que ha entrado en estado de inactividad o apagado le dé órdenes a través del otro extremo de la red local (principalmente Ethernet), de modo que despierte de la hibernación, vuelva a estado operativo o cambia del estado de apagado al estado de arranque. Además, las tecnologías relacionadas con WOL también incluyen mecanismos de control remoto como el apagado remoto y el reinicio remoto.
Modifica el controlador HomeController y añade la interfaz Wake-on-Network, el código es el siguiente:
Edita la página Index.cshtml, añade la caja de entrada y el botón de dirección MAC, y usa Ajax para llamar a la interfaz; el código es el siguiente:
Comienza el proyecto como se muestra a continuación:
Desplegado en la Raspberry Pi
Usando VS 2022 para lanzar un proyecto, sube el paquete de lanzamiento a la carpeta /home/pi/wol de la Raspberry Pi, como se muestra a continuación:
Crea un nuevo archivo nbddns.service bajo la carpeta /etc/systemd/system y registra el proyecto como un servicio Linux, de la siguiente manera:
Inicia el servicio nbddns y configura el arranque para iniciar el auto-inicio con el siguiente comando:
Consulte el estado del servicio tal como se muestra en la siguiente figura:
Por último, en la configuración del routerMapeo de puertos, y luego acceso a través del nombre de dominio y el puerto extranet mapeado, mi teléfonoUtilizar redes 4GdirectoPuedes acceder a ASP.NET aplicaciones Core desplegadas sobre la Raspberry Pi, como se muestra en la figura siguiente:
(Fin)
|