init
This commit is contained in:
102
iperf.md
Normal file
102
iperf.md
Normal file
@@ -0,0 +1,102 @@
|
||||
### iperf
|
||||
**Совместимость iPerf и iPerf3**
|
||||
Клиент и сервер совместимы, но нужно знать, что по умолчанию, рабочий порт для iPerf — 5001, для iPerf3 — 5201.
|
||||
**Установка**
|
||||
```bash
|
||||
sudo apt install iperf
|
||||
```
|
||||
или
|
||||
```bash
|
||||
sudo apt install iperf3
|
||||
```
|
||||
Запускаем сервер:
|
||||
```bash
|
||||
iperf3 -s
|
||||
```
|
||||
На экране появится:
|
||||
```
|
||||
-----------------------------------------------------------
|
||||
Server listening on 5201
|
||||
-----------------------------------------------------------
|
||||
```
|
||||
Сервер ждет запросов.
|
||||
**Все ключи запуска iPerf**
|
||||
**Общие для сервера и клиента:**
|
||||
Ключ Описание
|
||||
`-p` _Определить порт, на котором будет слушать сервер или отправлять запросы клиент_
|
||||
`-f` _Формат отчетов — kmgKMG (Kbits, Mbits, KBytes, MBytes, ...)_
|
||||
`-i` _Задать интервал, в течение которого выполняется одна проверка_
|
||||
`-F` _Указать файл, из которого будут взяты входные данные для запуска_
|
||||
`-A` _Степень нагрузки на процессор_
|
||||
`-B` _Указать, через какой сетевой интерфейс работать_
|
||||
`-V` _Детализированные сообщения в консоли_
|
||||
`-J` _Вывод в формате json_
|
||||
`--logfile` _Весь вывод в отдельный лог-файл_
|
||||
`-d` _Режим отладки (много сообщений)_
|
||||
`-v` _Показать версию программы_
|
||||
`-h` _Вызвать справку по работе с программой_
|
||||
|
||||
**Для сервера:**
|
||||
Ключ Описание
|
||||
`-s` _Запустить iPerf в режиме сервера_
|
||||
`-D` _Запустить как демона (как службу)_
|
||||
`-I` _Указать pid-файл_
|
||||
`-1` _Принять запрос от одного клиента и завершить работу_
|
||||
|
||||
**Для клиента:**
|
||||
Ключ Описание
|
||||
`-c` _Запустить iPerf в режиме клиента_
|
||||
`-u` _Отправлять UDP-пакеты_
|
||||
`-b` _Формат отчетов для bandwidth (средней скорости)_
|
||||
`-t` _Количество секунд, в течение которых будет идти проверка скорости_
|
||||
`-n` _Объем данных для проверки (применяется вместо времени -t)_
|
||||
`-k` _Количество пакетов для проверки (вместо -t или -n)_
|
||||
`-l` _Размер буфера записи/чтения для TCP (по-умолчанию 128K), размер пакета для UDP (по-умолчанию 1470)_
|
||||
`-P` _Число параллельных запросов_
|
||||
`-R` _Обратный режим — сервер отправляет, клиент принимает_
|
||||
`-w` _Размер сетевого окна_
|
||||
`-C` _Установить алгоритм управления перегрузкой TCP_
|
||||
`-M` _Задать максимальный размер MTU_
|
||||
`-4` _Работать только для IPv4_
|
||||
`-6` _Работать только для IPv6_
|
||||
`-Z` _Использовать метод «нулевой копии» для отправки данных_
|
||||
`-O` _Опустить первые n секунд_
|
||||
`-T` _Задать префикс для каждой строки вывода_
|
||||
|
||||
Также самый свежий список ключей можно получить командой:
|
||||
```bash
|
||||
man iperf3
|
||||
```
|
||||
**Примеры использования iPerf**
|
||||
_Рассмотрим некоторые команды запросов к серверу для проверки скорости соединения._
|
||||
Использование UDP
|
||||
```bash
|
||||
iperf3 -c 192.168.0.15 -u
|
||||
```
|
||||
* сам сервер не нужно запускать в UDP-режиме, так как он принимает любые запросы.
|
||||
|
||||
Альтернативные порты
|
||||
_Для этого необходимо сначала запустить сервер на нужном порту:_
|
||||
```bash
|
||||
iperf3 -s -p 443
|
||||
```
|
||||
* кстати, можно запустить несколько процессов iperf одновременно, которые будут слушать на разных портах.
|
||||
* стоит не забывать про настройки брандмауэра. В данном примере понадобиться ввести команды `firewall-cmd --permanent --add-port=443/tcp и firewall-cmd --reload`.
|
||||
|
||||
Теперь можно запускать клиента:
|
||||
```bash
|
||||
iperf3 -c 192.168.0.15 -p 443
|
||||
```
|
||||
Проверка скорости в течение 30 секунд с интервалами по 2 секунды
|
||||
```bash
|
||||
iperf3 -c 192.168.0.15 -t 30 -i 2
|
||||
```
|
||||
Несколько параллельных запросов
|
||||
```bash
|
||||
iperf3 -c 192.168.0.15 -P 3
|
||||
```
|
||||
Отправляем на проверку 3 Гб данных
|
||||
```bash
|
||||
iperf3 -c 192.168.0.15 -n 3G
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user