Пропинговать размер пакета Windows и отправить эхо-запрос ICMP на имя целевого хоста или IP-адрес

Тематические термины: Ping, Windows, Linux.

Мы рассмотрим использование команды ping для Windows и, немного, для Linux.

Существуют Linux-команды, которые всегда должны быть под рукой у системного администратора. Эта статья посвящена 7 утилитам, предназначенным для работы с сетью.

Этот материал — первый в серии статей, построенных на рекомендациях, собранных от множества знатоков Linux. А именно, я спросил у наших основных разработчиков об их любимых Linux-командах, после чего меня буквально завалили ценными сведениями. А именно, речь идёт о 46 командах, некоторые из которых отличает тот факт, что о них рассказало несколько человек.

Пропинговать размер пакета Windows и отправить эхо-запрос ICMP на имя целевого хоста или IP-адрес

В данной серии статей будут представлены все эти команды, разбитые по категориям. Первые 7 команд, которым и посвящена эта статья, направлены на работу с сетью.

These commands shown here are tested on Windows 10 but most will work in other versions of Windows as well.

I would like to change the default size of my ping, to be able to test the MTU on my link.

How can I do that?

asked Jul 6, 2016 at 11:43

Antoine Orsoni's user avatar

Antoine Orsoni

1 gold badge4 silver badges11 bronze badges

To test the maximum MTU size on a link (i.e. to test for ICMP fragmentation) you can set the ping packet size using the -s option.

For example, to find the maximum MTU you can loop over increasing packet sizes until ping returns an error code:

size=1272
while ping -s $size -c1 -M do google.com >&/dev/null; do ((size+=4))
done
echo "Max MTU size: $((size-4+28))"

answered Jul 6, 2016 at 12:00

steeldriver's user avatar

21 gold badges229 silver badges316 bronze badges

Here’s a very simple solution:

ping -s 4024 192.168.0.3

Where -s determines the size of the packet being sent

answered May 10, 2018 at 9:54

CodeBleeder's user avatar

Here’s a very simple solution:
ping -s 4024 192.168.0.3
Where -s determines the size of the packet being sent

The suggestions above won’t work anymore on any modern Debian based linux systems due to iputils quietly breaking:

answered Mar 31, 2021 at 4:23

Paul's user avatar

On Windows OS, the -l parameter allows to change the size of the icmp packet (the default size is 32 bytes). According to Microsoft

Here’s an example of a ping with 1450 bytes of data:

ping -l 1450 131.107.8.1

answered Jul 6, 2016 at 11:43

Antoine Orsoni's user avatar

Antoine Orsoni

1 gold badge4 silver badges11 bronze badges

Overview

The ping command is one of the primary network troubleshooting tools to test reachability of a remote computer (hence the term “can it be pinged?”). Written by Mike Muuss in 1983, this utility, comprise of about a thousand line of code, was reportedly named “ping” to have it sound like the ping submarine sonar makes.

How ping accomplishes this is by sending a series of small data packet to a device and waiting for a reply from the device to acknowledge (also referred to as replies) it received the data. For most Windows computer, the ping command sends a series of four (4) data packets. Most network devices are configured to automatically listen for and acknowledge receipt of each ping packet sent to them. The ping/reply process typically takes just milliseconds for each data packet. The replies, will let us know if the device is online and how long it took to receive the reply (known as latency).

  • How many data packets were sent, received, and lost (you want to see zero lost).
  • Amount of time it took to receive the replies from the remote device – also referred to as latency. This is expressed in milliseconds, lower is better. Anything lower than 20 milliseconds (ms) is very good.
  • Time-to-Live (TTL) value that is used to tell the remote device how long to hold/use the packet before it can discard it. The TTL exact value differs based on the operating system. Maximum value is 255.
  • The IP address of the remote device (if it is a URL being pinged).

Параметры команды ping и их описание

В зависимости от используемой операционной системы опции команды будут иметь разные назначения. Поэтому, если мы хотим понять все возможности, стоит ознакомиться с опцией help.

Общий синтаксис

Независимо от системы, команду ping можно применять так:

Windows

Для просмотра в Windows также используйте команду ping /?

Linux

При минимальной инсталляциии данной системы или использовании docker, утилиты ping может не быть. В таком случае мы увидим ошибку:

bash: ping: command not found

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

а) для систем на базе deb (Debian, Ubuntu, Mint):

apt install iputils-ping

б) для систем на базе RPM (Rocky Linux, CentOS, Red Hat, Fedora):

yum install iputils

Готово, теперь можно пользоваться командой ping.

Список ключей можно посмотреть так:

Ping Parameters


Ping -a – Ping to Find Hostname of an IP Address

