영어프랑스어스페인어

Ad


온웍스 파비콘

flowgrind - 클라우드에서의 온라인

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터를 통해 OnWorks 무료 호스팅 제공업체에서 flowgrind를 실행하세요.

이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공업체에서 실행할 수 있는 flowgrind 명령입니다.

프로그램:

이름


flowgrind - Linux, FreeBSD 및 Mac OS X용 고급 TCP 트래픽 생성기

개요


플로우그라인드 [OPTION] ...

기술


플로우 그라인드 Linux 테스트 및 벤치마킹을 위한 고급 TCP 트래픽 생성기입니다.
FreeBSD 및 Mac OS X TCP/IP 스택. 다른 성능 측정 도구와 달리
처리량 및 기타 지표를 측정하는 분산 아키텍처 기능
임의의 flowgrind 서버 프로세스, flowgrind 데몬 사이 플로우 그라인드(1).

Flowgrind는 굿풋(처리량) 외에도 애플리케이션 계층 도착 간격 시간을 측정합니다.
(IAT) 및 왕복 시간(RTT), 블록 수 및 네트워크 트랜잭션/초. 대부분의 크로스와 달리
플랫폼 테스트 도구인 flowgrind는
일반적으로 TCP/IP 스택 내부에 있는 TCP_INFO 소켓 옵션입니다. 리눅스와
FreeBSD에는 종단 간 RTT에 대한 커널의 추정, 크기
TCP 혼잡 창(CWND) 및 느린 시작 임계값(SSTHRESH).

Flowgrind는 분산 아키텍처를 가지고 있습니다. 이는 두 가지 구성 요소로 나뉩니다: flowgrind
악마, 플로우 그라인드(1), 그리고 플로우 그라인드 제어 장치. 컨트롤러를 사용하여
flowgrind 데몬을 실행하는 두 시스템을 모두 설정할 수 있습니다(타사 테스트). 정기적으로
테스트 중 컨트롤러는 측정된 결과를 수집하고 표시합니다.
데몬. 동일하거나 다른 설정으로 여러 흐름을 한 번에 실행할 수 있으며
개별적으로 모든 일정을 계획합니다. 테스트 및 제어 연결은 선택적으로 다음으로 전환될 수 있습니다.
다른 인터페이스.

트래픽 생성 자체는 대량 전송이거나 속도 제한이 있거나 정교합니다.
요청/응답 테스트. Flowgrind는 libpcap을 사용하여 트래픽을 자동으로 덤프합니다.
질적 분석.

옵션


컨트롤러 옵션과 흐름 옵션이라는 두 가지 중요한 옵션 그룹이 있습니다. 처럼
이름에서 알 수 있듯이 컨트롤러 옵션은 전역적으로 적용되며 잠재적으로 모든 흐름에 영향을 미칠 수 있습니다.
흐름별 옵션은 다음을 사용하여 선택한 흐름의 하위 집합에만 적용됩니다. -F 옵션을 선택합니다.

긴 옵션에 필수 인수가 너무 짧 옵션에 대한 필수입니다.

일반 옵션
-h, --도움[=WHAT]
도움말을 표시하고 종료합니다. 선택 사항 소켓에 대한 도움말을 보려면 '소켓'이 될 수 있습니다.
옵션 또는 '트래픽' 트래픽 생성 도움말

-v, --번역
버전 정보를 출력하고 종료

제어 장치 옵션
-c, --쇼-콜론=TYPE[,TYPE] ...
출력에 중간 간격 보고서 열 TYPE을 표시합니다. 다음에 대해 허용되는 값
TYPE은 'interval', 'through', 'transac', 'iat', 'kernel'(모두 기본값으로 표시),
및 'blocks', 'rtt', 'delay'(선택 사항)

-d, -디버그
디버깅의 자세한 정도를 높입니다. 자세한 정보를 늘리려면 옵션을 여러 번 추가하세요.

-e, --덤프 접두사=예약
덤프 파일 이름 앞에 접두사 PRE를 추가합니다(기본값: "flowgrind-")

-i, --보고 간격=#.#
보고 간격(초)(기본값: 0.05초)

--로그 파일[=FILE]
로그 파일 FILE에 출력 쓰기(기본값: flowgrind-'timestamp'.log)

