내 네트워크를 테스트하기 위해 두 호스트 간에 x MB/s를 전송하고 싶습니다. 대량의 데이터를 전송하는 데 사용될 수 있다는 것을 알고 있지만 ping
대역폭을 설정할 수 있는 솔루션이 필요합니다(매우 정확할 필요는 없음).
$ sendTrafic --throughput 10M 10.0.0.1
어떻게 할 수 있는지 아시나요? scappy
초당 x번 실행되는 스크립트 에 대해 생각했는데 더 나은 것이 있어야 합니다.
편집: 다음 솔루션을 사용했습니다.
# On receiving node:
iperf -s -u
# On sending node:
iperf -c <ip> -u -b 10m -t 30
첫 번째 호스트를 UDP 서버로 구성하고 두 번째 호스트를 UDP 클라이언트로 구성하여 30초 동안 10Mb/s로 전송합니다.
모두의 도움에 감사드립니다.
답변1
설치하고 싶지 않은 경우 iperf
(IMHO, 과거에 사용했던 도구 중 가장 신뢰할 수 있는 도구는 아님)를 사용할 수 있으며 pv
먼저 netcat
설치해야 합니다 pv
( netcat
대부분의 배포판에서 사용 가능).
수신 사이트에서는 액세스 가능한 포트에 청취 소켓이 있어야 합니다.
#if you want the output you can remove the redirection or redirect it to a different file.
#if you want to listen to a TCP port below 1024 you will need to use root
nc -l 4444 > /dev/null
보내는 컴퓨터에서는 다음 명령을 사용합니다.
dd if=/dev/urandom bs=1000 count=1000 | pv -L 10M | nc <ip> 4444
dd if=/dev/urandom bs=1000 count=1000
1000개의 임의 문자(1000바이트)로 구성된 블록이 1000번 전송됩니다(1000B * 1000 = 1MB). 개수를 조정하여 전송되는 데이터 양을 늘릴 수 있습니다.
pv -L 10M
: 쓰기 속도를 10MB/초(*1024)로 제한합니다.
netcat <ip> 4444
데이터는 포트 TCP 4444를 통해 IP로 전송됩니다.
다음을 사용하여 더 많은 데이터 또는 실제 파일을 보낼 수 있습니다.
cat /some/files| pv -L 1M | nc <ip> 4444
반대편:
nc -l 4444 > /some/destinationfiles