In the example illustration shown below, the hostname for the web server with IP address of 72.47.244.140 is agaaacgeks.gs11.gridserver.com.

ping -a



Ping – Test Reachability and Latency to a Specific IP

In the example illustration shown below, the ping command sent four data packets to the server at 8.8.8.8. There were four ‘pings’ sent and four replies received (one for each of the four ‘pings’). Additionally, the ping reports the amount of time it took to receive each of the replies (lower time is better) and other useful information. In this example, it shows the average round trip time (latency) is 10ms and the server received and replied to all four ping packets.

ping ip address

If the website you are pinging is offline, does not exist, or there is no network connectivity to it, ping will response back with time outs or other messages in its result, similar to the those illustrated in the ping <URL> example.


How to Open Command Prompt

To use this utility, you will need to launch the Command Prompt window. The three common ways to launch the Command Prompt window are:

  1. Search for cmd using the built-in Windows search tool.
  2. Right-click on the Start icon and select Command Prompt.

    Пропинговать размер пакета Windows и отправить эхо-запрос ICMP на имя целевого хоста или IP-адрес

  3. Press the keyboard combination WinKey + R, then type cmd at the Run window that appears.

    Run cmd



Tips

Improve Ping Time & Troubleshooting

  • Low ping time is better than high ping time. For online gaming, a ping time of 100ms or less is good. Ping time of 50ms or less is very good.
  • High ping time? Try these sugguest to improve to reduce your ping time:
    • If you are using a wireless connection, move closer to your router or wireless access point.
    • Use a wired connection to your network instead of a wireless connection.
    • Close any unnecessary background applications and websites.
    • Avoid stream (video, audio) on other computers on your network.
    • Reboot your router or modem.
  • You can check connectivity to various devices on the Internet by pinging them (web servers, email servers, web sites). Slower response times than normal can indicate network congestion on the network pathway.
  • If a ping to a domain name or a web site URL fails, try pinging its IP address instead. If pinging by IP is successful, this means there is a DNS issue where your computer is unable to resolve the domain or website to an IP address.
  • If pinging a host fails, try using the tracert utility to identify where the data packet is failing along its route.

Ping Responses Explained

  • <Destination Host> Unreachable: This ping response indicates a network pathway to the remote device cannot be found. This can mean a network device between your computer and the remote device, such as your firewall, is offline or mis-configured.
  • No Reply From <Destination Host>: This ping response indicates that the network pathway to the remote device is fine, but there is a problem with the device itself
  • ICMP Host Unreachable From Gateway: This ping response indicates your computer can communication with your local gateway (e.g., your local router) but the gateway itself is unable to reach the remote device. This can mean an issue with your ISP or ISP-provided device.
  • Request Timed Out: This ping response can indicate the remote device is offline. However, it is not always the case. A device can be configured to not response to ping requests. Administrators can opt to do this for security reasons as they feel that not announcing a device is online can minimize their exposure to bad actors on the Internet from performing malicious activities (e.g., hacking) against it.
  • TTL Expired In Transit: This response indicates the amount of time the packet may live on the network has exceeded the maximum amount of “time”, more accurately, the number of hops. This can mean that there is a mis-configured router along the network pathway. The TTL (time to live) can be increased by using the -i switch and specifying a value. For example, to specify a TTL of 200 (the maximum value allows is 255) when pinging 8.8.8.8, type the following in the command window then press Enter: ping -i 200 8.8.8.8
  • Unknown Host: This response indicates that the IP address or website you are pinging is not found on the network or Internet. This can mean either:
    • You mis-typed your IP or website URL
    • A DNS server was not available to resolve the hostname
:/>  Эквалайзер для Windows 10: инструкция настройки штатными средствами системы Виндовс и обзор лучших сторонних программ

Example of a Good Ping Result

Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Ping statistics for 192.168.1.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 63ms, Maximum = 63ms, Average = 63ms

Example Ping Result Showing Remote Device Not Responding

  1. There a network connection issue (e.g., network congestion) to the device.
  2. The device is configured to not response to ping packets (ICMP echo replies). If this is the case, the device is likely online and functioning, despite it not responding to your ping test.
Pinging 192.168.1.222 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.
Ping statistics for 192.168.1.222:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

Example Ping Result Showing Remote Device Unreachable

  1. There is no network route (network path) to the remote device (perhaps due to a firewall or a network router configuration).
  2. The device is turned off.
  3. There is not device with that IP address.
Pinging 192.168.1.222 with 32 bytes of data:
Destination host unreachable.
Destination host unreachable.
Destination host unreachable.
Destination host unreachable.
Ping statistics for 192.168.1.222:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

