Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 14475|Resposta: 4

[Fonte] [Operação Prática] ASP.NET Core 6 implantado no ARM Raspberry Pi para implementar DDNS e Wake-on-Network

[Copiar link]
Publicado em 09/03/2022 22:36:53 | | | |
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:

O Raspberry Pi 3B (Raspberry Pi 3B) é instalado com o sistema operacional Raspberry Pi
https://www.itsvse.com/thread-10052-1-1.html

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)





Anterior:ASP.NET rota de endpoint Core (XI) adiciona middleware para exibir todos os serviços DI
Próximo:Linux ssh: comando não encontrado
Publicado em 10/03/2022 11:16:19 |
Pode-se ver que muita cinza foi consumida
Publicado em 12/03/2022 15:17:50 |
Venha aprender de novo
 Senhorio| Publicado em 23/09/2023 09:25:26 |
Linux systemd service manager explicado em detalhes
https://www.itsvse.com/thread-10178-1-1.html
 Senhorio| Publicado em 18/06/2024 13:06:36 |
ASP.NET Core (dezenove) usa o BackgroundService para executar tarefas em segundo plano
https://www.itsvse.com/thread-10591-1-1.html
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com