Como usar o iperf3 para medir a banda real entre dois servidores Linux: instalação, modo servidor e cliente, porta 5201, firewall e leitura do resultado.
O iperf3 mede a velocidade entre duas máquinas que você controla: uma fica escutando (o servidor) e a outra envia e recebe dados (o cliente). Como não depende de site de teste nem de servidor de terceiros, é a forma mais confiável de saber quanto de banda existe entre dois pontos, por exemplo entre o seu servidor e o servidor de backup, ou entre dois datacenters.
Antes de começar
- Duas máquinas Linux com acesso SSH. Nos exemplos, o servidor tem o IP
203.0.113.10. - Permissão para abrir uma porta no firewall do servidor durante o teste (a padrão é a
5201TCP). - Combine com quem administra a rede: o teste ocupa toda a banda disponível enquanto roda.
Como instalar o iperf3
Instale nas duas máquinas.
# AlmaLinux e Rocky 8 e 9
sudo dnf install iperf3
# Ubuntu e Debian
sudo apt install iperf3
No Ubuntu e no Debian, a instalação pergunta se o iperf3 deve rodar como serviço automaticamente (Start Iperf3 as a daemon automatically?). Responda No: é mais seguro ligar o servidor só na hora do teste.
Passo a passo do teste
- Libere a porta 5201 no servidor. Use a regra temporária, que some ao reiniciar o firewall:
Se for testar UDP, libere também# AlmaLinux e Rocky (firewalld): regra temporária sudo firewall-cmd --add-port=5201/tcp # Ubuntu (ufw) sudo ufw allow 5201/tcp5201/udp. Em servidores com CSF, acrescente a porta emTCP_INno/etc/csf/csf.confe rodecsf -r. - Ligue o iperf3 em modo servidor. Na máquina
203.0.113.10:
Oiperf3 -s -1-1faz o servidor atender um único teste e sair, para não ficar escutando à toa. Sem ele, o servidor roda até você apertar Ctrl+C. - Rode o teste no cliente. Na outra máquina:
Por padrão o teste dura 10 segundos e mede o envio do cliente para o servidor.iperf3 -c 203.0.113.10 - Meça o sentido contrário. Ligue o servidor de novo e use
-R, que faz o servidor enviar e o cliente receber:iperf3 -c 203.0.113.10 -R - Feche a porta ao terminar. No firewalld, a regra temporária some com
sudo firewall-cmd --reload. No ufw, rodesudo ufw delete allow 5201/tcp.
Como ler o resultado
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.09 GBytes 937 Mbits/sec 14 sender
[ 5] 0.00-10.04 sec 1.09 GBytes 932 Mbits/sec receiver
- Bitrate da linha
receiveré a velocidade que de fato chegou ao outro lado. É o número que importa. - Retr conta as retransmissões TCP. Alguns poucos são normais; centenas ou milhares indicam perda de pacotes no caminho.
- Num link de 1 Gbps, algo entre 930 e 945 Mbits/sec é o máximo possível por causa dos cabeçalhos dos pacotes.
Opções úteis
| Opção | O que faz | Exemplo |
|---|---|---|
-P | Várias conexões em paralelo; necessário para encher links de 10 Gbps ou rotas longas | iperf3 -c 203.0.113.10 -P 4 |
-t | Duração em segundos | iperf3 -c 203.0.113.10 -t 60 |
-R | Inverte o sentido (servidor envia) | iperf3 -c 203.0.113.10 -R |
--bidir | Mede os dois sentidos ao mesmo tempo (iperf3 3.7 ou mais novo; o do AlmaLinux 8 não tem) | iperf3 -c 203.0.113.10 --bidir |
-u -b | Teste UDP numa taxa fixa; mostra jitter e perda | iperf3 -c 203.0.113.10 -u -b 200M |
-p | Usa outra porta (nos dois lados) | iperf3 -s -p 5300 e iperf3 -c 203.0.113.10 -p 5300 |
-J | Saída em JSON, para guardar ou comparar | iperf3 -c 203.0.113.10 -J > teste.json |
Problemas comuns
iperf3: error - unable to connect to server ... Connection refused
O servidor não está escutando: o iperf3 -s não foi iniciado, já atendeu o teste (com -1) ou está em outra porta.
unable to connect to server ... Connection timed out
O firewall do servidor, ou algum firewall no caminho, está bloqueando a porta 5201. Confira a regra do passo 1.
iperf3: error - the server is busy running a test
O servidor iperf3 atende um teste por vez. Espere o anterior terminar.
Resultado bem abaixo do esperado em links rápidos
Uma conexão TCP sozinha raramente enche um link de 10 Gbps, ainda mais com latência alta. Repita com -P 4 ou -P 8. Se o número continuar baixo e o Retr estiver alto, há perda no caminho: faça um teste de MTR e envie ao suporte.