-m 2**20바이트/초 단위로 보고 처리량(기본값: 10**6비트/초)

-n, --흐름=#
테스트 흐름 수(기본값: 1)

-o 기존 로그 파일 덮어쓰기(기본값: 덮어쓰기)

-p 숫자 대신 기호 값(예: INT_MAX)을 인쇄하지 마세요.

-q, --조용한
조용히 하세요, 화면에 로그인하지 마세요 (기본값: 꺼짐)

-s, --tcp-스택=TYPE
소스 TCP 스택의 단위를 자동으로 결정하지 않습니다. 장치를 TYPE으로 강제 설정합니다. 여기서
TYPE은 '세그먼트' 또는 '바이트'입니다.

-w 로그 파일에 출력 쓰기(동일 --로그 파일)

흐름 옵션
모든 흐름에는 소스와 대상이라는 두 개의 엔드포인트가 있습니다. 소스의 구별
대상 끝점은 연결 설정에만 영향을 미칩니다. 흐름을 시작할 때
대상 엔드포인트는 소켓을 수신하고 소스 엔드포인트는 소켓에 연결됩니다. 에 대한
실제 테스트에서는 차이가 없으며 두 엔드포인트 모두 정확히 동일한 기능을 갖습니다.
데이터는 양방향으로 전송될 수 있으며 다양한 설정을 개별적으로 구성할 수 있습니다.
각 끝점.

이러한 옵션 중 일부는 흐름 끝점을 옵션에 'x'로 표시된 인수로 사용합니다.
통사론. 'x'는 소스 끝점의 경우 's'로, 끝점의 경우 'd'로 바꿔야 합니다.
대상 끝점 또는 두 끝점 모두 'b'입니다. 각각에 대해 다른 값을 지정하려면
끝점은 쉼표로 구분하세요. 예를 들어 -W s=8192,d=4096은 광고된 항목을 설정합니다.
소스에서는 8192, 대상에서는 4096으로 설정됩니다.

-A x RTT 계산에 필요한 최소 응답 크기 사용
(같은 -G s=p,C,40)

-B x=# 요청된 전송 버퍼를 바이트 단위로 설정합니다.

-C x 지역 정체가 발생하는 경우 흐름을 중지합니다.

-D x=DSCP
TOS(서비스 유형) IP 헤더 바이트에 대한 DSCP 값

-E XNUMX을 보내는 대신 페이로드의 바이트를 열거합니다.

-F #[,#] ...
이 옵션 뒤의 흐름 옵션은 지정된 흐름 ID에만 적용됩니다. 다음에서 유용함
조합과 -n 특정 흐름에 대한 특정 옵션을 설정합니다. 번호 매기기 시작
0이므로 -F 1은 두 번째 흐름을 나타냅니다. -1을 사용하면 모든 흐름을 참조할 수 있습니다.

-G x=(q|p|g):(C|U|E|N|L|P|W):#1:[#2]
확률론적 트래픽 생성을 활성화하고 사용된 트래픽에 따라 매개변수를 설정합니다.
분포. 자세한 내용은 '트래픽 생성 옵션' 섹션을 참조하세요.

-H x=HOST[/통제[:PORT]]
HOST에서/HOST로 테스트합니다. 선택적 인수는 CONTROL의 주소와 포트입니다.
동일한 호스트에 연결합니다. 지정되지 않은 엔드포인트는 다음과 같은 것으로 간주됩니다.
로컬 호스트

-J # 무작위 시드 # 사용(기본값: 읽기 는 / dev / urandom의)

-I 단방향 지연 계산 활성화(클럭 동기화 없음)

-L 데이터 전송을 시작하기 직전에 테스트 소켓에서 connect()를 호출합니다(늦은 시간).
연결하다). 지정되지 않은 경우 테스트 연결은 준비 단계에서 설정됩니다.
테스트 시작 전 단계

-M x libpcap을 사용하여 트래픽을 덤프합니다. 플로우 그라인드(1) 루트로 실행해야 합니다

-N shutdown() 테스트 흐름 후 각 소켓 방향

-O x=선택적 실무 연수(OPT)
테스트 소켓에 소켓 옵션 OPT를 설정합니다. 추가 정보는 섹션을 참조하세요.
'소켓 옵션'

