← Назад в блог

curl, wget, rsync, dig и nslookup: практическое руководство для Linux-администраторов

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

curl, wget, rsync, dig и nslookup: практическое руководство для Linux-администраторов

Требования

  • Доступ к серверу с CentOS, Ubuntu или Debian
  • Базовые навыки работы с командной строкой Linux
  • Понимание основ сетевых протоколов (HTTP, DNS, FTP)
  • Желательно: опыт работы с CMS Битрикс (для части примеров)

Утилиты curl, wget, rsync, dig и nslookup — мощные инструменты командной строки для работы с сетью, файлами и DNS в Linux. Они широко используются в системном администрировании, разработке и автоматизации. В статье разобраны установка, основные сценарии использования, популярные флаги и примеры команд для дистрибутивов CentOS, Ubuntu и Debian, а также применение утилит в контексте CMS «Битрикс».

Curl

Curl — инструмент для передачи данных по различным протоколам (HTTP, HTTPS, FTP, SFTP и др.). Применяется для тестирования API, загрузки файлов, отладки веб-приложений и автоматизации задач. 

Установка

  • Ubuntu/Debian: sudo apt install curl
  • CentOS/RHEL: sudo yum install curl (или sudo dnf install curl на новых версиях)

Проверка установки: curl --version

Основные флаги и примеры

ФлагОписаниеПример
-OСохраняет файл с оригинальным именемcurl -O https://example.com/file.zip
-oСохраняет файл под указанным именемcurl -o myfile.zip https://example.com/file.zip
-IВыводит только HTTP-заголовкиcurl -I https://example.com
-LСледует HTTP-редиректамcurl -L https://example.com
-uАутентификацияcurl -u username:password https://example.com
-sТихий режим (без прогресса)curl -s -o file.zip https://example.com/file.zip

Пример использования в Битриксе: загрузка данных из 1С через API. Для обмена данными между 1С и Битриксом можно использовать curl для отправки запросов к специальным обработчикам Битрикса. Например, для загрузки файла с ценами:

curl -v -u "логин:пароль" -X POST \
-F "filename=prices.xml" \
-F "file=@/path/to/prices.xml" \
"https://example.com/bitrix/admin/1c_exchange.php?type=catalog&mode=file&sessid=<sessid>"

Здесь -u задаёт аутентификацию, -X POST — метод запроса, -F — передачу файлов (multipart/form-data).

Дополнительные примеры curl:

# Проверка доступности сайта и кода ответа
curl -o /dev/null -s -w "%{http_code}\n" https://example.com

# Запрос с кастомными заголовками (например, для API)
curl -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" \
  https://api.example.com/v1/data

# Ограничение скорости загрузки (100 КБ/с)
curl --limit-rate 100K -O https://example.com/largefile.iso

Wget

Wget — утилита для загрузки файлов по HTTP, HTTPS и FTP. Поддерживает продолжение прерванных загрузок, рекурсивную загрузку сайтов и работу с REST API. 

Установка

  • Ubuntu/Debian: sudo apt install wget
  • CentOS/RHEL: sudo yum install wget (или sudo dnf install wget)

Проверка установки: wget --version

Основные флаги и примеры

ФлагОписаниеПример
-OСохраняет файл под указанным именемwget -O myfile.zip https://example.com/file.zip
-cПродолжает прерванную загрузкуwget -c https://example.com/largefile.iso
-bЗагружает в фоновом режимеwget -b https://example.com/file.zip
--limit-rateОграничивает скорость загрузкиwget --limit-rate=200k https://example.com/file.zip
-rРекурсивная загрузкаwget -r -l 1 https://example.com/docs/

Пример использования в Битриксе: скачивание установочного скрипта bitrixsetup.php для установки CMS:

cd /home/bitrix/www/
wget https://www.1c-bitrix.ru/download/scripts/bitrixsetup.php

После этого можно запустить мастер установки через браузер.

Дополнительные примеры wget:

# Рекурсивная загрузка сайта (осторожно с объёмом)
wget -r -l 2 -np -k https://example.com/docs/

# Скачивание с повторными попытками при ошибке
wget -t 5 -w 10 -c https://example.com/unstable.iso

Rsync

Rsync — утилита для синхронизации файлов и директорий с минимальным расходом трафика. Широко применяется для резервного копирования, миграции и зеркалирования данных между серверами. 

Установка

  • Ubuntu/Debian: sudo apt install rsync
  • CentOS/RHEL: sudo yum install rsync (или sudo dnf install rsync)