Redirect Output to Text File

  • Instead of displaying the results on the screen, you can have the results saved automatically to a text file on your computer. To do this, simply use the “>” symbol followed by the folder path and file name of your choice. For example, to redirect the output of ping 192.168.1.1, type the following in the command window then press Enter: ping 192.168.1.1 > c:\temp\ping-results.txt

    This will create a file named ping-results.txt in the folder path c:\temp that will have your ping result. You can then open this file with any text editor, such as Notepad on a Windows computer, as illustrated below.

    ping redirected output


Add Timestamp to Ping Result

You will need to press CTRL+C to bring back the prompt. As illustrated below, this command displays the date and time next to each ping response.

ping with timestamp


Limitations of Ping Tests

Ping accurately measures the network connection between two devices at the time the test was run. However, because network conditions change continously, you should perform a new ping test every time you are trouleshooting your network. Test results from yesterday or even the last hour may be irrelevant. Additionaly, ping result from one target server can vary greatly from the result of another. Depending on what is it you are troubleshooting, you may need to ping several remote servers to better understand the problem.


Выбираем ближайший сервер

Мы решили упростить процедуру поиска оптимального сервера для наших клиентов и сделали страницу с автоматическим тестом ближайших локаций: дата-центры RUVDS.
При заходе на страницу скрипт измеряет задержки от вашего браузера до каждого сервера и отображает их на интерактивной карте. При клике на датацентр показывается информация с результатами тестов.

Пропинговать размер пакета Windows и отправить эхо-запрос ICMP на имя целевого хоста или IP-адрес

Пропинговать размер пакета Windows и отправить эхо-запрос ICMP на имя целевого хоста или IP-адрес

Кнопка ведет на страницу теста задержек до всех наших датацентров. Чтобы посмотреть результаты тестирования нажмите на точку датацентра на карте

Пропинговать размер пакета Windows и отправить эхо-запрос ICMP на имя целевого хоста или IP-адрес

Ping Syntax


Команда ping

[root@server ~]# ping google.com
PING google.com (216.58.206.174) 56(84) bytes of data.
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=1 ttl=56 time=10.7 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=2 ttl=56 time=10.2 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=3 ttl=56 time=10.4 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=4 ttl=56 time=10.4 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=5 ttl=56 time=17.3 ms
^C
--- google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 10.219/11.844/17.381/2.773 ms

В данном случае работу команды ping можно остановить, воспользовавшись сочетанием клавиш CTRL+C. В противном случае она будет выполнять запросы до тех пор, пока её не остановят. После каждой ping-сессии выводятся сводные данные, содержащие следующие сведения:

  • Min — минимальное время, которое требуется на получение ответа от пингуемого хоста.
  • Avg — среднее время, которое требуется на получение ответа.
  • Max — максимальное время, которое требуется на получение ответа.

Кроме того, среди данных, выводимых программой о пакетах, есть такой параметр, как TTL (Time To Live, время жизни пакета). Тут используются числовые значения TTL, указывающие на то, сколько шагов маршрутизации может пройти пакет. Это значение ещё известно как «лимит переходов» (hop limit).

Обычно, если запустить команду ping в её простом виде, не передавая ей дополнительные параметры, Linux будет пинговать интересующий пользователя хост без ограничений по времени. Если нужно изначально ограничить количество ICMP-запросов, например — до 10, команду ping надо запустить так:

[root@server ~]# ping -c 10 google.com

А для того чтобы увидеть лишь итоговый отчёт работы ping — можно воспользоваться ключом -q:

[root@server ~]# ping -c 10 -q google.com

В системах с несколькими сетевыми интерфейсами можно задавать конкретный интерфейс, которым должна пользоваться команда ping. Например, есть компьютер, имеющий интерфейсы eth0 и eth1. Если нужно, чтобы команда ping использовала бы интерфейс eth0 — надо запустить её так:

[root@server ~]# ping -I eth0 google.com
[root@server ~]# ping -I 10.233.201.45 google.com

Применяя эту команду, можно указать и то, какую версию протокола IP использовать — v4 или v6:

[root@server ~]# ping -4 google.com
[root@server ~]# ping -6 google.com

В процессе работы с утилитой ping вы столкнётесь с различными результатами. В частности, это могут быть сообщения о нештатных ситуациях. Рассмотрим три таких ситуации.

▍ Destination Host Unreachable

Вероятной причиной получения такого ответа является отсутствие маршрута от локальной хост-системы к целевому хосту. Или, возможно, это удалённый маршрутизатор сообщает о том, что у него нет маршрута к целевому хосту.

▍ Request timed out

