6 Утилита Linux для проверки сетевого подключения

Хотите знать, как проверить подключение между двумя конечными точками сети?

Одной из распространенных задач системного администратора является проверка подключения для устранения проблем с сетью. Это может быть что угодно, например, приложение не может подключиться к серверной службе, не может получить данные с внешнего URL-адреса, проверить, открыт ли поток и т. д.

Что бы это ни было, вам помогут следующие утилиты/команды. Они протестированы на CentOS, и я не вижу причин не работать с другим дистрибутивом Linux.

Давайте исследуем…

телнет

Одна из широко используемых команд для проверки необходимого соединения между серверами, сервера с IP-адресом другого сетевого устройства. Синтаксис команды прост.

telnet $destinationIP $PORT

Допустим, вы хотите проверить, можете ли вы подключиться к порту 8080 по IP-адресу 10.0.0.1; тогда бы команда была.

telnet 10.0.0.1 8080

Если нет проблем с подключением, вы должны увидеть сообщение о подключении.

Trying 10.0.0.1...
Connected to 10.0.0.1.
Escape character is '^]'.

Примечание: если вы получаете команду, не найденную при выполнении telnet, вам необходимо установить telnet, как я объяснил здесь.

В большинстве случаев telnet должен помочь. Однако, если вам нужен какой-то другой вариант, вот несколько альтернатив telnet.

нкэт или нк

Ncat (он же nc) — мощная сетевая утилита с множеством функций, таких как привязка и прием соединения, удаленное выполнение команд, запись и чтение данных и т. д. Она работает как с IPv4, так и с IPv6.

  Как использовать Tidal Music из командной строки в Linux

Чтобы выполнить простой тест, чтобы проверить, открыт ли порт или нет, вы выполните следующее.

nc -vz $HOSTNAME $PORT

Возьмем пример тестирования порта 443 на сайте toadmin.ru.com.

[[email protected] ~]# nc -vz toadmin.ru.com 443
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 104.25.133.107:443.
Ncat: 0 bytes sent, 0 bytes received in 0.02 seconds.
[[email protected] ~]#

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

Чтобы начать прослушивание порта:

nc -l $PORTNUMBER

Он привяжет порт к заданному номеру.

Если ncat не установлен, вы можете сделать это с помощью yum install nc на серверах CentOS/RHEL.

wget

wget — полезная команда для загрузки/тестирования HTTP, HTTPS и FTP. Если вы работаете веб-инженером или часто сталкиваетесь с проблемами, связанными с Интернетом, тогда wget — ваш друг. Тестировать с помощью wget несложно.

wget $URL

Вот пример тестирования tools.toadmin.ru.com

[[email protected] ~]# wget tools.toadmin.ru.com
--2019-05-09 20:40:01--  http://tools.toadmin.ru.com/
Resolving tools.toadmin.ru.com (tools.toadmin.ru.com)... 104.25.134.107, 104.25.133.107, 2606:4700:20::6819:866b, ...
Connecting to tools.toadmin.ru.com (tools.toadmin.ru.com)|104.25.134.107|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://tools.toadmin.ru.com/ [following]
--2019-05-09 20:40:01--  https://tools.toadmin.ru.com/
Connecting to tools.toadmin.ru.com (tools.toadmin.ru.com)|104.25.134.107|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: 'index.html.2'

    [ <=>                                                                                                                                  ] 15,139      --.-K/s   in 0.001s  

2019-05-09 20:40:02 (12.8 MB/s) - 'index.html.2' saved [15139]

[[email protected] ~]#

Если он показывает, что подключено, значит, проблем с подключением нет.

  Как играть в аркадные игры с помощью MAME в Linux

Проверьте это, чтобы увидеть некоторые из часто используемых примеров команд wget.

завиток

Завиток — универсальный инструмент.

Знаете ли вы, что можете подключиться к порту через curl?

Ну, теперь ты знаешь.

curl -v telnet://$IP:$PORT

Ниже приведен рабочий пример.

[[email protected] ~]# curl -v telnet://chandan.io:443
* About to connect() to chandan.io port 443 (#0)
*   Trying 104.31.68.106...
* Connected to chandan.io (104.31.68.106) port 443 (#0)

И, когда нет проблем с прослушивающим портом или брандмауэром, вы увидите попытку…

[[email protected] ~]# curl -v telnet://chandan.io:4434
* About to connect() to chandan.io port 4434 (#0)
*   Trying 104.31.68.106...

Вы также можете использовать curl для загрузки данных. Он поддерживает несколько протоколов — HTTP, HTTPS, FTP, IMAP, LDAP, POP3, SCP, SFTP, GOPHER и т. д.

nmap

Популярный инструмент с сотнями функций. Часто это рассматривается как инструмент безопасности, nmap позволяет протестировать один IP/порт или их диапазон.

Проверка одного порта

nmap -p $PORT $IP

Пример тестирования порта 443 на siterelic.com

[[email protected] ~]# nmap -p 443 siterelic.com
Starting Nmap 7.70 ( https://nmap.org ) at 2019-05-10 06:55 UTC
Nmap scan report for siterelic.com (104.27.174.50)
Host is up (0.0079s latency).
Other addresses for siterelic.com (not scanned): 104.27.175.50 2606:4700:30::681b:ae32 2606:4700:30::681b:af32

PORT    STATE SERVICE
443/tcp open  https

Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds
[[email protected] ~]#

Посмотрите на столбец состояния. Если вы видите открытое соединение, это означает, что соединение в порядке. И если состояние отфильтровано, это означает, что подключения не существует.

  Как установить тему Arrongin в Linux

пинг

Одна из широко используемых команд — проверить, отвечает ли удаленный хост на ICMP ECHO_REQUEST или нет. Имейте в виду, что это может не дать точных результатов, если ICMP заблокирован брандмауэром удаленной сети. Предполагая, что это не так, вы можете пропинговать конечную точку сети IPv4 или IPv4, как показано ниже.

ping $ipaddress
ping $url

Например, результат успеха toadmin.ru.com

[email protected] ~ % ping toadmin.ru.com
PING toadmin.ru.com (104.27.119.115): 56 data bytes
64 bytes from 104.27.119.115: icmp_seq=0 ttl=53 time=7.944 ms
64 bytes from 104.27.119.115: icmp_seq=1 ttl=53 time=8.870 ms

Например, сбой в результате внутреннего IP.

[email protected] ~ % ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1

Если конечная точка поддерживает IPv6, вы можете использовать команду ping6, как показано ниже.

[email protected] ~ % ping6 toadmin.ru.com
PING6(56=40+8+8 bytes) 2a01:4b00:88e4:8700:d8ca:bf50:159c:2a1d --> 2606:4700:20::681b:7673
16 bytes from 2606:4700:20::681b:7673, icmp_seq=0 hlim=250 time=8.650 ms
16 bytes from 2606:4700:20::681b:7673, icmp_seq=1 hlim=250 time=8.738 ms

Если вам нужно выполнить удаленную проверку связи через Интернет, вы можете использовать онлайн-инструмент проверки связи.

Вывод

telnet прекращается в последней версии Linux. Благодаря вышеупомянутой альтернативе telnet.

Если вы новичок в Linux и хотите учиться, ознакомьтесь с этим Удеми курс.