Iperf3 error unable to connect to server no route to host

I have installed same version of iperf (2.0.5) on 2 different ubuntu systems. But when i execute command iperf -s -p 45678 on one system and iperf -c 172.18.41.17 -p 458 -t 10 on another system. It...

I have installed same version of iperf (2.0.5) on 2 different ubuntu systems.
But when i execute command iperf -s -p 45678 on one system and iperf -c 172.18.41.17 -p 458 -t 10 on another system. It gives me error «connect failed: No route to host».

Any help would be appreciated.

EDIT: One system is working as server but the same system is not working as client.

asked Jul 18, 2017 at 10:41

Nikita's user avatar

NikitaNikita

4151 gold badge5 silver badges18 bronze badges

1

sometimes, the firewall service will prevent the tcp connection initiation, try by disabling the firewall service in client and server «service firewalld stop

answered Aug 13, 2018 at 7:29

user2002885's user avatar

2

by default iperf uses its ipv6
run on the server

iperf -s -p -4 45678

on the client run

iperf -c 172.18.41.17 -p 458 -t 10 -4 

answered Nov 3, 2018 at 17:43

Danniel Shalev's user avatar

Try using a different port. I’m having this issue but when I try other ports, it is working. I’d like to know the reason however.

Also server and client port should be the same

answered Apr 21, 2019 at 7:11

user3480788's user avatar

2

If the link delay in the network is greater than tcp connection timeout value. Then, this might happen. Because the SYN packet wont get ACK within the timeout value. Therefore iperf client will out Connection failed: No route to host

answered Oct 16, 2020 at 20:04

Vinay's user avatar

VinayVinay

1011 silver badge7 bronze badges

netstat -rn on the client to might be helpful. The client is complaining that it doesn’t have have a route and it’s routing tables can help diagnose why.

answered Jul 31, 2017 at 6:22

rjmcmahon's user avatar

rjmcmahonrjmcmahon

3041 silver badge3 bronze badges

iperf -s -p 45678

Here you started server on port no. 45678. and

iperf -c 172.18.41.17 -p 458 -t 10

For client also you should use the same port no. you are using here port no. 458. make it same as server and test. the error might because of the mismatched port no.

answered Aug 23, 2017 at 10:44

suraj's user avatar

surajsuraj

4034 silver badges15 bronze badges

  • Add bookmark

  • #1

I am having a problem getting iperf to work on my new installation of Fedora core 5.<BR>I have two new computers both with the same install of FC5 on them. The computers are connected via a crossover cable. I start the iperf server on computer A with iperf -s I start the client on computer B with iperf -c 10.0.1.102. The server starts fine, but the client comes back with an error. Here is my error message:<BR>[root@asdf ~]# ./iperf -c 10.0.1.102<BR>connect failed: No route to host<BR><BR>The strange thing is I can ping 10.0.1.102, and I can ftp to 10.0.1.102. <BR>If I use two windows machines iperf it works just fine.<BR>Attached are route -n and ifconfig eth0 for both machines<BR><BR>Computer B<BR>Client side:<BR>Kernel IP routing table<BR>Destination Gateway Genmask Flags Metric Ref Use Iface<BR>10.0.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0<BR>169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0<BR><BR>eth0 Link encap:Ethernet HWaddr 00:13:20:7E:36:19 <BR> inet addr:10.0.1.103 Bcast:10.0.1.255 Mask:255.255.255.0<BR> inet6 addr: fe80::213:20ff:fe7e:3619/64 Scope:Link<BR> UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<BR> RX packets:179 errors:0 dropped:0 overruns:0 frame:0<BR> TX packets:204 errors:0 dropped:0 overruns:0 carrier:0<BR> collisions:0 txqueuelen:1000 <BR> RX bytes:16727 (16.3 KiB) TX bytes:191107 (186.6 KiB)<BR><BR>Computer A<BR>Server side:<BR>eth0 Link encap:Ethernet HWaddr 00:13:20:7E:3A:09 <BR> inet addr:10.0.1.102 Bcast:10.0.1.255 Mask:255.255.255.0<BR> inet6 addr: fe80::213:20ff:fe7e:3a09/64 Scope:Link<BR> UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<BR> RX packets:42 errors:0 dropped:0 overruns:0 frame:0<BR> TX packets:51 errors:0 dropped:0 overruns:0 carrier:0<BR> collisions:0 txqueuelen:1000 <BR> RX bytes:3458 (3.3 KiB) TX bytes:3986 (3.8 KiB)<BR><BR>Kernel IP routing table<BR>Destination Gateway Genmask Flags Metric Ref Use Iface<BR>10.0.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0<BR>169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0<BR><BR>I have tried another throughput tester program and get the same error.<BR>How can I resolve this?

  • Add bookmark

  • #2

