Acesso externo direto HTTPS: DuckDNS

Então você está em uma rede com NAT.

Quando você fala em desbloqueio de portas, normalmente eles entendem como desbloqueio para sistema de câmeras. Acho você pode usar esse termo também, no meu caso não precisou pedir porta específica, muito menos IP, o redirecionamento de ip/porta você fará no seu router.

Veja como foi no meu caso:

Agora não sei se é questão de sorte, tem gente precisou registrar reclamação para conseguir, eu não precisei. Caso você não consiga direto com sua operadora, tente via https://www.consumidor.gov.br ou ANATEL (pode usar como referência https://www.reddit.com/r/InternetBrasil/comments/d062mg/graças_ao_rinternetbrasil_resolvi_problema_com/) ou pesquise na internet sobre como remover CGNAT (umas das formas como é conhecido) ou algum termo semelhante, há bastante casos na internet.

Primeiro passo é isso, esse é o principal.
[]

Consegui depois de uma briga feia com o provedor, contato com a ouvidoria, e me alterar bastante.
Derrubavam a ligação, enrolavam, faziam de tudo, menos liberar a porta.
Ai um conseguiu, disse q estavam liberando a porta mas nao colocavam ip publico, entao nao dava acesso, vai saber

mas agora ficou perfeito

valeu, muito obrigado pela ajuda

e muito obrigado pelo post, salvou aqui

Show de bola! que bom que conseguiu!

Olá. Eu estava com um problema de não conseguir acessar o HA internamente via app, após instalar o duckdns e a integração manual via skill da Alexa. Gostaria de relatar como consegui resolver o problema e acessar pelo IP interno(inclusive via app). O problema se dava ao instalar somente o duckdns (sem nginx), assim sendo obrigado a acessar internamente via https, que o app não está suportando. Segui a segunda parte deste tutorial aqui sobre o duckdns, instalando o duckdns e o NGINX exatamente conforme descrito. Apenas adicionei mais um redirecionamento de portas no modem. No tutorial diz pra adicionar interno 443 e externo 8123. Adicionei outra: interno 443 e externo 8443. No meu caso usei a 8443 para poder integrar a Alexa, pois minha porta 443 é bloqueada pela Net Claro. Talvez o primeiro redirecionamento não houvesse necessidade, mas agora tenho acesso externo pela 8443 e 8123 via duckdns.
E para Alexa funcionar, seguindo exatamente o tutorial do fórum para criar skill ( Tenha seu Home Assistant na Alexa - Manual ) , onde coloca os seus dados, colocar a porta 8443. Ex: https://xxxx.duckdns.org:8443. Coloquei nos 3 locais que pedem (base_url da aws e nos dois campos do account linking do alexa console adicionando /auth/… conforme tutorial).
Assim, depois de muita tentativa e erro, consegui integrar Alexa, acessar internamente o HA com http://ip:8123 e externamente via https://xxx.duckdns.org:8443 ou 8123, tanto no navegador quanto no app, sem problemas.

3 Likes

Boa tarde Pessoal !
eu fiz o port forward porem quando testo ele não libera, eu tenho um roteador wi fi e dele vai um cabo para o router wi fi da minha operadora.
o que pode ser ?

Estou na mesma situação que vc… ja tentei de tudo o que achei por aqui.
Veja como esta minha situação:
O router da minha operadora esta com o DHCP desabilitado e com isso tenho outro router principal que vai logo após o router de minha operadora e com isso esse novo router é quem distribui os IP’s.

Esse meu router é um Xiaomi Ax1800, se alguem tiver esse modelo e esta com acesso externo, me de uma dica de como fazer para conseguir esse acesso.

Vlw

Uma dica interessante q acho q deveria ate ficar fixa no post:

usava o esquema do DUCKDNS + NGINX no provedor AmericaNet
mas mudei pra ClaroFibra e não funcionava de jeito nenhum
ate que resolvi usar o seguinte endereço pra acessar externo:

