Quem sobe uma instância na Oracle Cloud Infrastructure (OCI) e tenta rodar uma aplicação web ou container customizado quase sempre bate no mesmo muro: você cria a regra de entrada no painel web, mas ao testar externamente a conexão morre em timeout ou é recusada.
A razão é simples: na OCI, a liberação de portas não depende apenas do painel da nuvem. O tráfego precisa passar por três barreiras distintas antes de chegar ao seu código.
1. As 3 camadas de bloqueio na rede da OCI#
Quando um cliente tenta se conectar ao seu servidor, o pacote passa por esta cadeia:
[Cliente Externo]
│
▼
1. Borda da Nuvem (VCN / Security Lists / NSG)
│
▼
2. Kernel do Linux (iptables / nftables / firewalld)
│
▼
3. Socket da Aplicação (Binding em 0.0.0.0 ou :::)
- Borda da Nuvem (VCN): Regras de Ingress na sub-rede (Security List) ou na interface de rede da máquina (NSG). Se faltar a regra aqui, o pacote é descartado antes de entrar no data center da VM.
- Kernel do Linux: Imagens oficiais da OCI (Ubuntu, Oracle Linux, RHEL) vêm com firewall ativo por padrão descartando conexões que não sejam SSH.
- Socket da Aplicação: O seu processo precisa escutar em
0.0.0.0(todas as interfaces). Se estiver escutando apenas em127.0.0.1, o Linux não aceitará requisições de fora.
2. Como liberar a porta sem deixar furos#
Passo 1: Liberar no painel da OCI (Security Lists)#
Com a recente atualização da interface do console Oracle Cloud (OCI), o menu de navegação e as opções de rede foram reorganizados. O caminho atualizado passo a passo é:
- Acessar Redes Virtuais: Abra o menu de navegação no canto superior esquerdo (menu hambúrguer), passe o cursor em Rede e clique em Redes virtuais na nuvem.

- Selecionar a sua VCN: Na listagem de redes do seu compartimento, clique no link da sua VCN ativa (por exemplo,
vcn-20240512-2324).

- Acessar Listas de Segurança: No menu lateral esquerdo da VCN (abaixo de Recursos), clique em Listas de Segurança e escolha a lista de segurança associada (normalmente a
Default Security List for vcn-...).

- Adicionar Regras de Entrada: Dentro da lista de segurança, selecione a aba Regras de segurança e clique no botão Adicionar Regras de Entrada (Ingress Rules).

No formulário de criação da regra de entrada, preencha os parâmetros:

- Sem Monitoramento de Estado (Stateless): Mantenha desmarcado por padrão (para tráfego normal com monitoramento de estado, onde os pacotes de resposta retornam automaticamente sem precisar de regra reversa).
- Tipo da Origem:
CIDR - CIDR de Origem:
0.0.0.0/0(para acesso aberto pela Internet) ou o seu IP específico para restringir o acesso. - Protocolo IP:
TCP(ou UDP, conforme o serviço). - Intervalo de Portas de Origem: Deixe em branco (permite conexões originadas de qualquer porta alta do cliente).
- Intervalo de Portas de Destino: A porta que sua aplicação escuta (ex:
8088,9090, ou22para SSH). - Descrição: Um rótulo legível (ex:
Liberação porta SSHouAcesso ao painel web). - Clique no botão Adicionar Regras de Entrada.
Se preferir automatizar pelo terminal:
# Adicionar regra de Ingress TCP via OCI CLI
# Cuidado: o comando update substitui o array inteiro de regras.
# Consulte antes com 'oci network security-list get' para mesclar com as regras existentes (ex.: porta 22 SSH) ou use um NSG dedicado.
oci network security-list update \
--security-list-id <OCID_DA_SECURITY_LIST> \
--ingress-security-rules '[{"source": "0.0.0.0/0", "protocol": "6", "tcpOptions": {"destinationPortRange": {"min": 8088, "max": 8088}}}]'
Passo 2: Ajustar o firewall interno do Linux#
No Ubuntu / Debian na OCI#
# 1. Inserir a regra no início da chain INPUT
sudo iptables -I INPUT 1 -p tcp --dport 8088 -j ACCEPT
# 2. Salvar para não perder as regras ao reiniciar a máquina
sudo apt-get install iptables-persistent -y
sudo netfilter-persistent save
No Oracle Linux / RHEL#
sudo firewall-cmd --zone=public --add-port=8088/tcp --permanent
sudo firewall-cmd --reload
Passo 3: Checar se a aplicação está escutando na interface pública#
Rode ss no servidor para verificar o socket:
sudo ss -tulpn | grep 8088
- Correto:
0.0.0.0:8088ou*:8088 - Incorreto (local apenas):
127.0.0.1:8088
3. Como testar de onde vem o bloqueio#
Faça um teste de conexão da sua própria máquina (fora da nuvem) usando nc ou curl:
# Testar porta aberta via Netcat
nc -zv -w 3 <IP_PUBLICO_OCI> 8088
| Resposta do teste | Onde está o bloqueio? | O que fazer |
|---|---|---|
| Connection Timed Out | Borda da Nuvem (VCN) | A Security List ou o NSG não tem a porta liberada. |
| Connection Refused | Firewall do Linux ou Aplicação | O pacote chegou na VM, mas o iptables descartou ou a aplicação não está rodando. |
| Connected / Open | Tudo certo | Conexão estabelecida com sucesso. |
Conclusão: dicas práticas para a rede na OCI#
- Sempre rode netfilter-persistent save: No Ubuntu da OCI, regras criadas no
iptablessem persistência somem na primeira reinicialização da instância. - Use Network Security Groups (NSGs): Security Lists afetam todas as máquinas da sub-rede. Se você quer abrir uma porta apenas para um servidor específico, anexe um NSG à placa de rede dele.
- Inspecione contadores de pacotes: Se tiver dúvida se o pacote está chegando, rode
sudo iptables -L INPUT -n -ve observe se o contadorpktsda sua regra sobe quando você tenta conectar. - Proteja a memória do servidor: Em instâncias ARM/Free Tier com recursos limitados, configure um swapfile adequado no kernel Linux para evitar que o OOM Killer derrube serviços silenciosamente.
Este artigo foi útil?
Deixe uma reação rápida para apoiar o conteúdo:
Este post está licenciado sob CC BY-NC.



Comentários
Participe da discussão abaixo.
0 comentários