I would check your firewall settings. Your network settings look OK. If ping works, they almost certainly are OK. That really only leaves a firewall as something which could be keeping the iperf connection from going through.

  • Add bookmark

  • #3

I agree with TheShark, check your firewall settings. I see a lot with RedHat 4, that if the packets are dropped by a firewall it reports «no route to host».

Мониторинг производительности Linux (производительность сети)

Мониторинг сети является самой сложной из всех подсистем Linux, в ней слишком много факторов, таких как: задержка, блокировка, коллизия, потеря пакетов и т. Д. Хуже, маршрутизаторы, коммутаторы и беспроводные сигналы, подключенные к хосту Linux, будут влиять Трудно определить, связано ли это с сетевой подсистемой Linux или другими устройствами, когда дело касается всей сети, что увеличивает сложность мониторинга и оценки. Теперь все используемые нами сетевые карты называются адаптивными сетевыми картами, что означает, что их можно автоматически настраивать в соответствии с различными скоростями сети и режимами работы, вызванными различными сетевыми устройствами в сети.

команда iperf3

iperf3 — это кроссплатформенная программа командной строки с открытым исходным кодом, позволяющая проводить измерения пропускной способности сети в реальном времени Это один из мощных инструментов для тестирования максимально достижимой пропускной способности в IP-сетях (поддерживает IPv4 и IPv6).
iperf3 — инструмент тестирования производительности сети. Iperf может проверить качество пропускной способности TCP и UDP. iperf3 может измерять максимальную пропускную способность TCP с различными параметрами и характеристиками UDP. Iperf может сообщать о пропускной способности, задержке дрожания и потере пакетов. Используя функцию iperf3, ее можно использовать для проверки производительности некоторых сетевых устройств, таких как маршрутизаторы, брандмауэры и коммутаторы.

Требования: на обоих компьютерах, подключенных к Интернету, установлен iperf3.

монтаж

CentOS, RedHat или Fedora, выполните следующую команду для установки
yum install iperf3
Debian, Ubuntu или его производные, выполните следующую команду для установки
apt install iperf3

Грамматический формат

iperf [-s|-c host] [options]
iperf [-h|–help] [-v|–version]

параметр

По умолчанию клиент использует протокол TCP
-s: указывает, что это сервер
-c: указывает на клиента (-c, за которым следует ip на стороне сервера)
-u: указать сообщение udp
-b: укажите размер полосы пропускания передачи
-p: указать порт
-h: просмотреть значение всех параметров

Примеры

нота:
Настройте брандмауэр перед тестированием, в противном случае появится следующая ошибка

iperf3: error - unable to connect to server: No route to host

Освободить IP-адрес клиента на сервере

iptables -I INPUT 1 -s 192.168.10.11 -j ACCEPT