Проверка установки: rsync --version

Основные флаги и примеры

ФлагОписаниеПример
-a (или --archive)Сохраняет права доступа, ссылки, владельцев и группыrsync -a /source/ /dest/
-v (или --verbose)Выводит подробные сведения о процессе копированияrsync -av /source/ /dest/
-z (или --compress)Сжимает данные при передаче по сетиrsync -avz /source/ user@host:/dest/
--deleteУдаляет в приёмнике файлы, отсутствующие в источникеrsync -av --delete /src/folder/ /dest/folder/
-n (dry-run)Показать изменения без копированияrsync -avn /src/ /dest/

Пример использования в Битриксе: перенос файлов сайта на другой сервер:

rsync -avz /var/www/bitrix/ root@новый_сервер:/var/www/bitrix/

Для переноса базы данных можно использовать mysqldump, а затем скопировать дамп через rsync.

Дополнительные примеры rsync:

# Копирование с исключением каталогов (кэш, логи)
rsync -avz --exclude='cache/' --exclude='*.log' /var/www/site/ user@backup:/backup/site/

# Просмотр изменений без копирования (dry-run)
rsync -avzn /source/ user@host:/dest/

Dig

Dig — утилита для отправки DNS-запросов. Позволяет проверять записи (A, MX, TXT, NS, CNAME и др.), делать запросы к конкретным DNS-серверам, отслеживать цепочку DNS-запросов. 

Установка

  • Ubuntu/Debian: sudo apt install dnsutils
  • CentOS/RHEL: sudo yum install bind-utils (или sudo dnf install bind-utils)

Проверка установки: dig -v

Основные флаги и примеры

ФлагОписаниеПример
+shortВыводит только IP-адрес или значение записиdig +short example.com
+noall +answerПоказывает только секцию ответаdig +noall +answer example.com
+traceПоказывает полную цепочку DNS-разрешенияdig +trace example.com
@serverЗапрос к указанному DNS-серверуdig @8.8.8.8 example.com

Пример использования: проверка MX-записей домена для настройки почты в Битриксе:

dig MX example.bitrix.ru

Это поможет убедиться, что почтовые серверы настроены корректно.

Дополнительные примеры dig:

# Запрос к конкретному DNS-серверу (например, 8.8.8.8)
dig @8.8.8.8 example.com

# Проверка TXT-записи (SPF, DKIM, верификация)
dig +short TXT example.com

Nslookup

Nslookup — утилита для получения информации о DNS-записях. Позволяет узнать IP-адрес, A, NS, SOA, MX-записи для домена. 

Установка

  • Ubuntu/Debian: sudo apt install dnsutils
  • CentOS/RHEL: sudo yum install bind-utils (или sudo dnf install bind-utils)

Проверка установки: nslookup (входит в пакет dnsutils/bind-utils).

Основные флаги и примеры

ФлагОписаниеПример
-type=MXЗапрос MX-записейnslookup -type=MX example.com
-type=NSЗапрос NS-записейnslookup -type=NS example.com
-timeoutУстанавливает время ожидания ответаnslookup -timeout=10 example.com

Пример использования: проверка A-записи домена перед настройкой сайта в Битриксе:

nslookup example.bitrix.ru

Это поможет убедиться, что домен правильно резолвится в IP-адрес.

Дополнительный пример nslookup — обратный DNS (PTR):

# Узнать доменное имя по IP (например, для проверки почтового сервера)
nslookup 8.8.8.8

Важные замечания

  • При работе с curl и wget для передачи чувствительных данных (пароли, токены) всегда используйте HTTPS и по возможности не передавайте учётные данные в командной строке (они видны в ps); предпочтительнее переменные окружения или конфигурационные файлы.
  • Для синхронизации с помощью rsync убедитесь, что на обоих узлах установлена совместимая версия утилиты; при использовании --delete сначала проверяйте список изменений флагом -n (dry-run).
  • Ответы DNS-утилит (dig, nslookup) зависят от того, к какому DNS-серверу идёт запрос; при диагностике указывайте сервер явно (dig @8.8.8.8 example.com) или смотрите цепочку через dig +trace.

Когда использовать curl vs wget

