Tenho um Raspberry Pi 3B (arquitetura Arm 32-bit do Raspberry Pi 3B) em casa, e tenho comido poeira em casa, porque programas .NET Core podem ser multiplataforma, então vou escrever um site para implantar no Raspberry Pi. A banda larga doméstica tem um endereço IP público, mas o endereço IP muda toda vez que o roteador for reiniciado, e o DDNS gratuito do roteador ASUS não é muito fácil de usar (o IP residencial mudou, e a resolução do nome de domínio não entrou em vigor a tempo). Tenho um desktop DELL e um servidor EMC DELL em casa, então prepare-se para escrever um serviço DDNS e uma ferramenta Wake-on-the-Internet com ASP.NET Core.
Com DDNS, você podeObtenha o endereço IP da Internet em casa a tempo, usando a função Wake-on-Network é possívelAcordar meu computador desktop DELL, o que é conveniente para consultar informações em casa.
Sites escritos usando ASP.NET Core 6 são implantados no Raspberry PiEle está funcionando de forma constante há mais de 3 meses, sem problemas.
Instale o runtime do AspNetCore
Primeiro, o Raspberry Pi precisa ser instalado com o sistema Raspberry Pi OS, e o tutorial é o seguinte:
Depois, instale o AspNetCore Runtimes sobre o Raspberry Pi, faça login no host do Raspberry Pi usando SSH e useSudo -IMude para a root e crie uma pasta /usr/dotnet com o seguinte comando:
Baixe aspnetcore-runtime-6.0.1-linux-arm.tar.gz e descompacte com o seguinte comando:
Para criar um link suave, o comando é o seguinte:
Neste ponto, o ambiente de execução exigido pelo site ASP.NET Core é instalado, e o tempo de execução instalado é verificado, como mostrado na figura abaixo:
Serviço Dinâmico de Nomes de Domínio DDNS
Chame a interface DNSPod para implementar o serviço dinâmico de nomes de domínio DDNS, documento de interface:O login do hiperlink está visível.
Crie um novo projeto MVC ASP.NET Core 6 usando VS 2022, crie um novo arquivo DNSPodOptions.cs para configurar os parâmetros necessários para a interface de invocação, conforme segue:
appsettings.json Adicione a seguinte configuração:
Modifique o arquivo Program.cs para mapear as informações de configuração para a classe DNSPodOptions, o código é o seguinte:
Crie um novo arquivo DDNSWorker.cs, crie um serviço em segundo plano, obtenha um endereço IP a cada minuto e chame a interface DNSPod para atualizar a resolução do nome de domínio caso o endereço IP mude. (Nota:Se mais de 5 solicitações para modificar registros sem nenhuma alteração forem enviadas em até 1 hora, os registros serão bloqueados pelo sistema por 1 hora e não poderão ser modificados novamente。 Por exemplo, o valor original do registro já é 1.1.1.1, e a nova solicitação também exige que ele seja alterado para 1.1.1.1. )
O código é o seguinte:
Modifique o arquivo Program.cs e registre o serviço de backend com o seguinte código:
O código completo de Program.cs é o seguinte:
O depurador pode chamar a interface DNSPod normalmente, da seguinte forma:
Wake On LAN
Wake-on-LAN é abreviado como WOL ou WoL, que é geralmente traduzido para o chinês como "despertar online" e tecnologia "despertar remoto". WOL é uma tecnologia, e também é a especificação dessa tecnologia, e seu efeito é permitir que um computador que entrou em estado dormente ou desligado emita ordens para ele através da outra extremidade da rede local (principalmente Ethernet), de modo que ele acorde da hibernação, volte ao estado operacional ou mude do estado de desligamento para o estado de inicialização. Além disso, tecnologias relacionadas ao WOL também incluem mecanismos de controle remoto, como desligamento remoto e reinício remoto.
Modifique o controlador HomeController e adicione a interface Wake-on-Network, o código é o seguinte:
Edite a página Index.cshtml, adicione a caixa e o botão de entrada do endereço MAC, e use o Ajax para chamar a interface, o código é o seguinte:
Comece o projeto conforme mostrado abaixo:
Implantado no Raspberry Pi
Usando o VS 2022 para lançar um projeto, envie o pacote de lançamento para a pasta /home/pi/wol do Raspberry Pi, conforme mostrado abaixo:
Crie um novo arquivo nbddns.service na pasta /etc/systemd/system e registre o projeto como um serviço Linux, da seguinte forma:
Inicie o serviço nbddns e configure o boot para iniciar o início automático com o seguinte comando:
Veja o status do serviço conforme mostrado na figura a seguir:
Por fim, nas configurações do roteadorMapeamento de portas, e então acesso pelo nome de domínio e pela porta extranet mapeada, meu celularUse redes 4GdirectoVocê pode acessar ASP.NET aplicativos Core implantados sobre o Raspberry Pi, como mostrado na figura abaixo:
(Fim)
|