Eu uso iperf
. É um arranjo de servidor cliente em que você o executa no modo de servidor em uma extremidade e se conecta a ele de outro computador no outro lado da rede.
Uma das duas máquinas é executada:
sudo apt-get install iperf
Iniciaremos um servidor iperf
em uma das máquinas:
iperf -s
E, no outro computador, informe iperf
para se conectar como cliente:
iperf -c <address of other computer>
Na máquina do cliente, você verá algo assim:
oli@bert:~$ iperf -c tim
------------------------------------------------------------
Client connecting to tim, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.0.4 port 37248 connected with 192.168.0.5 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 1.04 GBytes 893 Mbits/sec
É claro que, se você estiver executando um firewall na máquina do servidor, precisará permitir conexões na porta 5001 ou alterar a porta com o sinalizador -p
.
Você pode fazer praticamente a mesma coisa com o antigo nc
(netcat) se você estiver inclinado. Na máquina do servidor:
nc -vvlnp 12345 >/dev/null
E o cliente pode canalizar um gigabyte de zeros em dd
sobre o túnel nc
.
dd if=/dev/zero bs=1M count=1K | nc -vvn 10.10.0.2 12345
Como demod:
$ dd if=/dev/zero bs=1M count=1K | nc -vvn 10.10.0.2 12345
Connection to 10.10.0.2 12345 port [tcp/*] succeeded!
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 9.11995 s, 118 MB/s
O tempo é dado por dd
, mas deve ser preciso o suficiente, uma vez que só pode sair tão rápido quanto o tubo levar. Se você não está satisfeito com isso, você pode colocar tudo em uma chamada time
.
Lembre-se que o resultado está em mega bytes então multiplique por 8 para obter uma velocidade mega bits -per-segundo. A demonstração acima está em 944mbps.