Configuração do Blazor Server para Acesso em Rede Local no Linux

Quando uma aplicação Blazor Server é iniciada e exibe a mensagem de escuta em localhost, ela está acessível apenas na máquina local. O localhost é um nome de host especial que aponta sempre para o computador local, não respondendo a pedidos de rede vindos de outros dispositivos.

Para permitir que a aplicação seja acessível na rede local, é necessário configurá-la para ouvir em todas as interfaces de rede disponíveis. Isto envolve ajustar a configuração do servidor Kestrel para se ligar a 0.0.0.0 (todos os endereços IPv4) ou [::] (todos os endereços IPv6), em vez de apenas localhost.

Procedimento para configurar o Kestrel:

  1. Alterar as definições da aplicação:
    No ficheiro appsettings.json, adicione ou modifique a secção do Kestrel para usar um endereço genérico: ``` { "Kestrel": { "Endpoints": { "Http": { "Url": "http://0.0.0.0:8080" } } } }

    
    Para incluir suporte a HTTP e HTTPS, utilize esta configuração: ```
    {
      "Kestrel": {
        "Endpoints": {
          "Http": {
            "Url": "http://0.0.0.0:8080"
          },
          "Https": {
            "Url": "https://0.0.0.0:8443",
            "Certificate": {
              "Path": "caminho/para/certificado.pfx",
              "Password": "senha_do_certificado"
            }
          }
        }
      }
    }
    
  2. Configuração via código:
    Alternativamente, configure o Kestrel diretamente no código-fonte, como no ficheiro Program.cs: ``` using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Hosting;

    public class Programa { public static void Main(string[] args) { IniciarHost(args).Build().Run(); }

     public static IHostBuilder IniciarHost(string[] args) =>
         Host.CreateDefaultBuilder(args)
             .ConfigureWebHostDefaults(construtorWeb =>
             {
                 construtorWeb.UseKestrel(opcoes =>
                 {
                     opcoes.ListenAnyIP(8080);
                     // Para ativar HTTPS, descomente as linhas abaixo:
                     // opcoes.ListenAnyIP(8443, opcoesEscuta =>
                     // {
                     //     opcoesEscuta.UseHttps(httpsOpcoes =>
                     //     {
                     //         httpsOpcoes.SslServerCertificate = new X509Certificate2("caminho/para/certificado.pfx", "senha_do_certificado");
                     //     });
                     // });
                 })
                 .UseStartup<Startup>();
             });
    

    }

  3. Reiniciar a aplicação:
    Após efetuar as alterações, reinicie a aplicação Blazor Server para aplicar as novas configurações.

  4. Ajustar regras de firewall:
    Assegure-se de que o firewall do servidor permite tráfego na porta escolhida (por exemplo, 8080).

  5. Testar o acesso:
    Noutro computador na rede local, aceda à aplicação usando o endereço IP do servidor e a porta configurada. Exemplo: se o IP for 192.168.1.100, navegue para http://192.168.1.100:8080.

Se a aplicação for exposta na internet ou lidar com dados sensíveis, é altamente recomendável utiliazr HTTPS para proteger a transmissão de dados. Verifique também as configurações de rede e firewall para evitar acessos não autorizados.

Tags: Blazor Linux Kestrel ASP.NET Core configuração de rede

Publicado em 6-15 20:48 por Thomas