ЗадачаПредпочтительноПричина
Один запрос, проверка кода/заголовковcurlГибкий вывод (-w, -o /dev/null), все протоколы
Скачать файл по URL с продолжением при обрывеwgetВстроенный -c, не нужны доп. флаги
Рекурсивная загрузка дерева (документация, статика)wgetНативная поддержка -r, -l, -np
POST, заголовки, API, формаcurlПолный контроль метода и тела запроса
Фоновая загрузка без nohupwgetФлаг -b
Скрипты и автоматизация (одноразовый запрос)curlЧаще уже установлен, единообразный вывод

Оба есть на типичном сервере; выбор по сценарию, а не по принципу «один вместо другого».

dig vs nslookup: что выбрать в 2026

  • dig — основной инструмент для диагностики DNS: предсказуемый вывод, удобные флаги (+short, +trace, @server), легко парсить в скриптах. Рекомендуется для скриптов и последовательной проверки нескольких записей.
  • nslookup — интерактивный режим и простые разовые запросы; вывод менее структурирован. В 2026 году по-прежнему входит в dnsutils/bind-utils, подходит, если привычнее или нужен только быстрый A/MX.
  • Для документации и скриптов ориентируйтесь на dig; для ручной проверки «что резолвит домен» допустимы оба.

Практические сценарии администратора

Проверка DNS перед переносом Bitrix

Перед сменой хостинга или A-записи убедитесь, что новый сервер отдаёт ожидаемый контент и что TTL не приведёт к долгому кэшированию старого IP у пользователей.

# Текущий IP домена и NS
dig +short A site.ru
dig +short NS site.ru

# Проверка с конкретного DNS (например, провайдера)
dig @8.8.8.8 +short A site.ru

# Убедиться, что на новом IP отдаётся нужный сайт (подставьте новый IP)
curl -sI -H "Host: site.ru" http://NEW_IP/ | head -5

После переключения DNS — повторить dig +short A site.ru с разных серверов (@8.8.8.8, @1.1.1.1), пока не увидите новый IP везде.

Диагностика «сайт не открывается»

Последовательность без лишних шагов: DNS → доступность порта/сервера → HTTP/HTTPS.

# 1. Резолвится ли домен
dig +short A site.ru

# 2. Отвечает ли хост по HTTP (с сервера или своей машины)
curl -sI --connect-timeout 5 http://site.ru/

# 3. Код ответа и редиректы
curl -sI -L --connect-timeout 5 https://site.ru/

Если dig не возвращает IP — проблема DNS или сети до DNS. Если curl таймаутит — файрвол, неверный порт или сервис не слушает.

Проверка редиректов и HTTPS

Проверить цепочку редиректов (например, http → https, www → без www) и корректность сертификата.

# Куда в итоге приводит и с каким кодом
curl -sI -L -w "Final URL: %{url_effective}\n" https://site.ru/

# Проверка сертификата (срок, issuer)
echo | openssl s_client -servername site.ru -connect site.ru:443 2>/dev/null | openssl x509 -noout -dates -issuer

Чек-лист типовых проблем и команд

ПроблемаЧто проверитьКоманда
Домен не резолвитсяDNS, кэш резолвераdig +short A site.ru; dig @8.8.8.8 +short A site.ru
Сайт не открывается по HTTPSСертификат, порт 443curl -sI https://site.ru/; openssl s_client -connect site.ru:443
Редирект уходит не тудаЦепочка редиректовcurl -sI -L https://site.ru/
После переноса старый контентКэш DNS (TTL), CDNdig +short A site.ru с разных DNS; снизить TTL заранее
Файл не докачиваетсяОбрыв связиwget -c URL
Нужно сравнить каталоги перед rsyncЧто изменитсяrsync -avn /src/ /dest/
Почта не уходит / не принимаетсяMX и PTRdig MX site.ru; dig +short -x IP_СЕРВЕРА

Шпаргалка: команды под рукой

# Доступность и код ответа
curl -o /dev/null -s -w "%{http_code}\n" https://site.ru/

# Только заголовки
curl -sI https://site.ru/

# Следовать редиректам
curl -sI -L https://site.ru/

# A-запись коротко
dig +short A site.ru

# DNS к конкретному серверу
dig @8.8.8.8 +short A site.ru

# Цепочка разрешения DNS
dig +trace site.ru

# MX и TXT
dig +short MX site.ru
dig +short TXT site.ru

# Синхронизация с просмотром (dry-run)
rsync -avn /src/ user@host:/dest/

# Синхронизация с удалением лишнего на приёмнике
rsync -avz --delete /src/ user@host:/dest/
0 просмотров

Комментарии

Загрузка комментариев...
Пока нет комментариев. Будьте первым!