Сетевые команды: 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Таблицу маршрутизации