-P x 블록 크기가 그렇지 않은 경우 전송을 계속하기 위해 select()를 반복하지 마십시오.
전송 대기열을 채우기에 충분함(푸시)

-Q 요약만 가능하며 중간 간격 보고서는 계산되지 않습니다(자동).

-R x=#.#(z|k|M|G)(b|B)
초당 지정된 속도로 전송합니다. 여기서: z = 2**0, k = 2**10, M = 2**20, G =
2**30, b = 비트/초(기본값), B = 바이트/초

-S x=# 블록(메시지) 크기를 바이트 단위로 설정합니다(와 동일). -G s=q,C,#)

-T x=#.#
흐름 지속 시간을 초 단위로 설정합니다(기본값: s=10,d=0)

-U # 응용 프로그램 버퍼 크기를 바이트 단위로 설정합니다(기본값: 8192).
확률적 트래픽 생성

-W x=# 요청된 수신자 버퍼(광고된 창)를 바이트 단위로 설정합니다.

-Y x=#.#
호스트가 전송을 시작하기 전 초기 지연을 초 단위로 설정합니다.

교통 세대 OPTION


옵션을 통해 -G flowgrind는 확률론적 트래픽 생성을 지원합니다.
일반 대량 전송 외에도 고급 속도 제한 및 요청-응답 데이터 전송도 가능합니다.

확률론적 트래픽 생성 옵션 -G 흐름 끝점을 인수로 사용합니다.
옵션 구문에서 'x'로. 소스에 대해 'x'를 's'로 바꿔야 합니다.
끝점, 대상 끝점의 경우 'd' 또는 두 끝점의 경우 'b'입니다. 그러나 주의하시기 바랍니다
양방향 트래픽 생성으로 인해 예상치 못한 결과가 발생할 수 있습니다. 다르게 지정하려면
각 엔드포인트의 값은 쉼표로 구분하세요.

-G x=(q|p|g):(C|U|E|N|L|P|W):#1:[#2]

흐름 매개변수:

q 요청 크기(바이트)

p 응답 크기(바이트)

g 패킷 간 간격 요청(초)

배포판:

