Teste de Intervalo de Portas NAT
Para funcionar conforme o esperado, o aplicativo que você deseja executar através do sistema NAT IPv4 deve atender aos seguintes requisitos:
- O aplicativo deve ser preferencialmente de pilha dupla (ou seja, suportar conectividade IPv4 e IPv6);
- Deve ser capaz de escutar em [::]::0 e/ou 0.0.0.0/0, os endereços genéricos para IPv6 e IPv4;
- Específico para uso com UDP: deve enviar preferencialmente um fluxo contínuo de pacotes via UDP.
Quase todos os aplicativos escritos para Linux suportam conectividade de pilha dupla. Exceções notáveis e conhecidas incluem:
- SOCKS 4 e SOCKS 4a (suportado no SOCKS 5);
- Docker apenas em versões anteriores à 27.0.1 (lançada em 24 de junho de 2024). Algumas distribuições ainda implementam a versão anterior, a 26, principalmente o Debian 12 e 13, por exemplo; O Ubuntu 24.04 LTS tem suporte confirmado para Docker na versão 27.5, por exemplo, tornando-se uma alternativa viável;
- Kubernetes (somente versões anteriores a dezembro de 2021). O Debian 10 não possui suporte; o suporte será implementado a partir do Debian 11.
- Outros softwares anteriores a 2017/2018.
O endereço IPv4 NAT informado nos mapas de portas NAT do VirtFusion (no VirtPortal, em virtportal.cfld.uk) não precisa ser fornecido ao aplicativo no VPS, que terá um IPv4 privado e um IPv6 público. Basta que o aplicativo esteja escutando em endereços de captura geral. O tráfego enviado em um determinado intervalo de portas será automaticamente dividido pela nossa ponte Libvirt e, sempre que não for possível alcançar um dos endereços, o tráfego será encaminhado para o outro.
- Kubernetes (somente versões anteriores a dezembro de 2021). Exemplos de teste para TCP e UDP
Lembre-se: as portas são sempre pré-abertas automaticamente no intervalo de portas de saída especificado, e você simplesmente as mapeia para as portas internas no esquema mostrado no VirtPortal — para qualquer porta interna específica que desejar. Não é necessário abrir um chamado; na verdade, não oferecemos suporte a chamados para operações de portas NAT, que devem ser totalmente autônomas do usuário.
Exemplo para TCP: tente alterar um serviço, por exemplo, /etc/ssh/sshd_config, para qualquer porta (exceto portas abaixo de 1024 ou a porta 22) do seu VPS.
Certifique-se de que "PubkeyAuthentication" esteja definido como "Não" e descomentado (sem o #), e que "PasswordAuthentication" esteja definido como "Sim" e descomentado. Salve. Agora execute:
sudo systemctl restart sshd [para Debian, AlmaLinux, Rocky Linux, Fedora], ou
sudo systemctl restart ssh [para Ubuntu]
para que o serviço SSH seja reiniciado. Certifique-se de que ele esteja escutando em ambos os formatos antes de qualquer teste.
Depois disso, você pode tentar fazer login usando o PuTTY, MobaXterm ou qualquer cliente SSH, inserindo o IPv4 do servidor global, o usuário Linux do VPS (root) e a porta de saída específica disponível no portal do VirtFusion, o VirtPortal (por exemplo, 43560); ela será mapeada diretamente para a porta interna que você especificou para SSH (por exemplo, 4096); e funcionará perfeitamente.
Outra boa solução pode ser, por exemplo, instalar um servidor/cliente iperf3 dinâmico, com seu VPS atuando como servidor iperf3 e qualquer computador com Linux atuando como cliente iperf3. Isso funciona por padrão em TCP com 1 fluxo. Você sempre tem a possibilidade de testar com um número maior de fluxos e/ou também com UDP, podendo definir qualquer porta interna em seu VPS para isso, de acordo com o mapeamento de portas NAT do VirtPortal.
Existem diversos guias disponíveis na internet para os pacotes iperf3, e eles funcionarão em nossos sistemas VPS, pois operamos com NAT IPv4 padrão. Basta garantir que, no cliente, você esteja sempre direcionando para o IPv6 ou o IPv4 público do sistema (o IP global do servidor dedicado) e estará tudo pronto.
Exemplo para UDP: instale o netcat-openbsd, disponível em sistemas Debian ou Ubuntu. Após a instalação, certifique-se de não executar nenhum outro comando antes do netcat e execute o seguinte comando:
nc -6 -u -l -p [número da sua porta]
onde [número da sua porta] será o intervalo de portas exclusivo para UDP configurado no seu VPS para NAT IPv4 (consulte o artigo da Base de Conhecimento para o cálculo da porta NAT IPv4).
O processo começará a escutar, via IPv6, na porta escolhida e permanecerá assim.
Em seguida, tente enviar algo (texto, mensagem etc.) via UDP:
No Windows PowerShell:
$message = "Test UDP"; $udpClient = New-Object System.Net.Sockets.UdpClient; $udpClient.Connect("116.xxx.xxx.xxx", [número da sua porta]); $bytes = [Text.Encoding]::ASCII.GetBytes($message); $udpClient.Send($bytes, $bytes.Length); $udpClient.Close()
No Linux:
echo "Teste UDP" | nc -u -w1 116.xxx.xxx.xxx [número da sua porta]
onde "116.xxx.xxx.xxx" é o endereço IPv4 público global no nível do servidor e [número da sua porta] será o número da porta exclusiva para UDP, que deve ser exatamente o mesmo número de porta que seu processo está escutando no VPS. Recomenda-se também que seja exatamente o mesmo número de porta do seu intervalo de portas UDP de saída, para simplificar.
Se você receber "Teste UDP" no seu VPS, tudo está funcionando.