Expor um serviço local na Internet a partir do Ubuntu: Guia completo do encaminhamento de portas
Publié le 28 May 2025
- O problema: NAT e endereços privados
- Etapa 1: Identificar o seu endereço IP público
- Passo 2: Conheça o endereço IP local da sua máquina Ubuntu
- Passo 3: Configurar o encaminhamento de portas na sua box
- Etapa 4: Configuração do serviço no Ubuntu
- Passo 5: Configuração do firewall Ubuntu
- Etapa 6: Teste e validação
- Boas práticas e segurança
- Alternativas ao encaminhamento de portas
- Solução de problemas
- Conclusão
.\ _Tempo de leitura: 15 minutos
-
Pré-requisitos assumidos : conhecimento básico de Ubuntu, terminal, conceitos básicos de rede
-
Conceitos técnicos : NAT, encaminhamento de portas, firewall, proxy reverso
-
Comandos do sistema: utilização do terminal, configuração de rede
-
Seções avançadas : monitoramento, segurança, alternativas cloud
O problema: NAT e endereços privados
Por padrão, sua caixa de internet utiliza o NAT (Network Address Translation) para compartilhar um único endereço IP público entre todos os dispositivos da sua rede doméstica. Seus dispositivos locais utilizam endereços IP privados (192.168.x.x, 10.x.x.x, etc.) que não são roteáveis na Internet.
Quando você inicia um serviço em sua máquina Ubuntu (por exemplo, um servidor web na porta 8080), ele só é acessível a partir da sua rede local. Para torná-lo acessível a partir da Internet, precisamos configurar um redirecionamento de porta.
Etapa 1: Identificar o seu endereço IP público
Antes de tudo, vamos obter o endereço IP público da sua conexão à Internet :
# Plusieurs méthodes au choix
curl ifconfig.me
curl ipecho.net/plain
wget -qO- http://ipecho.net/plain
# Ou encore
curl -s checkip.amazonaws.com
Este endereço IP é aquele que os internautas usarão para acessar o seu serviço.
Passo 2: Conheça o endereço IP local da sua máquina Ubuntu
Sua máquina Ubuntu tem um endereço IP privado na sua rede local. Para saber:
# Afficher toutes les interfaces réseau
ip addr show
# Ou plus spécifiquement pour l'interface principale
ip route get 1.1.1.1 | awk '{print $7; exit}'
# Alternative avec hostname
hostname -I | awk '{print $1}'
Anota este endereço (por exemplo`192.168.1.100`), vamos precisar disso para a configuração.
Passo 3: Configurar o encaminhamento de portas na sua box
A configuração varia conforme o modelo da sua caixa, mas o princípio permanece o mesmo:
Acesso à interface de administração
Abra seu navegador e vá para a interface web da sua caixa:
-
Freebox:`192.168.1.1` ou
mafreebox.freebox.fr -
Livebox Orange:`192.168.1.1`
-
Caixa SFR :
192.168.1.1 -
Bbox Bouygues:`192.168.1.254`
Configuração da redireção
Procure a seção dedicada ao encaminhamento de portas (os nomes variam) :
-
Redirecionamento de portas
-
NAT/PAT
-
Encaminhamento de portas
-
Servidores de jogos
Crie uma nova regra com estes parâmetros :
| Campo | Valor |
|---|---|
Nome/Descrição |
Serviço Web Ubuntu" (ou outro nome explícito) |
Porta externa (ou porta pública) |
8080 |
Endereço IP interno |
O endereço IP da sua máquina Ubuntu (ex: 192.168.1.100) |
Porta interna (ou porta privada) |
8080 |
Protocolo |
TCP |
Estado |
ativado |
Etapa 4: Configuração do serviço no Ubuntu
Certifique-se de que seu serviço esteja escutando em todas as interfaces, não apenas no localhost:
# ✅ Correct : écoute sur toutes les interfaces
python3 -m http.server 8080 --bind 0.0.0.0
# ❌ Incorrect : écoute seulement en local
python3 -m http.server 8080 --bind 127.0.0.1
Para verificar se seu serviço está ouvindo corretamente :
# Vérifier les ports en écoute
sudo netstat -tlnp | grep :8080
# ou avec ss (plus moderne)
sudo ss -tlnp | grep :8080
Você deveria ver algo como`0.0.0.0:8080`e não`127.0.0.1:8080`.
Passo 5: Configuração do firewall Ubuntu
Ubuntu utiliza o UFW (Uncomplicated Firewall) por padrão. Verifique seu status e permita a porta, se necessário :
# Vérifier le statut du pare-feu
sudo ufw status
# Si le pare-feu est actif, autoriser le port 8080
sudo ufw allow 8080/tcp
# Ou plus spécifiquement pour un service web
sudo ufw allow 'Apache' # si vous utilisez Apache
sudo ufw allow 'Nginx Full' # si vous utilisez Nginx
Etapa 6: Teste e validação
Teste a partir da rede local
Primeiro, teste o acesso a partir de outra máquina da sua rede local :
# Remplacez par l'IP locale de votre machine Ubuntu
curl http://192.168.1.100:8080
Teste de fora
Agora, teste desde a Internet usando seu IP público :
# Remplacez par votre IP publique
curl http://VOTRE_IP_PUBLIQUE:8080
Você também pode usar ferramentas on-line como:
Boas práticas e segurança
Segurança básica
# Configurer fail2ban pour protéger contre les attaques par force brute
sudo apt update && sudo apt install fail2ban
# Limiter l'accès avec UFW (exemple : autoriser seulement certaines IP)
sudo ufw allow from 203.0.113.0/24 to any port 8080
Monitoramento de conexões
# Surveiller les connexions en temps réel
sudo netstat -an | grep :8080
# Logs des connexions (selon votre application)
sudo tail -f /var/log/nginx/access.log # pour Nginx
sudo journalctl -f -u your-service # pour un service systemd
Utilização de um proxy reverso
Para melhor segurança e flexibilidade, considere o uso de um proxy reverso como Nginx :
server {
listen 80;
server_name votre-domaine.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Alternativas ao encaminhamento de portas
Soluções em nuvem
-
ngroktúnel seguro temporário
-
Túnel Cloudflare: solução gratuita e segura
-
serveo.net: túnel SSH simples
# Exemple avec ngrok
ngrok http 8080
# Exemple avec serveo
ssh -R 80:localhost:8080 serveo.net
VPS e proxy reverso
Para uso profissional, considere usar um VPS com um proxy reverso apontando para sua infraestrutura local via VPN.
Solução de problemas
Problemas comuns
| Problema | Solução |
|---|---|
Serviço inacessível de fora |
Verifique a configuração do encaminhamento de portas e que o serviço esteja escutando em 0.0.0.0 |
Conexão recusada |
O serviço não está iniciado ou está escutando apenas em 127.0.0.1 |
Tempo limite de conexão |
Problema de firewall (box ou Ubuntu) ou encaminhamento de portas mal configurado |
IP público muda regularmente |
Configure um DNS dinâmico (DynDNS, No-IP, etc.) |
Depurar rede
# Tester la connectivité locale
telnet localhost 8080
# Tester depuis une autre machine du réseau
telnet 192.168.1.100 8080
# Vérifier les routes réseau
ip route show
# Analyser le trafic réseau
sudo tcpdump -i any port 8080
Conclusão
Expor um serviço local na Internet requer uma configuração cuidadosa do encaminhamento de portas, da segurança e do monitoramento. Embora essa abordagem seja perfeita para desenvolvimento ou projetos pessoais, considere as alternativas mais robustas (VPS, CDN, serviços de nuvem) para uso em produção.
O importante é sempre manter a segurança em mente: use senhas fortes, atualize regularmente seu sistema e monitore o acesso aos seus serviços expostos.
Não hesite em compartilhar suas experiências e perguntas nos comentários!