185.216.153.216:443

inventei o ip pra demonstar, mas seria o seu IPv4 seguido de :443
vc pode verificar o seu acessando o site:
https://www.meuip.com.br

feito isso, acesso normal externamente por este endereço
e no app do HA, só alterei o endereço de ip externo pra 185.216.153.216:443 e funciona de boa.

sensacional, deu muito certo aqui. Agora partiu para Alexa Actions :slight_smile:

Dois tutoriais atualizados e com foco em cada forma de realizar o acesso externo:

Utilizando Duck DNS + NGINX:

Utilizando o Home Assistant Cloud (Nabu Casa):

Este tutorial mostra como configurar o acesso externo com HTTPS e manter o acesso interno com HTTP (pelo navegador e aplicativo).

Isso resolve um erro comum no aplicativo que acontecem com muitos, que é o não reconhecimento dos certificados SSL gerados para o endereço Duck DNS quanto está acessando via rede local prejudicando o acesso pelo aplicativo e a atualização dos sensores do smartphone quando conectado na rede local.


1) Verificando se você está fora de uma rede CGNAT:

ATENÇÃO: Caso os IPs do item 1 forem diferentes este tutorial NÃO IRÁ FUNCIONAR PARA VOCÊ devido o seu provedor de internet usar CGNAT (entenda mais aqui).


2. Criando um domínio do Duck DNS:


3) Redirecionando a porta no seu modem:

Esse procedimento varia de acordo com o modelo do modem, as principais informações são:

  • Protocolo: TCP

  • Porta Externa: 8443

  • Porta Interna: 443

  • Endereço IP Interno: 192.168.1.55 (alterar para o endereço IP do seu servidor do home assistant).

    Segue um exemplo de configuração no modem Askey utilizado pela VIVO (isso vai mudar de acordo com cada roteador), mas a lógica é a mesma: redirecionar a porta 8443 para a porta 443 do IP do seu Home Assistant.


4) Instalando e configurando o DuckDNS:

  • a) Instalação: Acesse a Add-on Store no Supervisor e localize o Duck DNS, clique nele e depois no botão instalar.
    image

  • b) Configuração: Acesse a guia Configurações do Duck DNS e substitua pelo código abaixo:

    Código:

     lets_encrypt:
      accept_terms: true
      certfile: fullchain.pem
      keyfile: privkey.pem
      algo: secp384r1
     token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
     domains:
       - zzzzzzzz.duckdns.org
     aliases: []
     seconds: 300
    

    Substitua o token e atualize o domínio com as informações do item 2.

  • c) Reinicie o add-on Duck DNS.