Если результат работы ping выглядит именно так — это значит, что локальная система не получила, в заданное время, эхо-ответов от целевой системы. По умолчанию используется время ожидания ответа в 1 секунду, но этот параметр можно настроить. Подобное может произойти по разным причинам. Чаще всего это — перегруженность сети, сбой ARP-запроса, отбрасывание пакетов фильтром или файрволом и прочее подобное.

▍ Unknown host/Ping Request Could Not Find Host

Такой результат может указывать на то, что неправильно введено имя хоста, или хоста с таким именем в сети просто не существует.

О хорошем качестве связи между исследуемыми системами говорит уровень потери пакетов в 0%, а так же — низкое значение времени получения ответа. При этом в каждом конкретном случае время получения ответа варьируется, так как оно зависит от разных параметров сети. В частности — от того, какая среда передачи данных используется в конкретной сети (витая пара, оптоволокно, радиоволны).

Команда netstat

Инструмент netstat используется для вывода сведений о сетевых соединениях и таблицах маршрутизации, данных о работе сетевых интерфейсов, о masquerade-соединениях, об элементах групп многоадресной рассылки. Эта утилита является, как и ifconfig, частью пакета net-tools. В новом пакете iproute2 для достижения тех же целей используется утилита ss.

Если в вашей системе netstat отсутствует, установить эту программу можно так:

[root@server ~]# dnf install net-tools

Ей, в основном, пользуются, вызывая без параметров:

[root@server ~]# netstat

В более сложных случаях её вызывают с параметрами, что может выглядеть так:

netstat <options>

Можно вызывать netstat и с несколькими параметрами, перечислив их друг за другом:

netstat <option 1> <option 2> <option 3>

Для вывода сведений обо всех портах и соединениях, вне зависимости от их состояния и от используемого протокола, применяется такая конструкция:

[root@server ~]# netstat -a

Для вывода сведений обо всех TCP-портах применяется такой вариант команды:

[root@server ~]# netstat -at

Если нужны данные по UDP-портам — утилиту вызывают так:

[root@server ~]# netstat -au

Список портов любых протоколов, ожидающих соединений, можно вывести так:

[root@server ~]# netstat -l

Список TCP-портов, ожидающих соединений, выводится так:

[root@server ~]# netstat -lt

Так выводят список UDP-портов, ожидающих соединений:

[root@server ~]# netstat -lu

А так — список UNIX-портов, ожидающих соединений:

[root@server ~]# netstat -lx

Вот — команда для вывода статистических сведений по всем портам вне зависимости от протокола:

[root@server ~]# netstat -s

Так выводятся статистические сведения по TCP-портам:

[root@server ~]# netstat -st

Для просмотра списка TCP-соединений с указанием PID/имён программ используется такая команда:

[root@server ~]# netstat -tp

Для того чтобы найти процесс, который использует порт с заданным номером, можно поступить так:

[root@server ~]# netstat -an | grep ‘:<port number>’

Команда nslookup

Рассмотрим распространённые примеры использования этой команды.

Получение A-записи домена:

[root@server ~]# nslookup example.com

Просмотр NS-записей домена:

[root@server ~]# nslookup -type=ns example.com

Выяснение сведений о MX-записях, в которых указаны имена серверов, ответственных за работу с электронной почтой:

[root@server ~]# nslookup -query=mx example.com

Обнаружение всех доступных DNS-записей домена:

[root@server ~]# nslookup -type=any example.com

Проверка использования конкретного DNS-сервера (в данном случае запрос производится к серверу имён ns1.nsexample.com):

[root@server ~]# nslookup example.com ns1.nsexample.com
[root@server ~]# nslookup 10.20.30.40

IP связность

Итак, мы научились измерять задержки до сервера, попробуем найти ближайший сервер к нам. Для этого можем посмотреть, как устроена маршрутизация у нашего провайдера. Для этого удобно использовать сервис bgp.he.net

:/>  Как снизить яркость на компьютере windows

Пропинговать размер пакета Windows и отправить эхо-запрос ICMP на имя целевого хоста или IP-адрес

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

Пропинговать размер пакета Windows и отправить эхо-запрос ICMP на имя целевого хоста или IP-адрес

Граф связности автономных систем провайдера

Большинство точек обмена трафиком предоставляют специальный инструмент, называемый, looking glass, позволяющий выполнить ping и traceroute со стороны конкретного роутера на точке обмена.

Вот, например, looking glass от МГТС

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

Ping – Test Reachability and Latency to a Website

In the example illustration shown below, the ping command sent four data packets to the web server hosting the website www.meridianoutpost.com. There were four ‘pings’ sent and four replies received (one for each of the four ‘pings’). Additionally, the ping reports the amount of time it took to receive each of the replies (lower time is better) and other useful information. In this example, it shows the average round trip time (latency) is 66ms and the web server received and replied to all four ping packets.

