6 Утиліта Linux для перевірки підключення до мережі

Цікаво, як перевірити з’єднання між двома кінцевими точками мережі?

Одним із поширених завдань системного адміністратора є перевірка з’єднання для вирішення проблем з мережею. Це може бути щось на зразок того, що програма не може підключитися до серверної служби, не може отримати дані із зовнішньої URL-адреси, перевірити, чи відкритий потік тощо.

Що б це не було, наступні утиліти/команди допоможуть вам. Вони протестовані на CentOS, і я не бачу причин не працювати на іншому дистрибутиві Linux.

Давайте досліджувати…

telnet

Одна з широко використовуваних команд для перевірки важливого зв’язку між серверами, сервером з 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

Ncat (він же nc) — це потужна мережева утиліта з багатьма функціями, як-от прив’язувати та приймати з’єднання, віддалено виконувати команди, записувати та читати дані тощо. Вона працює як на IPv4, так і на IPv6.

  Як відформатувати USB-пристрій у Fat32 в Linux

Щоб виконати простий тест, щоб перевірити, чи відкритий порт чи ні, виконайте наступне.

nc -vz $HOSTNAME $PORT

Розглянемо приклад тестування порту 443 на techukraine.net.com.

[[email protected] ~]# nc -vz techukraine.net.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.techukraine.net.com

[[email protected] ~]# wget tools.techukraine.net.com
--2019-05-09 20:40:01--  http://tools.techukraine.net.com/
Resolving tools.techukraine.net.com (tools.techukraine.net.com)... 104.25.134.107, 104.25.133.107, 2606:4700:20::6819:866b, ...
Connecting to tools.techukraine.net.com (tools.techukraine.net.com)|104.25.134.107|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://tools.techukraine.net.com/ [following]
--2019-05-09 20:40:01--  https://tools.techukraine.net.com/
Connecting to tools.techukraine.net.com (tools.techukraine.net.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] ~]#

Якщо відображається підключення, це означає, що проблеми з підключенням немає.

Перегляньте це, щоб побачити приклади команд wget, які часто використовуються.

  Як змінити налаштування DNS в Linux

завиток

Плойка – це багатофункціональний інструмент.

Чи знаєте ви, що можна підключитися до порту через telnet за допомогою 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] ~]#

Подивіться на колонку стану. Якщо ви бачите відкритий, це означає, що підключення в порядку. І якщо стан відфільтровано, це означає, що підключення не існує.

Пінг

Однією з широко використовуваних команд є перевірка того, чи відповідає віддалений хост на ICMP ECHO_REQUEST чи ні. Майте на увазі, що це може не дати точних результатів, якщо ICMP заблоковано брандмауером віддаленої мережі. Якщо припустити, що це не так, ви можете пінгувати до кінцевої точки мережі IPv4 або IPv4, як показано нижче.

ping $ipaddress
ping $url

Наприклад, результат успіху techukraine.net.com

[email protected] ~ % ping techukraine.net.com
PING techukraine.net.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 techukraine.net.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

Якщо вам потрібно виконати віддалений ping через Інтернет, ви можете скористатися інструментом онлайн-ping.

  Як подвійне завантаження Linux і Windows 10

Висновок

telnet поступово припиняє роботу в останній версії Linux. Завдяки наведеній вище альтернативі telnet.

Якщо ви новачок у Linux і бажаєте навчитися, подивіться це Курс Udemy.