Сетевые команды: ping, curl, ssh

Сетевые команды Linux: ping, curl, wget, ip, ifconfig, ssh — диагностика сети, скачивание файлов и удалённый доступ.

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

ping — проверка связи

# Отправить 4 пакета на google.com
ping -c 4 google.com

Вывод:

PING google.com (142.250.74.78) 56(84) bytes of data.
64 bytes from 142.250.74.78: icmp_seq=1 ttl=118 time=12.3 ms
64 bytes from 142.250.74.78: icmp_seq=2 ttl=118 time=11.8 ms
64 bytes from 142.250.74.78: icmp_seq=3 ttl=118 time=12.1 ms
64 bytes from 142.250.74.78: icmp_seq=4 ttl=118 time=12.0 ms

--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 11.8/12.0/12.3/0.2 ms

100% packet loss — хост недоступен. Флаг -c ограничивает количество пакетов (без него ping работает бесконечно).

ip — сетевые интерфейсы

# Посмотреть все интерфейсы и их IP-адреса
ip addr show
# Краткая форма
ip a

# Посмотреть таблицу маршрутизации
ip route show

Вывод ip a (фрагмент):

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP
    inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0

ifconfig — старая команда, которую заменил ip. На новых дистрибутивах ifconfig может не быть установлен; устанавливается пакетом net-tools.

curl — запросы к API и скачивание

# Скачать страницу и вывести в терминал
curl https://example.com

# Скачать файл, сохранить под оригинальным именем
curl -O https://example.com/file.tar.gz

# Скачать файл с указанным именем
curl -o myfile.tar.gz https://example.com/file.tar.gz

# POST-запрос с JSON-данными
curl -X POST https://api.example.com/data \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'

# Посмотреть заголовки ответа
curl -I https://example.com

wget — скачивание файлов

# Скачать файл
wget https://example.com/archive.zip

# Скачать в фоне (-b) и продолжить при обрыве (-c)
wget -bc https://example.com/big-file.iso

# Скачать рекурсивно (зеркалировать сайт)
wget -r -np https://example.com/docs/

ssh — удалённый доступ

# Подключиться к удалённому серверу
ssh [email protected]

# Подключиться на нестандартный порт
ssh -p 2222 [email protected]

# Скопировать файл на удалённый сервер (scp)
scp report.txt [email protected]:/home/alice/

# Скопировать с сервера на локальную машину
scp [email protected]:/var/log/app.log ./

# Рекурсивно скопировать каталог
scp -r ./myproject [email protected]:/home/alice/

Для входа без пароля используют ключи SSH. Команда ssh-keygen создаёт пару ключей; ssh-copy-id alice@сервер копирует публичный ключ на сервер.

Диагностика: netstat и ss

# Открытые порты и соединения (современная команда)
ss -tulnp

# Проверить, слушает ли порт 80
ss -tlnp | grep :80

Вывод ss -tulnp (фрагмент):

Netid  State   Recv-Q  Send-Q  Local Address:Port  Peer Address:Port  Process
tcp    LISTEN  0       128     0.0.0.0:22           0.0.0.0:*          users:(("sshd",pid=789))
tcp    LISTEN  0       511     0.0.0.0:80           0.0.0.0:*          users:(("nginx",pid=1234))

Коротко

  • ping -c 4 хост — проверить связь (4 пакета).
  • ip a — IP-адреса интерфейсов; ip route — маршруты.
  • curl -O URL — скачать файл; curl -X POST — отправить запрос.
  • ssh пользователь@хост — удалённый доступ; scp — копирование файлов.
  • ss -tulnp — открытые порты и слушающие процессы.
Проверьте себя
1. Какой флаг ограничивает количество пакетов в команде ping?
A-n
B-c
C-t
D-l
2. Какая команда скопирует файл report.txt на удалённый сервер 192.168.1.200?
Acp report.txt [email protected]:/home/alice/
Bscp report.txt [email protected]:/home/alice/
Cssh report.txt [email protected]
Drsync report.txt 192.168.1.200:/home/alice/
3. Что показывает команда ss -tulnp?
AВсе запущенные процессы
BОткрытые порты и слушающие процессы
CСетевые интерфейсы и их IP
DТаблицу маршрутизации
Поддержать проект