tutorial do iperf3: Testar a velocidade da rede no Linux e no Windows
10 min de leitura - 7 de maio de 2026

Instale o iperf3, execute testes de largura de banda e ajuste os buffers TCP para obter resultados precisos no Linux e no Windows. Abrange testes UDP, bidireccionais e 10GbE+
Tutorial do iperf3: Medir o desempenho da rede no Linux e no Windows
O iperf3 é uma ferramenta de linha de comandos para medir a largura de banda da rede, o jitter e a perda de pacotes entre duas máquinas. Utiliza um modelo cliente-servidor: uma máquina escuta, a outra envia tráfego e obtém-se valores precisos de throughput. Este guia abrange a instalação, testes básicos e avançados, e como ajustar o seu sistema para obter resultados precisos em ligações de alta velocidade.
Instalação do iperf3
Debian / Ubuntu
sudo apt update
sudo apt install iperf3
Confirme a instalação com iperf3 --version. Instale-o tanto no servidor como nas máquinas clientes.
Fedora / CentOS / Rocky / Alma
No Fedora 22+ ou CentOS 8+, Rocky ou AlmaLinux:
sudo dnf install iperf3
No CentOS 7, utilize yum em vez disso. Se o pacote não for encontrado, ative primeiro o repositório EPEL:
sudo yum install epel-release
sudo yum install iperf3
Se a sua firewall estiver ativa, abra a porta 5201:
sudo firewall-cmd --add-port=5201/tcp --permanent
sudo firewall-cmd --reload
Windows
Descarregue o executável independente a partir de iperf.fr ou do repositório GitHub ar51an/iperf3-win-builds. Extraia-o para uma pasta como C:\iperf3e, em seguida, verifique:
cd C:\iperf3
iperf3.exe -v
Para executar o iperf3 a partir de qualquer diretório, adicione a pasta ao PATH do sistema através de Propriedades do Sistema > Avançado > Variáveis de Ambiente. Também será necessário criar uma regra de firewall de entrada que permita o TCP na porta 5201 no Firewall do Windows Defender.
Configurar o servidor
Inicie o servidor com:
iperf3 -s
Por predefinição, isto escuta na porta TCP 5201. Para o executar em segundo plano com registo:
iperf3 -s -D --logfile /var/log/iperf3.log
Verifique se está a funcionar com ss -tulpn | grep 5201.
Se a porta 5201 estiver bloqueada na sua rede, use -p para escolher uma porta diferente. Para ligar a uma interface específica, use -B:
iperf3 -s -B 192.168.1.10
Para testes pontuais, iperf3 -s -1 lida com uma única ligação de cliente e, em seguida, encerra. Em ligações de alta largura de banda (40 Gbps+), execute várias instâncias do servidor em portas diferentes para contornar os limites da CPU de thread único.
Certifique-se de que a sua firewall permite o tráfego na porta escolhida. No Ubuntu/Debian com UFW:
sudo ufw allow 5201/tcp
sudo ufw allow 5201/udp # if testing UDP
Execução de testes de cliente
Teste TCP básico
iperf3 -c 192.168.1.10
Isto mede a largura de banda de upload via TCP durante 10 segundos. Aumente a duração com -t:
iperf3 -c 192.168.1.10 -t 30
Em ligações de 10 Gbps ou 25 Gbps, um único fluxo TCP atinge frequentemente um máximo de 3–5 Gbps devido aos limites da CPU de núcleo único. Utilize fluxos paralelos para saturar a ligação:
iperf3 -c 192.168.1.10 -P 8
Interpretação dos resultados
Cada linha de intervalo mostra Transferência (dados enviados) e Taxa de bits (rendimento). Para TCP, observe também:
- Retr (retransmissões). Valores elevados significam perda de pacotes ou congestionamento.
- Cwnd (janela de congestionamento). Se estiver baixo ou estagnado, os limites do tamanho do buffer ou da janela estão a limitar a taxa de transferência.
Numa ligação limpa de 1 Gbps, espere cerca de 940 Mbps após a sobrecarga do protocolo. O teste termina com linhas de resumo do remetente e do destinatário. Numa rede estável, estas devem corresponder de perto.
Para testes UDP (-u flag), a saída adiciona jitter (variação na chegada de pacotes) e datagramas perdidos/totais. Jitter inferior a 1 ms e 0% de perda são ideais para tráfego em tempo real, como VoIP.
Sinalizadores úteis
| Sinalizador | Finalidade |
|---|---|
-c <IP> | Ligar ao servidor |
-p <port> | Usar uma porta específica (padrão: 5201) |
-t <sec> | Duração do teste em segundos (padrão: 10) |
-i <sec> | Intervalo do relatório |
-P <num> | Fluxos paralelos |
-u | Modo UDP |
-b <n>M | Largura de banda alvo (UDP; padrão de 1 Mbps se omitido) |
-R | Modo reverso (o servidor envia, o cliente recebe) |
-w <n>K | Janela TCP / tamanho do buffer do socket |
-J | Saída JSON |
-Z | Zerocopy (reduz a carga da CPU em ligações rápidas) |
Testes avançados
Testes bidirecionais
O --bidir flag (iperf3 3.7+) testa o upload e o download simultaneamente:
iperf3 -c 192.168.1.10 --bidir
Ambas as ligações têm origem no cliente, pelo que isto funciona através de NAT sem abrir portas adicionais. Se os resultados bidirecionais forem muito inferiores aos dos testes unidirecionais, o seu router ou modem por cabo poderá estar com dificuldades em lidar com tráfego full-duplex.
Modo reverso
A -R sinalizador inverte o fluxo de dados para que o servidor envie e o cliente receba. Isto mede a velocidade de download sem trocar de papéis:
iperf3 -c 192.168.1.10 -t 30 -i 5 -R
Grandes diferenças entre os resultados de avanço e de retrocesso indicam caminhos assimétricos, congestionamento ou configurações incorretas do buffer.
Testes UDP
Os testes UDP revelam jitter e perda de pacotes, que o TCP oculta por trás das retransmissões. Defina sempre uma largura de banda alvo com -b, uma vez que o iperf3 usa 1 Mbps como padrão para UDP:
iperf3 -c 192.168.1.10 -u -b 1G
Para simular tráfego VoIP (100 chamadas, pacotes de 200 bytes):
iperf3 -c 192.168.1.10 -u -b 8M -l 200
Referências de qualidade: jitter abaixo de 5 ms é bom para VoIP; acima de 30 ms causa problemas audíveis. A perda de pacotes acima de 0,1% degrada visivelmente a mídia em tempo real.
Ajuste e Resolução de Problemas
Problemas comuns
A obter apenas 100 Mbps numa ligação gigabit? Verifique a velocidade da sua interface física com ethtool eth0. A auto-negociação falha por vezes e reduz a ligação para uma velocidade inferior.
O MSS mostra 536 bytes na Ethernet? A descoberta de MTU de caminho (Path MTU Discovery) está provavelmente desativada. O MSS padrão para um MTU de 1.500 bytes é de 1.460 bytes. Use -m durante os testes para verificar. Um MSS de 536 bytes desperdiça largura de banda e aumenta a sobrecarga.
A CPU está a atingir o limite máximo em ligações rápidas? Utilize -Z (zerocopy) para reduzir a carga da CPU. Para 40 Gbps ou mais, execute várias instâncias de servidor em portas diferentes e distribua-as pelos núcleos da CPU.
Resultados inconsistentes? Use -O 3 para omitir os primeiros segundos enquanto a janela de congestionamento TCP aumenta gradualmente. Deixe 30 segundos entre as execuções do teste para limpar os buffers de rede.
Um único fluxo muito mais lento do que os fluxos paralelos combinados? Se um fluxo atinge 200 Mbps, mas oito fluxos combinados atingem 1,6 Gbps, a janela TCP ou os buffers do SO estão a limitar o fluxo único. Ajuste os buffers abaixo.
Ajuste do buffer TCP
Comece por calcular o Produto de Largura de Banda-Atraso: largura de banda x RTT. Uma ligação de 10 Gbps com 50 ms de RTT resulta num BDP de 62,5 MB. Defina o seu buffer máximo para, pelo menos, 2x o BDP.
Adicione estes valores /etc/sysctl.d/99-tcp-tuning.conf e aplique com sudo sysctl -p:
| Parâmetro | Recomendado (1–10 Gbps) |
|---|---|
net.core.rmem_max | 134217728 (128 MB) |
net.core.wmem_max | 134217728 (128 MB) |
net.ipv4.tcp_rmem | 4096 131072 134217728 |
net.ipv4.tcp_wmem | 4096 131072 134217728 |
net.core.default_qdisc | fq |
net.ipv4.tcp_congestion_control | bbr |
Mantenha net.ipv4.tcp_moderate_rcvbuf definido como 1 para que o kernel faça o ajuste automático dentro destes intervalos. Ative net.ipv4.tcp_window_scaling (defina como 1) para janelas TCP maiores que 64 KB.
Também pode mudar do algoritmo de congestionamento CUBIC padrão para o BBR do Google. Em ligações de alta latência com alguma perda de pacotes, o BBR oferece consistentemente um rendimento superior ao do CUBIC.
Use o -w sinalizador no iperf3 para testar tamanhos de buffer específicos, mas note que estes não podem exceder o rmem_max ou wmem_max. Comece com 8 MB para ligações gigabit e 512 KB para 100 Mbps.
Se estiver a provisionar servidores dedicados e quiser validar o desempenho da rede, execute testes de referência do iperf3 logo após a configuração e após quaisquer alterações na rede para detetar regressões atempadamente.
Recomendação de vídeo
Porque é que é importante ter um VPS potente e ilimitado
Precisa de um desempenho fiável e de tráfego ilimitado? Um poderoso VPS ilimitado oferece a velocidade, a escalabilidade e a largura de banda de que necessita, sem se preocupar com limites de utilização.
3 min de leitura - 9 de maio de 2025
Como otimizar o espaço de armazenamento no Linux
15 min de leitura - 22 de maio de 2026