Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ethr — 크로스 플랫폼 CLI로 TCP, UDP, HTTP, HTTPS 및 ICMP를 통한 네트워크 성능 테스트: 대역폭, connections/s, packets/s, 지연 시간, 손실, 지터, 핑, 트레이스루트. | Kitploit
도구/GitHubGitHub/microsoft/ethr
General Purpose UtilitiesNetwork MappingInformation Gathering
GitHubmicrosoft/ethr

ethr

크로스 플랫폼 CLI로 TCP, UDP, HTTP, HTTPS 및 ICMP를 통한 네트워크 성능 테스트: 대역폭, connections/s, packets/s, 지연 시간, 손실, 지터, 핑, 트레이스루트.

저장소 보기
5.9k4051개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Ethr Build Status

Ethr는 golang으로 작성된 크로스 플랫폼 네트워크 성능 측정 도구입니다. 이 프로젝트의 목표는 TCP, UDP, HTTP, HTTPS와 같은 여러 프로토콜과 Windows, Linux 및 기타 Unix 시스템과 같은 여러 플랫폼에서 대역폭, connections/s, packets/s, 지연시간, 손실 및 지터에 대한 포괄적인 네트워크 성능 측정을 제공하는 네이티브 도구를 제공하는 것입니다.

작동 중인 Ethr 서버

Ethr는 기존 오픈 소스 네트워크 성능 도구에서 영감을 얻어 그 아이디어를 바탕으로 구축되었습니다. 대역폭 측정의 경우 TCP 및 UDP 트래픽에 대해 iPerf3와 유사합니다. iPerf3에는 조절된 테스트, 더 풍부한 기능 세트와 같은 많은 옵션이 있는 반면, Ethr은 다중 스레드를 지원하므로 1024개 또는 그 이상의 연결 수, 단일 서버에 대한 다중 클라이언트 통신 등으로 확장할 수 있습니다. 지연시간 측정의 경우 Windows의 latte 또는 Linux의 sockperf와 유사합니다.

Ethr는 다른 도구에 비해 더 많은 테스트 측정을 제공합니다. 예를 들어 대역폭, connections/s, packets/s, 지연시간, TCP 연결 설정 지연시간 측정을 단일 도구로 제공합니다. 향후에는 네트워크 성능 측정을 위한 포괄적인 도구로 만들기 위해 더 많은 기능(다른 사람들의 기여를 기대하며)과 더 많은 프로토콜 지원을 추가할 계획입니다.

Ethr는 기능을 제한할 수 있는 cygwin과 같은 추상화 계층을 통한 컴파일과 달리 golang 덕분에 기본적으로 크로스 플랫폼입니다. iPerf3, ntttcp, psping, sockperf, latte와 같은 도구의 기능을 결합하고 여러 플랫폼과 여러 프로토콜에서 단일 도구를 제공하여 성능 측정을 통합하는 것을 목표로 합니다.

설치

다운로드

https://github.com/Microsoft/ethr/releases/latest

Linux

root@kitploit:~
wget https://github.com/microsoft/ethr/releases/latest/download/ethr_linux.zip
unzip ethr_linux.zip

Windows Powershell

root@kitploit:~
wget https://github.com/microsoft/ethr/releases/latest/download/ethr_windows.zip -OutFile ethr_windows.zip
Expand-Archive .\ethr_windows.zip -DestinationPath .

OSX

root@kitploit:~
wget https://github.com/microsoft/ethr/releases/latest/download/ethr_osx.zip
unzip ethr_osx.zip

소스에서 빌드

참고: 소스에서 빌드하려면 go 버전 1.11 이상이 필요합니다.

Ethr의 의존성을 관리하기 위해 go-module을 사용합니다. 자세한 내용은 go-modules 사용 방법!을 확인하세요.

root@kitploit:~
git clone https://github.com/Microsoft/ethr.git
cd ethr
go build

ethr가 $GOPATH/src 트리 안에 클론된 경우, GO111MODULE=on과 함께 go 명령을 실행해야 합니다!

Docker

다음 명령으로 이미지를 빌드합니다:

root@kitploit:~
docker build -t microsoft/ethr .

바이너리 생성:

Linux

root@kitploit:~
docker run -e GOOS=linux -v $(pwd):/out microsoft/ethr make build-docker

Windows

root@kitploit:~
docker run -e BINARY_NAME=ethr.exe -e GOOS=windows -v $(pwd):/out microsoft/ethr make build-docker

OS X

root@kitploit:~
docker run -e BINARY_NAME=ethr -e GOOS=darwin -v $(pwd):/out microsoft/ethr make build-docker

go get 사용

root@kitploit:~
go get github.com/microsoft/ethr

ArchLinux AUR 사용