Lastly, the ping also will report the IP of the website being pinged, namely 72.47.244.140. Ping will perform a DNS lookup to find the IP address of the remote device as it is required for any network communication on the Internet.

ping website

If the website you are pinging is offline, does not exist, or there is no network connectivity to it, ping will response back with time outs or other related messages in its result, as illustrated below.

ping timed out


Ping -t – Ping Continuously

You can also specify an website URL to continuously ping as well. To stop the continuous ping, press CTRL+C.

ping -t


Other Usages and Getting Help

ping /?


Пинг по UDP и TCP

В некоторых случаях, TCP-подключения обрабатываются не так, как ICMP пакеты, и из-за этого замеры могут отличаться в зависимости от протокола. Также часто бывает, что хост просто не отвечает на ICMP, и обычный пинг не работает. Так, например, всю жизнь делает хост microsoft.com.

Утилита nping от разработчиков знаменитого сканера nmap умеет генерировать любые пакеты. Ее можно использовать в том числе для измерения задержек.
Так как UDP и TCP работают на определенных, нам нужно «пинговать» конкретный порт. Попробуем пропинговать TCP 80, то есть порт веб-сервера:

$ sudo nping --tcp -p 80 --delay 0.1 -c 0 microsoft.com
Starting Nping 0.7.80 ( https://nmap.org/nping ) at 2020-04-30 13:07 MSK
SENT (0.0078s) TCP 10.0.0.1:63236 > 13.77.161.179:80 S ttl=64 id=49156 iplen=40 seq=3401731188 win=1480
SENT (0.1099s) TCP 10.0.0.1:63236 > 13.77.161.179:80 S ttl=64 id=49156 iplen=40 seq=3401731188 win=1480
RCVD (0.2068s) TCP 13.77.161.179:80 > 10.0.0.1:63236 SA ttl=43 id=0 iplen=44 seq=1480267007 win=64240 <mss 1440>
SENT (0.2107s) TCP 10.0.0.1:63236 > 13.77.161.179:80 S ttl=64 id=49156 iplen=40 seq=3401731188 win=1480
RCVD (0.3046s) TCP 13.77.161.179:80 > 10.0.0.1:63236 SA ttl=43 id=0 iplen=44 seq=1480267007 win=64240 <mss 1440>
SENT (0.3122s) TCP 10.0.0.1:63236 > 13.77.161.179:80 S ttl=64 id=49156 iplen=40 seq=3401731188 win=1480
RCVD (0.4247s) TCP 13.77.161.179:80 > 10.0.0.1:63236 SA ttl=42 id=0 iplen=44 seq=2876862274 win=64240 <mss 1398>
Max rtt: 112.572ms | Min rtt: 93.866ms | Avg rtt: 101.093ms
Raw packets sent: 4 (160B) | Rcvd: 3 (132B) | Lost: 1 (25.00%)
Nping done: 1 IP address pinged in 0.43 seconds

По умолчанию nping посылает 4 пакета и останавливается. Опция -c 0 включает бесконечную посылку пакетов, чтобы остановить программу, нужно нажать Ctrl+C. В конце будет показана статистика. Видим, что среднее значение rtt (round-trip time) равно 101мс.

Открытие порта для Ping

Справедливо заметить, что не во всех случаях отсутствие ответа на ping означает, что удаленный узел недоступен. Администратор ресурса может намеренно отключить ответы на эхо-запросы.

Также важно знать, что ping не использует конкретный номер порта. Чтобы открыть возможность пинга, необходимо либо найти соответствующую опцию (во многих домашних роутерах) или разрешить ICMP (Internet Control Message Protocol) на брандмауэре. Ну, или наоборот — чтобы закрыть возможность пинга, блокируем запросы ICMP.

Команда tcpdump

Утилита tcpdump предназначена для захвата и анализа пакетов.

Установить её можно так:

[root@server ~]# dnf install -y tcpdump

Прежде чем приступить к захвату пакетов, нужно узнать о том, какой интерфейс может использовать эта команда. В данном случае нужно будет применить команду sudo или иметь root-доступ к системе.

[root@server ~]# tcpdump -D
  1 eth0
  2 nflog
  3 nfqueue
  4 usbmon1
  5 any
  6 lo (Loopback)

Если нужно захватить трафик с интерфейса eth0 — этот процесс можно запустить такой командой:

[root@server ~]# tcpdump -i eth0

Или — такой, с указанием (через ключ -c) количества пакетов, которые нужно захватить:

[root@server ~]# tcpdump -i eth0 -c 10

▍ Захват трафика, идущего к некоему хосту и от него

Можно отфильтровать трафик и захватить лишь тот, который приходит от определённого хоста. Например, чтобы захватить пакеты, идущие от системы с адресом 8.8.8.8 и уходящие к этой же системе, можно воспользоваться такой командой:

[root@server ~]# tcpdump -i eth0 -c 10 host 8.8.8.8

Для захвата трафика, идущего с хоста 8.8.8.8, используется такая команда:

[root@server ~]# tcpdump -i eth0 src host 8.8.8.8

Для захвата трафика, уходящего на хост 8.8.8.8, применяется такая команда:

[root@server ~]# tcpdump -i eth0 dst host 8.8.8.8

▍ Захват трафика, идущего в некую сеть и из неё

Трафик можно захватывать и ориентируясь на конкретную сеть. Делается это так:

[root@server ~]# tcpdump -i eth0 net 10.1.0.0 mask 255.255.255.0

Ещё можно поступить так:

[root@server ~]# tcpdump -i eth0 net 10.1.0.0/24

Можно, кроме того, фильтровать трафик на основе его источника или места, в которое он идёт.

Вот — пример захвата трафика, отфильтрованного по его источнику (то есть — по той сети, откуда он приходит):

[root@server ~]# tcpdump -i eth0 src net 10.1.0.0/24

Вот — захват трафика с фильтрацией по сети, в которую он направляется:

[root@server ~]# tcpdump -i eth0 dst net 10.1.0.0/24

▍ Захват трафика, поступающего на некий порт и выходящего из некоего порта

Вот пример захвата трафика только для DNS-порта по умолчанию (53):

[root@server ~]# tcpdump -i eth0 port 53

Захват трафика для заданного порта:

[root@server ~]# tcpdump -i eth0 host 8.8.8.8 and port 53

Захват только HTTPS-трафика:

[root@server ~]# tcpdump -i eth0 -c 10 host www.google.com and port 443

Захват трафика для всех портов кроме 80 и 25:

[root@server ~]# tcpdump -i eth0 port not 80 and not 25

Ping 127. 1 – Loopback Address

The 127.0.0.1 is a special IP address, called a loopback address. It is a virtual IP address, in that it cannot be assigned to a device. This IP address is always interrupted to be ‘yourself’. Meaning, if you ping this IP from your computer, you are pinging your own computer. If you are on a file server and you ping this loopback address from that device, you are pinging that file server.

This loopback address is used to test the device TCP/IP network stack (e.g., network software/driver) of the computer. If you are experience network connectivity issue on a computer, you would first perform ping 127.0.0.1 from that computer first. If ping responses with packet lost, then your connectivity issue is likely on that computer. You will need to resolve this first before exploring other causes. If the loopback ping reports no packet lost, then your connectivity issue is not stemming from your computer and you can then explore other causes upstream.

ping loopback


Примеры использования

Простой пример использования команды ping

Примерный ответ с исправной связью:

Пример ответа, если узел недоступен:

* до удаленного узла нет сигнала. Возможно, существуют неполадки на сети.

При проверке связи не удалось обнаружить узел
Проверьте имя узла и повторите попытку.

* не удалось определить имя узла. Возможные неполадки: нет связи с DNS, не работает DNS, запрашиваемого имени узла не существует.

В Linux при отсутствии ответа, мы ничего не увидим, но если нам нужно видеть неудачные попытки, то используем ping с опцией -O:

Example Usage

There are a variety of switches (sub commands) available with the ping utility that will configure how it behaves. The examples in this article illustrates common ways ping is used.

WiFi против кабеля

Пропинговать размер пакета Windows и отправить эхо-запрос ICMP на имя целевого хоста или IP-адрес
Эта тема не совсем относится к статье, но на мой взгляд очень важна в контексте задержек. Я очень люблю WiFi, но, если у меня есть хоть малейшая возможность подключиться кабелем к интернету, я ею воспользуюсь. Также я всегда отговариваю людей использовать WiFi камеры.
Если вы играете в серьезные онлайн-шутеры, вещаете потоковое видео, торгуете на бирже: пожалуйста, используйте интернет по кабелю.

:/>  Что такое root-доступ и как его получить на Android -

Вот наглядный тест для сравнения WiFi и кабельного подключения. Это ping до WiFi роутера, то есть еще даже не интернет.

image

(Кликабельно) Сравнение ping до WiFi роутера по кабелю и по WiFi

Видно, что по WiFi задержки больше на 1мс и иногда бывают пакеты с задержками в десять раз больше! И это только короткий отрезок времени. При этом тот же самый роутер выдает стабильные задержки <1мс.

В примере выше используется WiFi 802.11n на 2.4GHz, к точке доступа по WiFi подключен только ноутбук и телефон. Если бы на точке доступа было больше клиентов, результаты были бы сильно хуже. Именно поэтому я так против перевода всех офисных компьютеров на WiFi, если есть возможность дотянуться до них кабелем.

ICMP — обычный ping

Будем использовать юниксовую утилиту ping, она позволяет вручную установить интервалы между посылками пакетов, чего не умеет версия ping для windows. Это важно, потому что, если паузы между пакетами долгие, можно просто не увидеть, что происходит между ними.

Размер пакета (опция -s) — по умолчанию утилита ping посылает пакеты размером 64 байта. С такими маленькими пакетами могут быть не заметны явления, проявляющиеся с большими пакетами, поэтому мы будет устанавливать размер пакета 1300 байт.

Интервал между пакетами (опция -i) — время между посылками данных. По умолчанию пакеты посылаются раз в секунду, это очень долго, реальные программы шлют сотни и тысячи пакетов в секунду, поэтому установим интервал 0.1 секунду. Меньше просто не разрешает программа.

В итоге команда выглядит так:

ping -s 1300 -i 0.1 yandex.ru

Такая конструкция позволяет увидеть более реалистичную картину задержек.

Команда mtr

MTR (Matt’s traceroute) — это программа, работающая в режиме командной строки, представляющая собой инструмент для диагностики сетей и устранения сетевых неполадок. Эта команда совмещает в себе возможности ping и traceroute. Она, как traceroute, может выводить сведения о маршруте, по которому сетевые данные идут от одного компьютера к другому. Она выводит массу полезных сведений о каждом шаге маршрутизации, например — время ответа системы. Благодаря использованию команды mtr можно получить довольно подробные сведения о маршруте, можно обнаружить устройства, которые вызывают проблемы при прохождении данных по сети. Если, например, наблюдается рост времени ответа системы, или рост числа потерянных пакетов, это позволяет с уверенностью говорить о том, что где-то между исследуемыми системами возникла проблема с сетевым соединением.

Синтаксис команды выглядит так:

mtr <options> hostname/IP

Рассмотрим несколько распространённых способов применения mtr.

Если вызвать эту команду, указав лишь имя или адрес хоста — она выведет сведения о каждом шаге маршрутизации. В частности — имена хостов, сведения о времени их ответа и о потерянных пакетах:

[root@server ~]# mtr google.com
[root@server ~]# mtr -g google.com
[root@server ~]# mtr -b google.com

Так можно задать количество ping-пакетов, которые нужно отправить системе, маршрут к которой подвергается анализу:

[root@server ~]# mtr -c 10 google.com

А так можно получить отчёт, содержащий результаты работы mtr:

[root@server ~]# mtr -r -c 10 google.com > mtr-command-google-output

Вот — ещё один вариант получения такого отчёта:

[root@server ~]# mtr -rw -c 10 google.com > mtr-command-google-output

Для того чтобы принудительно использовать TCP вместо ICMP — надо поступить так:

[root@server ~]# mtr –tcp google.com

А вот так можно использовать UDP вместо ICMP:

[root@server ~]# mtr –udp google.com

Вот — вариант команды, где задаётся максимальное количество шагов маршрутизации:

[root@server ~]# mtr -m 35 216.58.223.78

Так можно настроить размер пакета:

[root@server ~]# mtr -r -s 50 google.com

Для вывода результатов работы mtr в формате CSV используется такая команда:

[root@server ~]# mtr –csv google.com

Вот — команда для вывода результатов работы mtr в формате XML:

[root@server ~]# mtr –xml google.com

MTR — traceroute на стероидах

Программа MTR (англ. My Traceroute) — продвинутая утилита для трассировки маршрутов до удаленного хоста. В отличии от обычной системной утилиты traceroute (в windows это утилита tracert), умеет показывать задержки до каждого хоста в цепочке следования пакета. Также умеет трассировать маршруты не только по ICMP, но и по UDP и TCP.

$ sudo mtr microsoft.com

Пропинговать размер пакета Windows и отправить эхо-запрос ICMP на имя целевого хоста или IP-адрес
(Кликабельно) Интерфейс программы MTR. Запущенна трассировка маршрута до microsoft.com

MTR сразу показывает пинг до каждого хоста в цепочке, притом данные постоянно обновляются, пока программа запущена и можно видеть кратковременные изменения.
На скриншоте видно, что на узле №6 есть потери пакетов, но на самом деле это не совсем так, потому как некоторые маршрутизаторы могут просто отбрасывать пакеты с истекшим TTL и не возвращать ответ с ошибкой, поэтому данные о потерях пакетов тут можно игнорировать.

Ping -n -l – Ping Using Custom Number of Packets and Packet Size

ping -n -l


Измеряем задержки

Для начала научимся измерять задержки. Эта задача не так проста, как может показаться, потому что для разных протоколов и размеров пакета задержки могут отличаться. Также можно не заметить кратковременные явления, например провалы продолжительностью в несколько миллисекунд.

Команда ip

Синтаксис этой команды выглядит так:

ip <OPTIONS> <OBJECT> <COMMAND>

Самое важное тут — это <OBJECT> (подкоманда). Здесь можно использовать, помимо некоторых других, следующие ключевые слова:

  • address — адрес протокола (IPv4 или IPv6) на устройстве.
  • tunnel — IP-туннель.
  • route — запись таблицы маршрутизации.
  • rule — правило в базе данных политики маршрутизации.
  • vrf — управление виртуальными устройствами маршрутизации и перенаправления трафика.
  • xfrm — управление IPSec-политикой.

Ниже приведены примеры, демонстрирующие распространённые сценарии использования команды ip.

[root@server ~]# ip address show
[root@server ~]# ip address add 192.168.1.254/24 dev enps03
[root@server ~]# ip address del 192.168.1.254/24 dev enps03

Изменение статуса интерфейса, в данном случае — включение eth0:

[root@server ~]# ip link set eth0 up

Изменение статуса интерфейса, в данном случае — выключение eth0:

[root@server ~]# ip link set eth0 down

Изменение статуса интерфейса, в данном случае — изменение MTU eth0:

[root@server ~]# ip link set eth0 mtu 9000

Изменение статуса интерфейса, в данном случае — перевод eth0 в режим приёма всех сетевых пакетов:

[root@server ~]# ip link set eth0 promisc on

Добавление маршрута, используемого по умолчанию (для всех адресов), через локальный шлюз 192.168.1.254, который доступен на устройстве eth0:

[root@server ~]# ip route add default via 192.168.1.254 dev eth0

Добавление маршрута к 192.168.1.0/24 через шлюз на 192.168.1.254:

[root@server ~]# ip route add 192.168.1.0/24 via 192.168.1.254

Добавление маршрута к 192.168.1.0/24, который доступен на устройстве eth0:

[root@server ~]# ip route add 192.168.1.0/24 dev eth0

Удаление маршрута для 192.168.1.0/24, для доступа к которому используется шлюз 192.168.1.254:

[root@server ~]# ip route delete 192.168.1.0/24 via 192.168.1.254

Вывод маршрута к IP 10.10.1.4:

[root@server ~]# ip route get 10.10.1.4

Борьба за миллисекунды. Как выбрать сервер с наименьшим пингом

Время на прочтение

Для многих задач задержки между клиентом и сервером критически важны, например в онлайн играх, видео/голосовых конференциях, IP телефонии, VPN и т.д. Если сервер будет слишком удален от клиента на уровне IP-сети, то задержки (в народе «пинг», «лаг») будут мешать работе.

Географическая близость сервера не всегда равна близости на уровне IP маршрутизации. Так, например, сервер в другой стране может быть «ближе» к вам, чем сервер в вашем городе. Все из-за особенностей маршрутизации и построения сетей.

Пропинговать размер пакета Windows и отправить эхо-запрос ICMP на имя целевого хоста или IP-адрес

Как выбрать сервер максимально близкий ко всем потенциальным клиентам? Что такое связность IP-сетей? Как направить клиента на ближайший сервер? Разберемся в статье.

Команда ifconfig

Команда ifconfig до определённого времени представляла собой один из основных инструментов, используемых многими системными администраторами для настройки сетей и решения сетевых проблем. Теперь ей на замену пришла команда ip, о которой мы только что говорили. Но если вас, всё же, интересует эта команда, можете взглянуть на данный материал.

Проверка портов

С помощью команды ping нельзя проверить открытость того или иного порта.

Для этих целей используется команда telnet или программа, например, nmap.

Дмитрий Моск — частный мастер

Была ли полезна вам эта инструкция?

Table of Content


Summary

Simply knowing a device is reachable with a ping does not necessarily mean that the device is fully operating correctly. Being able to ping a web server, for example, only mean the network subsystem is working correctly. However, it does not mean that the Internet Information Services (IIS) on a Windows web server or Apache on a Linux web server application is functioning normal to deliver web page content.


Ping – Find the IP Address of a Domain Name/Website

As the screenshot below shows, the IP for the domain mediatemple.net is 143.204.142.118.

ping domain name


Итоги

Пропинговать размер пакета Windows и отправить эхо-запрос ICMP на имя целевого хоста или IP-адрес

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Стоит ли делать перевод, продолжение этой статьи?

Проголосовали 274 пользователя.

Воздержались 28 пользователей.

Recommended Reading


Improve confidence and job performance


Improve productivity and efficiency