C 끊임없는 (#1: 값, #2: 사용하지 않음)

U 유니폼 (#1: 분, #2: 최대)

E 지수(#1: 람바 - 평생, #2: 사용하지 않음)

N 정상 (#1: mu - 평균값, #2: sigma_square - 분산)

L 로그정규(#1: 제타 - 뜻, #2: 시그마 - 표준 개발)

P 파레토 (#1: k - 모양, #2: x_min - 스케일)

W 웨이블(#1: 람다 - 규모, #2: k - 모양)

Weibull과 같은 고급 배포판은 flowgrind가 컴파일된 경우에만 사용할 수 있습니다.
libgsl을 지원합니다.

-U # 요청 및 응답 크기에 대해 계산된 값의 상한을 지정합니다.
고급 분산 값에는 제한이 없지만 우리는
버퍼 크기(상수 값이나 균일 분포에는 필요하지 않음) 가치
범위 외부에서는 유효한 결과가 나올 때까지 다시 계산되지만 최대 10개입니다.
회(그러면 경계값이 사용됨)

소켓 OPTION


Flowgrind에서는 옵션을 통해 다음과 같은 표준 및 비표준 소켓 옵션을 설정할 수 있습니다.
-O.

모든 소켓 옵션은 흐름 끝점을 옵션에 'x'로 표시되는 인수로 사용합니다.
통사론. 'x'는 소스 끝점의 경우 's'로, 끝점의 경우 'd'로 바꿔야 합니다.
대상 끝점 또는 두 끝점 모두 'b'입니다. 각각에 대해 다른 값을 지정하려면
끝점은 쉼표로 구분하세요. 또한, 동일한 내용을 반복해서 통과하는 것도 가능합니다.
여러 소켓 옵션을 지정하기 위한 엔드포인트입니다.

ㅁㄴㅇㄹ 소켓 옵션
-O x=TCP_혼잡=ALG
테스트 소켓에 혼잡 제어 알고리즘 ALG 설정

-O x=TCP_CORK
테스트 소켓에 TCP_CORK 설정

-O x=TCP_NODELAY
테스트 소켓에서 Nagle 알고리즘을 비활성화합니다.

-O x=SO_DEBUG
테스트 소켓에 SO_DEBUG를 설정합니다.

-O x=IP_MTU_DISCOVER
시스템 기본적으로 아직 활성화되지 않은 경우 테스트 소켓에 IP_MTU_DISCOVER를 설정합니다.

-O x=ROUTE_RECORD
테스트 소켓에 ROUTE_RECORD를 설정합니다.

비표준 소켓 옵션
-O x=TCP_MTCP
테스트 소켓에 TCP_MTCP(15) 설정

-O x=TCP_ELCN
테스트 소켓에 TCP_ELCN(20)을 설정합니다.

-O x=TCP_LCD
테스트 소켓에 TCP_LCD(21) 설정

사용 예


플로우 그라인드
flowgrind -H와 동일한 기본 설정으로 localhost IPv4 TCP 성능 테스트
b=127.0.0.1 -T s=10,d=0. flowgrind 데몬은 localhost에서 실행되어야 합니다.

플로우 그라인드 -H b=::1/127.0.0.1
위와 동일하지만 기본 설정으로 localhost IPv6 TCP 성능 테스트

플로우 그라인드 -H s=호스트1,d=호스트2
호스트1과 호스트2 사이의 대량 TCP 전송. Host1은 소스 역할을 하고, Host2는 소스 역할을 합니다.
대상 끝점. 두 끝점 모두 flowgrind 데몬을 실행해야 합니다. 그만큼
흐름 기간이 10초이고 데이터 스트림이 있는 기본 흐름 옵션이 사용됩니다.
호스트1에서 호스트2로

플로우 그라인드 -H s=호스트1,d=호스트2 -T s=0,d=10
위와 동일하지만 대신에 호스트 10에서 호스트 2로 XNUMX초 동안 데이터를 보내는 흐름이 있습니다.
host1

플로우 그라인드 -n 2 -F 0 -H s=192.168.0.1,d=192.168.0.69 -F 1 -H s=10.0.0.1,d=10.0.0.2
두 개의 병렬 흐름을 설정합니다. 첫 번째 흐름은 192.168.0.1과 192.168.0.69 사이이고, 두 번째
10.0.0.1에서 10.0.0.2 사이의 흐름

플로우 그라인드 -p -H s=10.0.0.100/192.168.1.100,d=10.0.0.101/192.168.1.101 -A s
10.0.0.100과 10.0.0.101 사이에 하나의 흐름을 설정하고 192.168.1.x IP 주소를 사용하십시오.
트래픽 제어를 위해. RTT 계산을 위한 최소 응답 활성화

플로우 그라인드 -i 0.001 -T s = 1 | 이그렙 ^S | 그누플롯 -지속 -e '구성 "-" 사용 3:5 라인
제목 "처리량" '
루프백 장치를 통해 하나의 흐름을 설정하고 도움말을 사용하여 보낸 사람의 데이터를 표시합니다.
gnuplot의

플로우 그라인드 -G s=q,C,400 -G s=p,N,2000,50 -G s=g,U,0.005,0.01 -U 32000
-G s=q,C,400: 400바이트의 일정한 요청 크기를 사용합니다.
-G s=p,N,2000,50: 평균 2000바이트의 정규 분포 응답 크기를 사용하고
차이 50
-G s=g,U,0.005,0.01: 최소 0.005초의 균일 분산 패킷 간 간격을 사용하고
최대 10ms
-U 32000: 블록 크기를 32KB에서 자릅니다(정규 분포에 필요).

교통 시나리오


다음 예는 flowgrind의 트래픽 생성 기능이 어떻게 될 수 있는지 보여줍니다.
사용된. 이는 flowgrind에 대한 다양한 테스트에 통합되었으며 입증되었습니다.
의미있는. 그러나 인터넷 트래픽은 다양하기 때문에 이러한 트래픽이 반드시 발생한다는 보장은 없습니다.
모든 상황에 적합합니다.

의뢰 응답 스타일 (HTTP)
이 시나리오는 다음 작업을 기반으로 합니다.
http://www.3gpp2.org/Public_html/specs/C.R1002-0_v1.0_041221.pdf.

플로우 그라인드 -M s -G s=q,C,350 -G s=p,L,9055,115.17 -U 100000
-M s: 송신측에서 트래픽을 덤프합니다.
-G s=q,C,350: 350바이트의 상수 요청 크기를 사용합니다.
-G s=p,L,9055,115: 평균이 9055이고 분산이 115인 로그 정규 분포를 사용합니다.
응답 크기
-U 100000: 100KB에서 응답을 자릅니다.

이 시나리오에서는 RTT(값이 낮을수록 좋음) 및 네트워크에 중점을 두는 것이 좋습니다.
지표로서의 거래/초(값이 높을수록 좋음)

대화 형 세션 (텔넷)
이 시나리오는 텔넷 세션을 에뮬레이트합니다.

플로우 그라인드 -G s=q,U,40,10000 -G s=q,U,40,10000 -O b=TCP_NODELAY
-G s=q,U,40,10000 -G s=q,U,40,10000: 균일한 분산 요청 및 응답 사용
40B에서 10kB 사이의 크기
-O b=TCP_NODELAY: 텔넷 애플리케이션에서 사용되는 소켓 옵션 TCP_NODELAY를 설정합니다.

이 시나리오에서는 RTT(낮을수록 좋음) 및 네트워크 트랜잭션이 유용한 측정항목입니다.
(높을수록 좋습니다).

제한된 (스트리밍 미디어)
이 시나리오는 800kbit/s의 비트 전송률로 비디오 스트림 전송을 에뮬레이트합니다.

플로우 그라인드 -G s=q,C,800 -G s=g,N,0.008,0.001
평균이 0.008이고 분산이 작은 정규 분산 패킷 간 간격을 사용합니다.
(0.001). 요청 크기가 800바이트이고 평균 비트 전송률이 약 800인 경우
kbit/s가 달성되었습니다. 가변 비트 전송률을 에뮬레이트하기 위해 차이가 추가됩니다.
오늘날의 비디오 코덱에 사용됩니다.

이 시나리오의 경우 IAT(낮을수록 좋음) 및 최소 처리량(높을수록 좋음)은 다음과 같습니다.
흥미로운 지표.

출력 COLUMNS


흐름/엔드포인트 식별자
# 흐름 끝점(소스는 'S', 대상은 'D')

ID 수치 흐름 식별자

시작하다end
측정 간격의 경계(초)입니다. 표시된 시간은 경과된 시간입니다.
데몬 지점에서 테스트를 시작하기 위해 RPC 메시지를 받은 이후의 시간입니다.
전망

어플리케이션 통계
을 통하여
이 측정 간격 동안 흐름 끝점의 Goodput을 전송하고,
Mbit/s(기본값) 또는 MB/s(-m)

트랜스 악
초당 성공적으로 수신된 응답 블록 수(우리는 이를 네트워크라고 부릅니다)
거래)

요청/응답
이 측정 간격 동안 전송된 요청 및 응답 블록의 수(열
기본적으로 비활성화됨)

IAT IAT(도착 간격 시간)를 차단합니다. 최소값과 최대값을 함께
특정 측정 간격에 대한 산술 평균이 표시됩니다. 블록이 없으면
보고 간격 동안 수신되면 'inf'가 표시됩니다.

DLYRTT
단방향 및 양방향 블록 지연은 각각 블록 지연 시간과 블록 왕복 시간입니다.
시간(RTT). 두 지연 모두에서 발생한 최소 및 최대 값은 다음과 같습니다.
측정 간격은 산술 평균과 함께 표시됩니다. 블록이 없다면,
해당 보고 간격 동안 각각 블록 승인이 도착하면 'inf'는
표시됩니다. 단방향 및 양방향 차단 지연은 모두 기본적으로 비활성화되어 있습니다(참조:
선택권 -I-A).

핵심 통계 (TCP_INFO)
다음의 모든 TCP 관련 측정항목은 TCP_INFO를 통해 커널에서 가져옵니다.
소켓 옵션 end 모든 보고 간격의 샘플링 속도는 다음을 통해 변경할 수 있습니다.
선택권 -i.

cwnd (tcpi_cwnd)
세그먼트 수(Linux) 또는 바이트 수로 표시되는 CWND(TCP 혼잡 창) 크기
(프리BSD)

으악 (tcpi_snd_sshtresh)
세그먼트 수(Linux) 또는 바이트 수(FreeBSD)로 표시되는 느린 시작 임계값의 크기

어이쿠 (tcpi_unacked)
현재 승인되지 않은 세그먼트 수, 즉 비행 중인 세그먼트 수
(FlightSize) (Linux에만 해당)

해고 (tcpi_sacked)
선택적으로 승인된 세그먼트 수(Linux에만 해당)

잃어버린 (tcpi_lost)
손실된 것으로 간주되는 세그먼트 수(Linux에만 해당)

다시 (tcpi_retrans)
확인되지 않은 재전송 세그먼트 수(Linux에만 해당)

트렛 (tcpi_retransmits)
RTO(재전송 시간 초과)로 인해 트리거되는 재전송 수(Linux에만 해당)

ack (tcpi_fackets)
SND.UNA와 선택적으로 승인된 최고 세그먼트 사이의 세그먼트 수
시퀀스 번호(SND.FACK)(Linux에만 해당)

재개발하다 (tcpi_재주문)
세그먼트 재정렬 측정항목. Linux 커널은 재정렬을 감지하고 이에 대처할 수 있습니다.
세그먼트가 변위되는 거리가 그렇지 않으면 성능이 크게 저하되지 않습니다.
재정렬 측정항목을 초과하지 않음(Linux에만 해당)

rtt (tcpi_rtt) 및 rttvar (tcpi_rttvar)
TCP 왕복 시간과 그 변동은 ms 단위로 제공됩니다.

RTO (tcpi_rto)
ms 단위로 지정된 재전송 시간 제한

비코프 (tcpi_backoff)
RTO 백오프 수(Linux에만 해당)

ca 상태 (tcpi_ca_state)
TCP 혼잡 제어 상태 머신의 내부 상태는 다음과 같이 구현됩니다.
리눅스 커널. 다음 중 하나일 수 있습니다. 열 수, 무질서, CWR, 회복 or 오프 (리눅스 전용)

엽니다 정상적인 상태입니다. 중복 승인(ACK)이 없음을 나타냅니다.
수신되었으며 세그먼트가 손실된 것으로 간주되지 않습니다.

무질서
첫 번째 연속 중복 ACK를 수신하면 입력됩니다.
선택적 승인(SACK)

CWR ECN(명시적 혼잡 알림)에서 알림이 수신되면 입력됩니다.
접수

회복
XNUMX개의 중복 ACK 또는 이에 상응하는 수의 SACK이 있는 경우 입력됩니다.
받았다. 이 상태에서는 다음과 같은 혼잡 제어 및 손실 복구 절차가 수행됩니다.
빠른 재전송 및 빠른 복구(RFC 5861)가 실행됩니다.

손실 RTO가 만료되면 입력됩니다. 다시 혼잡 제어 및 손실 복구
절차가 실행됩니다

SMS오후
송신자 최대 세그먼트 크기 및 경로 최대 전송 단위(바이트)

내부의 플로우 그라인드 상태 (뿐 사용 가능 in 디버그 빌드)
지위 진단 목적으로 flowgrind 내부 흐름 상태. XNUMX개의 튜플입니다.
첫 번째는 전송용이고 두 번째는 수신용입니다. 이상적으로는
흐름의 소스와 대상 엔드포인트는 모두 대칭이어야 하지만
동기화되지 않아 동시에 변경되지 않을 수 있습니다. 가능한 값
위치 :

c 방향 완료 송신/수신

d 초기 지연을 기다리는 중

f 결함 상태

l 활성 상태, 아직 전송되거나 수신된 것이 없습니다.

n 정상적인 활동, 일부 데이터가 전송되거나 수신됨

o 흐름은 해당 방향의 지속 시간이 XNUMX이므로 데이터가 교환되지 않습니다.

작가


Flowgrind는 원래 Daniel Schaffrath에 의해 시작되었습니다. 분산 측정
아키텍처 및 고급 트래픽 생성은 나중에 Tim Kosse에 의해 추가되었으며
크리스찬 삼셀. 현재 Flowgrind는 Arnd Hannemann과
알렉산더 짐머만.

onworks.net 서비스를 사용하여 온라인으로 flowgrind를 사용하세요


무료 서버 및 워크스테이션

Windows 및 Linux 앱 다운로드

Linux 명령

Ad