다음은 yay (https://github.com/Jguer/yay)를 사용한다고 가정합니다:

root@kitploit:~
yay -S ethr

Nuget 패키지 게시

ethr.exe를 빌드하려면 소스에서 빌드 항목을 따르세요.

ethr.nuspec을 수정하여 새 릴리스 버전을 추가하세요.

root@kitploit:~
vim ethr.nuspec

nuget 패키지를 만듭니다(예: Ethr.0.2.1.nupkg).

root@kitploit:~
nuget.exe pack ethr.nuspec

패키지를 nuget.org에 업로드하세요.

사용법

간단한 사용법

도움말:

root@kitploit:~
ethr -h

서버:

root@kitploit:~
ethr -s

텍스트 UI를 사용하는 서버:

root@kitploit:~
ethr -s -ui

클라이언트:

root@kitploit:~
ethr -c <server ip>

예제:

root@kitploit:~
// Start server
ethr -s

// Start client for default (bandwidth) test measurement using 1 thread
ethr -c localhost

// Start bandwidth test using 8 threads
ethr -c localhost -n 8

// Start connections/s test using 64 threads to server 10.1.0.11
ethr -c 10.1.0.11 -t c -n 64

// Run Ethr server on port 9999
./ethr -s -port 9999

// Measure TCP connection setup latency to ethr server on port 9999
// Assuming Ethr server is running on server with IP address: 10.1.1.100
./ethr -c 10.1.1.100 -p tcp -t pi -d 0 -4 -port 9999

// Measure TCP connection setup latency to www.github.com at port 443
./ethr -x www.github.com:443 -p tcp -t pi -d 0 -4

// Measure TCP connection setup latency to www.github.com at port 443
// Note: Here port 443 is driven automatically from https
./ethr -x https://www.github.com -p tcp -t pi -d 0 -4

// Measure ICMP ping latency to www.github.com
sudo ./ethr -x www.github.com -p icmp -t pi -d 0 -4

// Run measurement similar to mtr on Linux
sudo ./ethr -x www.github.com -p icmp -t mtr -d 0 -4

// Measure packets/s over UDP by sending small 1-byte packets
./ethr -c 172.28.192.1 -p udp -t p -d 0

알려진 문제 및 요구 사항

Windows

ICMP 관련 테스트(Ping, TraceRoute, MyTraceRoute)의 경우 Windows에서는 방화벽에서 ICMP를 허용해야 합니다. 이는 다음 명령을 사용하여 PowerShell에서 수행할 수 있습니다. 단, 설정의 보안 정책이 허용하는 경우에만 사용하세요.

root@kitploit:~
// Allow ICMP packets via Firewall for IPv4
New-NetFirewallRule -DisplayName "ICMP_Allow_Any" -Direction Inbound -Protocol ICMPv4 -IcmpType Any -Action Allow  -Profile Any -RemotePort Any

// Allow ICMP packets via Firewall for IPv6
New-NetFirewallRule -DisplayName "ICMPV6_Allow_Any" -Direction Inbound -Protocol ICMPv6 -IcmpType Any -Action Allow  -Profile Any -RemotePort Any

또한 TCP 기반 TraceRoute 및 MyTraceRoute의 경우 관리자 모드가 필요합니다. 그렇지 않으면 Ethr이 ICMP TTL 초과 메시지를 받을 수 없습니다.

Linux

ICMP Ping, ICMP/TCP TraceRoute 및 MyTraceRoute의 경우 sudo를 통한 권한 모드가 필요합니다.

전체 명령줄

공통 매개변수

root@kitploit:~
	-h 
		Help
	-no 
		Disable logging to file. Logging to file is enabled by default.
	-o <filename>
		Name of log file. By default, following file names are used:
		Server mode: 'ethrs.log'
		Client mode: 'ethrc.log'
	-debug 
		Enable debug information in logging output.
	-4 
		Use only IP v4 version
	-6 
		Use only IP v6 version

서버 모드 매개변수

root@kitploit:~
In this mode, Ethr runs as a server, allowing multiple clients to run
performance tests against it.
	-s 
		Run in server mode.
	-ip <string>
		Bind to specified local IP address for TCP & UDP tests.
		This must be a valid IPv4 or IPv6 address.
		Default: <empty> - Any IP
	-port <number>
		Use specified port number for TCP & UDP tests.
		Default: 8888
	-ui 
		Show output in text UI.

클라이언트 모드 매개변수

root@kitploit:~
In this mode, Ethr client can only talk to an Ethr server.
	-c <server>
		Run in client mode and connect to <server>.
		Server is specified using name, FQDN or IP address.
	-b <rate>
		Transmit only Bits per second (format: <num>[K | M | G])
		Only valid for Bandwidth tests. Default: 0 - Unlimited
		Examples: 100 (100bits/s), 1M (1Mbits/s).
	-cport <number>
		Use specified local port number in client for TCP & UDP tests.
		Default: 0 - Ephemeral Port
	-d <duration>
		Duration for the test (format: <num>[ms | s | m | h]
		0: Run forever
		Default: 10s
	-g <gap>
		Time interval between successive measurements (format: <num>[ms | s | m | h]
		Only valid for latency, ping and traceRoute tests.
		0: No gap
		Default: 1s
	-i <iterations>
		Number of round trip iterations for each latency measurement.
		Only valid for latency testing.
		Default: 1000
	-ip <string>
		Bind to specified local IP address for TCP & UDP tests.
		This must be a valid IPv4 or IPv6 address.
		Default: <empty> - Any IP
	-l <length>
		Length of buffer to use (format: <num>[KB | MB | GB])
		Only valid for Bandwidth tests. Max 1GB.
		Default: 16KB
	-n <number>
		Number of Parallel Sessions (and Threads).
		0: Equal to number of CPUs
		Default: 1
	-p <protocol>
		Protocol ("tcp", "udp", "http", "https", or "icmp")
		Default: tcp
	-port <number>
		Use specified port number for TCP & UDP tests.
		Default: 8888
	-r 
		For Bandwidth tests, send data from server to client.
	-t <test>
		Test to run ("b", "c", "p", "l", "cl" or "tr")
		b: Bandwidth
		c: Connections/s
		p: Packets/s
		l: Latency, Loss & Jitter
		pi: Ping Loss & Latency
		tr: TraceRoute
		mtr: MyTraceRoute with Loss & Latency
		Default: b - Bandwidth measurement.
	-tos 
		Specifies 8-bit value to use in IPv4 TOS field or IPv6 Traffic Class field.
	-w <number>
		Use specified number of iterations for warmup.
		Default: 1
	-T <string>
		Use the given title in log files for logging results.
		Default: <empty>		

외부 모드 매개변수

root@kitploit:~
In this mode, Ethr talks to a non-Ethr server. This mode supports only a
few types of measurements, such as Ping, Connections/s and TraceRoute.
	-x <destination>
		Run in external client mode and connect to <destination>.
		<destination> is specified in URL or Host:Port format.
		For URL, if port is not specified, it is assumed to be 80 for http and 443 for https.
		Example: For TCP - www.microsoft.com:443 or 10.1.0.4:22 or https://www.github.com
		         For ICMP - www.microsoft.com or 10.1.0.4
	-cport <number>
		Use specified local port number in client for TCP & UDP tests.
		Default: 0 - Ephemeral Port
	-d <duration>
		Duration for the test (format: <num>[ms | s | m | h]
		0: Run forever
		Default: 10s
	-g <gap>
		Time interval between successive measurements (format: <num>[ms | s | m | h]
		Only valid for latency, ping and traceRoute tests.
		0: No gap
		Default: 1s
	-ip <string>
		Bind to specified local IP address for TCP & UDP tests.
		This must be a valid IPv4 or IPv6 address.
		Default: <empty> - Any IP
	-n <number>
		Number of Parallel Sessions (and Threads).
		0: Equal to number of CPUs
		Default: 1
	-p <protocol>
		Protocol ("tcp", or "icmp")
		Default: tcp
	-t <test>
		Test to run ("c", "cl", or "tr")
		c: Connections/s
		pi: Ping Loss & Latency
		tr: TraceRoute
		mtr: MyTraceRoute with Loss & Latency
		Default: pi - Ping Loss & Latency.
	-tos 
		Specifies 8-bit value to use in IPv4 TOS field or IPv6 Traffic Class field.
	-w <number>
		Use specified number of iterations for warmup.
		Default: 1
	-T <string>
		Use the given title in log files for logging results.
		Default: <empty>		

상태

플랫폼 지원

Windows

테스트됨: Windows 10, Windows 7 SP1

테스트되지 않음: 기타 Windows 버전

Linux

테스트됨: Ubuntu Linux 18.04.1 LTS, OpenSuse Leap 15

테스트되지 않음: 기타 Linux 버전

OSX

테스트됨: OSX는 기여자들에 의해 테스트되었습니다

기타

현재 다른 플랫폼은 테스트되지 않았습니다.

할 일 목록

작업 목록 항목은 아래와 같습니다. 이러한 작업 항목이나 다른 기능 및 버그 수정에 대한 기여를 환영합니다.

  • 다른 Windows 버전, 다른 Linux 버전, FreeBSD 및 기타 OS에서 Ethr 테스트
  • UDP 지연시간, TraceRoute 및 MyTraceRoute 지원

기여

이 프로젝트는 기여와 제안을 환영합니다. 대부분의 기여는 귀하의 기여를 사용할 권리를 우리에게 부여할 자격이 있으며 실제로 부여한다는 것을 선언하는 기여자 라이선스 계약(CLA)에 동의해야 합니다. 자세한 내용은 https://cla.microsoft.com을 방문하세요.

풀 리퀘스트를 제출하면 CLA-bot이 자동으로 CLA를 제출해야 하는지 여부를 판단하고 PR에 적절히 표시합니다(예: 레이블, 주석). 봇이 제공하는 지침을 따르기만 하면 됩니다. 우리 CLA를 사용하는 모든 리포지토리에서 이 작업은 한 번만 하면 됩니다.

이 프로젝트는 Microsoft 오픈 소스 행동 강령을 채택했습니다. 자세한 내용은 행동 강령 FAQ를 참조하거나 [email protected]으로 추가 질문이나 의견을 보내주세요.

도구 다운로드
프로토콜대역폭Connections/sPackets/s지연시간PingTraceRouteMyTraceRoute
TCP예예해당 없음예예예예
UDP예해당 없음예아니요해당 없음아니요아니요
ICMP아니요해당 없음해당 없음해당 없음예예예