Сервис-Терминал:
iperf3 –s -p 9011
[ , , (img-GaXzYG6t-1575019225841)(en-resource://database/2683:1)]

Клиент:
iperf3 -u -c 192.168.10.10 -b 100M -p 9011

команда netstat

Netstat — это инструмент командной строки, который можно использовать для вывода списка всех сетевых сокетов в системе, включая сокеты tcp, udp и unix. Кроме того, он также может перечислять те, которые находятся в состоянии прослушивания (то есть ожидают запросы доступа) Разъем. Если вы хотите проверить, работает ли веб-служба в системе, вы можете проверить, открыт ли порт 80.

монтаж

yum предоставляет команду * / netstat, вы можете увидеть инструментарий, предоставляющий команду

CentOS, RedHat или Fedora, выполните следующую команду для установки
yum install net-tools
Debian, Ubuntu или его производные, выполните следующую команду для установки
apt install net-tools

грамматика

netstat [-acCeFghilMnNoprstuvVwx] [- A <тип сети>] [- ip]

параметр

-a или –all Показать все разъемы в соединении.
-A <тип сети> или — <тип сети> перечисляет соответствующие адреса в подключении типа сети.
-c или –continuous непрерывно отображает состояние сети.
-C или –cache Показать информацию о кеше конфигурации маршрутизатора.
-e или –extend отображает другую информацию, связанную с сетью.
-F или –fib отображает FIB.
-g или –groups Показать список членов группы с несколькими функциями вещания.
-h или —help онлайн-справка.
-i или –interfaces Показать форму информации о веб-интерфейсе.
-l или –listening Отображение сокета отслеживаемого сервера.
-M или –masquerade показывают скрытое сетевое соединение.
-n или –numeric напрямую используют IP-адрес, не проходя через сервер доменных имен.
-N или –netlink или –symbolic отображает символическое имя подключения сетевого оборудования.
-o или –timers отображает таймер.
-p или –programs отображает идентификационный код программы и имя программы используемого сокета.
-r или –route Показать таблицу маршрутизации.
-s или –statistice Показать таблицу статистики сетевой информации о работе.
-t или –tcp отображают состояние соединения протокола передачи TCP.
-u или –udp отображает состояние соединения протокола передачи UDP.
-v или –verbose отображает процесс выполнения команды.
-V или —version отображать информацию о версии.
-w или –raw Показать состояние соединения протокола передачи RAW.
-x или –unix Эффект этого параметра аналогичен указанию параметра «-A unix».
–ip или –inet Эффект этого параметра аналогичен указанию параметра «-A inet».

Примеры

1. Перечислите все соединения

netstat -a

2. Список только соединений по протоколу TCP или UDP

netstat -at #List все соединения протокола TCP

netstat -au # Список всех соединений по протоколу UDP

3. Получить имя процесса, номер процесса и идентификатор пользователя

netstat -nlpt

4. Просмотр подключения статуса мониторинга

netstat -tuln

Объяснение выходной информации
Proto Recv-Q Send-Q Local Address Foreign Address State

  1. Proto: протокол сетевого подключения, обычно протокол TCP или UDP.
  2. Recv-Q: указывает, что полученные данные уже находятся в локальном буфере, но не были приняты процессом.
  3. Send-Q: указывает, что данные отправлены с локального компьютера, но другая сторона не получила данные, все еще находится в локальном буфере и не имеет флага ACK.
  4. Локальный адрес: IP-адрес и номер порта данного аппарата.
  5. ForeignAddress: IP-адрес и номер порта удаленного хоста.
  6. Государство: Государство. Общие состояния в основном следующие.
    -LISTEN: мониторинг состояния, мониторинг только протокола TCP, но мониторинг протокола UDP не требуется.
    -ESTABLISHED: соединение установлено. Если вы используете опцию «-I», вы не увидите статус установленного соединения.
    -SYN_SENT: SYN инициирует пакет, то есть пакет данных, который инициирует соединение.
    -SYN_RECV: получен активно подключенный пакет данных.
    -FIN_WAIT1: соединение прерывается.
    -FIN_WAIT2: соединение было прервано, но оно ожидает подтверждения от хоста другой стороны.
    -TIME_WAIT: соединение было прервано, но сокет все еще ожидает завершения сети.
    -CLOSED: сокет не используется.

Среди этих состояний наиболее часто используются состояния LISTEN и ESTABLISHED, один тип прослушивает, а другой подключен.

5. Распечатать статистику

netstat -s

6. Показать информацию о маршрутизации ядра

netstat -rn

7. Печать сетевого интерфейса

netstat -i

команда iftop

iftop — инструмент мониторинга трафика в реальном времени, похожий на top.

монтаж

CentOS, RedHat или Fedora, выполните следующую команду для установки
yum install iftop
Debian, Ubuntu или его производные, выполните следующую команду для установки
apt install iftop

Общие параметры

-i Установить отслеживаемую сетевую карту, например: # iftop -i eth1
-B отображает трафик в байтах (по умолчанию это биты), например: # iftop -B
-n заставляет информацию об узле отображать IP по умолчанию напрямую, например: # iftop -n
-N заставляет информацию порта отображать номер порта напрямую по умолчанию, например: # iftop -N
-F отображает входящий и исходящий трафик определенного сегмента сети, например # iftop -F 121.11.1.0/24 или # iftop -F 121.11.1.0/255.255.255.0
-h (показать это сообщение), справка, показать информацию о параметрах
-p После использования этого параметра информация о локальном хосте, отображаемая в среднем списке, показывает информацию об IP, отличную от локального компьютера;
-b по умолчанию отображает панель потокового графика;
-P отображает информацию о хосте и порте по умолчанию;

Некоторые команды управления после входа в экран iftop

Нажмите h, чтобы включить или отключить отображение справки;
Нажмите n, чтобы переключиться на отображение локального IP-адреса или имени хоста;
Нажмите N, чтобы переключиться, чтобы отобразить номер порта или имя службы порта;
Нажмите D, чтобы выбрать, отображать ли информацию о порте удаленного целевого хоста;
Нажмите P для переключения отображения паузы / продолжения;
Нажмите b, чтобы выбрать, отображать ли график графика среднего расхода;
Нажмите B, чтобы переключиться для расчета средней скорости потока в течение 2 секунд, 10 секунд или 40 секунд;
Нажмите l, чтобы открыть функцию фильтрации экрана, введите символы для фильтрации, такие как ip, после нажатия клавиши Enter на экране отобразятся только данные о потоке, относящиеся к IP;
Нажмите 1, 2 или 3, чтобы отсортировать данные в соответствии с тремя столбцами потоковых данных, отображаемыми справа;
Нажмите q, чтобы выйти из режима мониторинга

Примеры
iftop -i ens33 -n -P

Описание интерфейса Iftop:

Шкала, отображаемая на интерфейсе, аналогична шкале шкалы, которая используется как шкала для отображения потокового графика.

Две стрелки влево и вправо в середине <= => указывают направление потока.

TX: отправлять трафик
RX: получение трафика
ИТОГО: общий трафик
Cumm: общий поток от запущенного iftop до текущего времени
пик: пик трафика
ставки: представляет средний трафик за последние 2 с 10 с 40 с

команда nload

nload — это еще один простой и удобный инструмент командной строки для мониторинга сетевого трафика и использования полосы пропускания в режиме реального времени. Он использует графики, чтобы помочь вам контролировать входящий и исходящий трафик. Кроме того, он отображает такую ​​информацию, как общий объем передаваемых данных и минимальное / максимальное использование сети.

монтаж

CentOS, RedHat или Fedora, выполните следующую команду для установки
yum install nload
Debian, Ubuntu или его производные, выполните следующую команду для установки
apt install nload

грамматика

nload [options] [devices]

параметр

-i: установить максимальный масштаб отображения потокового графа сетевой карты, по умолчанию 10240 кбит / с.
-m: не отображать потоковый график, только отображать статистические данные.
-o: максимальная настройка масштаба отображения потокового графа исходящей сетевой карты по умолчанию составляет 10240 кбит / с.
-t: интервал обновления отображаемых данных, единица измерения — миллисекунды, по умолчанию — 500.
-u: установите единицу данных Curr, Avg, Min, Max справа, значение по умолчанию будет автоматически изменено. Обратите внимание, что верхний и нижний регистры различаются!
h|b|k|m|g h: auto, b: Bit/s, k: kBit/s, m: MBit/s etc.
H|B|K|M|G H: auto, B: Byte/s, K: kByte/s, M: MByte/s etc.
-U: установите блок данных Ttl справа, значение по умолчанию будет автоматически изменено. Обратите внимание, что верхний и нижний регистры различаются (как -u)

Примеры
nload

Нажмите Tab для переключения сетевой карты

nload по умолчанию делится на два блока:
Первая половина: входящий трафик, входящий в сетевую карту,
Вторая половина: исходящая, то есть трафик, исходящий из этой сетевой карты,
Каждая часть имеет текущий ток (Curr),
Средний трафик (Avg),
минимальная скорость потока (мин),
Максимальная скорость потока (Макс),
Общий трафик (Ttl) все еще довольно интуитивен.

команда nethogs

NetHogs — это текстовый инструмент верхнего уровня для мониторинга использования полосы пропускания сетевого трафика в режиме реального времени каждым процессом или приложением, работающим в системе Linux. Он предоставляет только статистику в реальном времени, основанную на использовании пропускной способности сети каждого процесса.

монтаж

CentOS, RedHat или Fedora, выполните следующую команду для установки
yum install nethogs
Debian, Ubuntu или его производные, выполните следующую команду для установки
apt install nethogs

грамматика

nethogs [-h] [-V] [-d] [-v] [-t] [-c] [-p] [-s] [device(s)]

параметр

-V: Версия для печати.
-d: частота обновления. По умолчанию 1 с.
-t: режим отслеживания.
-b: режим bughunt, неявный режим трассировки.
-p: нюхать в смешанном режиме (не рекомендуется).
Устройство : укажите устройство сетевой карты мониторинга.

горячая клавиша
m: изменить единицу измерения
r: сортировка по трафику
s: сортировка по отправке трафика
q: выход из командной строки

Примеры
nethogs

Мониторинг нескольких сетевых карт

nethogs ens33 ens34

We have a 3 Unix (1 Ubuntu 2 Redhat) servers connected via their 10 Gbit network cards to a 10 Gbit switch (our IT person made sure we got the correct cables). We experience some odd behaviour when sending files between the servers (either via scp 10Gbit-ip or a folder mounted via fstab using 10 Gbit ip). The speed is usually far from 10 Gbit but slightly over 1 Gbit. And on one of the server the progess bar is very quick but then gets stuck on 100 % for a long long time. Also true for scp on that server.

To make sure we got Full-Duplex and 10000 Mbit/s I used two different functions and they give conflicting information. Does someone have any ideas of what is going on? mii-tools and ethtool don’t give the same information:

em1 = 1 Gbit network (via 10 Gbit port)
em2 = 10 Gbit network (via 10 Gbit port)

ifconfig:

[admin@XXXX ~]$ ifconfig 
em1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet XXXX  netmask 255.255.255.0  broadcast XXXXX
        inet6 fe80::eef4:bbff:fed5:c230  prefixlen 64  scopeid 0x20<link>
        ether ec:f4:bb:d5:c2:30  txqueuelen 1000  (Ethernet)
        RX packets 3938043336  bytes 17103106879433 (15.5 TiB)
        RX errors 0  dropped 28  overruns 0  frame 0
        TX packets 8178327495  bytes 8360136815032 (7.6 TiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

em2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet XXXXX netmask 255.255.255.0  broadcast XXXX
        inet6 fe80::eef4:bbff:fed5:c232  prefixlen 64  scopeid 0x20<link>
        ether ec:f4:bb:d5:c2:32  txqueuelen 1000  (Ethernet)
        RX packets 3314001  bytes 28089131102 (26.1 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7632971  bytes 7936298958 (7.3 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 

mii-tool:

[admin@XXX ~]$ sudo mii-tool em1
[sudo] password for admin: 
SIOCGMIIREG on em1 failed: Invalid argument
SIOCGMIIREG on em1 failed: Invalid argument
SIOCGMIIREG on em1 failed: Invalid argument
em1: 1000 Mbit, half duplex, link ok

[admin@XXX ~]$ sudo mii-tool em2
SIOCGMIIREG on em2 failed: Invalid argument
SIOCGMIIREG on em2 failed: Invalid argument
SIOCGMIIREG on em2 failed: Invalid argument
em2: 1000 Mbit, half duplex, link ok

ethool:

[admin@XXXX ~]$ sudo ethtool em1
Settings for em1:
    Supported ports: [ TP ]
    Supported link modes:   100baseT/Full 
                            1000baseT/Full 
                            10000baseT/Full 
    Supported pause frame use: No
    Supports auto-negotiation: Yes
    Advertised link modes:  100baseT/Full 
                            1000baseT/Full 
                            10000baseT/Full 
    Advertised pause frame use: No
    Advertised auto-negotiation: Yes
    Speed: 1000Mb/s
    Duplex: Full
    Port: Twisted Pair
    PHYAD: 0
    Transceiver: external
    Auto-negotiation: on
    MDI-X: Unknown
    Supports Wake-on: umbg
    Wake-on: g
    Current message level: 0x00000007 (7)
                   drv probe link
    Link detected: yes

[admin@XXXX ~]$ sudo ethtool em2

Settings for em2:
    Supported ports: [ TP ]
    Supported link modes:   100baseT/Full 
                            1000baseT/Full 
                            10000baseT/Full 
    Supported pause frame use: No
    Supports auto-negotiation: Yes
    Advertised link modes:  100baseT/Full 
                            1000baseT/Full 
                            10000baseT/Full 
    Advertised pause frame use: No
    Advertised auto-negotiation: Yes
    Speed: 10000Mb/s
    Duplex: Full
    Port: Twisted Pair
    PHYAD: 0
    Transceiver: external
    Auto-negotiation: on
    MDI-X: Unknown
    Supports Wake-on: umbg
    Wake-on: g
    Current message level: 0x00000007 (7)
                   drv probe link
    Link detected: yes

As you can see everything looks good with ethtool (full dubplex and full speed) but not with mii-tool (1000 Mb/s and half duplex). What could be the reason and potential test / fix?

Понравилась статья? Поделить с друзьями:
  • Iperf3 error unable to connect to server connection timed out
  • Iperf3 error unable to connect to server connection refused
  • Iperf3 error received an unknown control message
  • Iperf3 error control socket has closed unexpectedly
  • Ipdl protocol error handler returned error code