5) Instalando e Configurando o NGINX Home Assistant SSL proxy:

  • a) Instalação: Acesse a Add-on Store no Supervisor e localize o NGINX Home Assistant SSL proxy, clique nele e depois no botão instalar:

  • b) Configuração: Acesse a guia Configurações do NGINX Home Assistant SSL proxy e faça as seguintes alterações:

    1. Altere o código incluindo o domínio do Duck DNS criado no item 2:
     domain: dominio.duckdns.org
     certfile: fullchain.pem
     keyfile: privkey.pem
     hsts: max-age=31536000; includeSubDomains
     cloudflare: false
     customize:
       active: false
       default: nginx_proxy_default*.conf
    servers: nginx_proxy/*.conf
    
    1. Preencha a porta 443 na configuração de rede.


6) Alterando as configurações do Home Asssistant:

  • a) Remova as linhas abaixo do seu arquivo de configuração (config/configuration.yaml) se elas existirem:

    http:
      ssl_certificate: /ssl/fullchain.pem
      ssl_key: /ssl/privkey.pem
    
  • b) Adicione as seguintes linhas ao seu arquivo de configuração (config/configuration.yaml):

    http:
      use_x_forwarded_for: true
      trusted_proxies:
        - 172.30.33.0/24
        - 192.168.0.0/16 #Altere os primeiros dois números para os do endereço IP da sua rede (192 e 168).
    
  • c) Configure as URL interna e externas de acesso ao seu Home Assistant por uma das opções a seguir:

    • Opção 1: Inclua as informação pela interface em Configurações > Geral, alterando o endereço IP do seu Home Assistant e o domínio do seu Duck DNS):

      image

    • Opção 2: Adicione as seguintes linhas ao seu arquivo de configuração (config/configuration.uaml), alterando o endereço IP do seu Home Assistant e o domínio do seu Duck DNS):

      homeassistant:
        internal_url: "http://192.168.1.55:8123"
        external_url: "https://dominio.duckdns.org:8443"
      

7) Reinicie o Home Assistant.

Reinicie o Home Assitant para as configurações entrarem em vigor.


8) Configurando o aplicativo:

Configure as URLs de acesso do aplicativo e as redes wifi:


8) Testes de verificação:

  1. Acesse o Home Assistant pela sua rede local no navegador:

    Não deve apresentar mensagem de erro de certificado SSL.

  2. Acesse o Home Assistant externamente no navegador:

  3. Acesse o Home Assistant pela sua rede local através do aplicativo do celular:

    • Usar HTTP e a porta 8123.
    • URL a ser utilizada: http://192.168.1.55:8123/ (alterar para o IP do seu Home Assistant)
    • Configurar redes wifi conforme item 7.

    Não deve apresentar mensagem de erro de certificado SSL.

  4. Acesse o Home Assistant externamente através do aplicativo do celular:


9) URL para utilização em integrações externas (exeplo: Alexa, Google, etc):

2 Likes

Douglas, vou por o seu tutorial junto do outro sem o NGINX, acho que fica melhor concentrar tudo de acesso externo em um lugar só!

Adicionei o tutorial do Douglas na postagem inicial!

Por favor só falta isso para ficar tudo certo, onde insiro essa informação.
Pq agora localmente consigo acessar pelo HTTP, mas remoto tbm só acessa por HTTP.
O acesso remoto via HTTPS dá erro.

Pessoal, vocês acham seguro deixar habilitado esse acesso externo?

1 Like

Droga, a porcaria da Predialnet tem CGNAT! :rage:

Existe tutorial aqui que resolve essa questão do CGNAT + SSL.
O tutorial foi feito pelo @ariel_leventhal.

Minha provedora trabalha em CGNAT, mas falei com o suporte avançando e conseguiram redirecionar meu IP do HA ao um IP PUBLICO porta: 1003, consigo acessar normalmente fora de casa, mas só consigo acessar via HTTP, consigo usar o DuckDNS para acessar o IP PUBLICO e nesse caso como faço ?

1 Like

@Victorsousa O duckdns é um serviço de dns dinâmico basicamente ele resolve problema de quem não tem cgnat mas tem ip dinâmico (tem ip público mas ele fica trocando). Se vc já consegue acessar pelo seu ip público imagino que esse ip seja estático então o duckdns não teria função nenhuma no seu caso. O que você precisa é de um certificado ssl pra usar HTTPS que você pode fazer usando o addon let’s encrypt. Sim o addon do duckdns tem já let’s encrypt embutido mas se seu ip é estático não tem pq usar o duckdns, so let’s encrypt a parte já resolve. Além disso um aviso se vc pretende usar Alexa vc não vai conseguir assim pois precisa uswr porta 443 ou 8443. Então se for usar Alexa melhor fazer acesso remoto por argo tunnels que funciona em cgnat.

Segue o link do argo tunnels:

1 Like

Boa tarde, preciso de uma ajuda dos experts!!
Estava no passo 6 - configurando o encaminhamento de portas - quando a energia caiu e o raspberry reiniciou. Agora não consigo acessar mais ele por nada… quando eu coloco ip:8123 ele muda para https e não consigo acessar…
Alguém poderia ajudar??

aqui fiz o nat da porta e so uso https://meudominio.duckdns.org