domingo, 24 de julho de 2022

Dica: Acessando remotamente o NextCloud sem precisar abrir portas do roteador!

Pessoal,


Descobri um serviço bem interessante para conseguir acessar remotamente um serviço rodando em nosso servidor sem precisar de IP fixo ou abrir portas no roteador.

Além disso, vai um macete para instalar o NextCloud do jeito mais fácil que encontrei.

Pra começar, precisaremos de uma máquina para o servidor. No meu caso, criei uma para teste dentro do Proxmox rodando o Ubuntu Server (tem vários posts aqui no blog sobre Ubuntu Server: veja aqui).

Bom, criada a VM e instalado o Ubuntu, dê o comando abaixo para instalar o NextCloud:

sudo snap install nextcloud


Após algum tempo, menos que um minuto, dever receber uma resposta como essa no final:

nextcloud 24.0.1snap1 from Nextcloud installed


O NextCloud está instalado na sua máquina! Fácil!

Para acessar, digite o endereço da VM no browser. Se não souber, digite:

# hostname -I

192.168.1.34


Pronto! Entre no seu NextCloud e divirta-se.

Quer mais? Então vamos habilitar o NextCloud para acessar https.

Primeiro digite: 

# sudo nextcloud.enable-https self-signed


E você deve receber a resposta: 

Generating key and self-signed certificate... done

Restarting apache... done


Agora vamos habilitar o NextCloud a permitir o acesso proveniente de fora da rede local. Primeiro vamos acessar o arquivo de configuração com:

# sudo nano /var/snap/nextcloud/current/nextcloud/config/config.php


Agora procure a linha no arquivo a linha de "trusted_domains":


E troque o endereço aí dentro por um asterisco. Deve ficar assim:


Agora vá ao site https://ngrok.com e faça seu cadastro gratuito. Esse site cria um túnel entre o terminal que você está acessando e o seu computador. Depois, para instalar o serviço no servidor, use o comando:

# sudo snap install ngrok


E você deverá receber uma mensagem como essa se tudo der certo:

ngrok (v3/stable) 3.0.6 from Kyle Wenholz (kyle-ngrok) installed


Agora tem uma pegadinha: para instalar a configuração do Ngrok, você tem que estar no diretório raiz do servidor. Se estiver em outra pasta, receberá uma mensagem de erro. Na página do serviço, após seu cadastro, haverá um link com comando para a instalação. Essa senha muda para cada cadastro e para cada serviço instalado. Aqui o comando para instalar foi:            
E a resposta foi:

Authtoken saved to configuration file: /root/snap/ngrok/79/.config/ngrok/ngrok.yml


Por último, vamos configurar por onde o ngrok vai acessar o NextCloud:

# ngrok http 443


Pronto. Ou quase. Essa última linha direciona o acesso externo para a porta 443 do servidor. Como a nossa conta no Ngrok é gratuita, temos esse endereço feio aqui embaixo (no campo Web Interface)


Digitando esse endereço no navegador, de qualquer browser em qualquer lugar, você acessará seu NextCloud neste servidor.

Assim, se você tiver um docker rodando em outro servidor com acesso por alguma porta específica, basta instalar o Ngrok naquele servidor e configura a porta dele (ao invés da 443) e acessar! Show!

Um detalhe é que ao dar o comando para criar o túnel (esse ngrok http 443), uma janela é aberta (essa figura aí de cima) e ela deverá ficar aberta durante todo o funcionamento do túnel

 - se você sair com da janela com Control+C, o túnel será fechado e seu serviço cairá;
 - se você simplesmente fechar a janela, perderá o controle do túnel (a interface web no site do serviço só permite fechar o túnel na versão paga);
 - para você ter novamente acesso ao controle do túnel, terá que dar o comando: killall ngrok  para fechar o túnel e recriá-lo novamente com ngrok http 443 , mas endereço do túnel será alterado.

Última dica do dia:

Como foi visto, aqui sairá um endereço feio, difícil para lembrar. Para facilitar, use um encurtador de link (já falei disso aqui e aqui). O endereço até pode não ser bonito também, mas será mais curto e mais fácil de lembrar...

Outra opção é criar uma conta no DuckDNS e fazer como eu expliquei aqui. Depois de criar a conta no DuckDNS e ativar o serviço para atualizar seu IP no serviço deles, é fundamental corrigir o trusted_domains (como explicado aí em cima) e autorizar o NextCloud a acessar o https (também explicado aí para cima).

Por hoje é isso!

Nenhum comentário:

Postar um comentário