curl, wget, rsync, dig и nslookup: практическое руководство для Linux-администраторов
Полное руководство по установке, настройке и использованию ключевых сетевых утилит в CentOS, Ubuntu и Debian. Примеры применения в Битрикс CMS, разбор популярных флагов и типовых сценариев.
Требования
- Доступ к серверу с 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 | Полный контроль метода и тела запроса |
| Фоновая загрузка без nohup | wget | Флаг -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 | Сертификат, порт 443 | curl -sI https://site.ru/; openssl s_client -connect site.ru:443 |
| Редирект уходит не туда | Цепочка редиректов | curl -sI -L https://site.ru/ |
| После переноса старый контент | Кэш DNS (TTL), CDN | dig +short A site.ru с разных DNS; снизить TTL заранее |
| Файл не докачивается | Обрыв связи | wget -c URL |
| Нужно сравнить каталоги перед rsync | Что изменится | rsync -avn /src/ /dest/ |
| Почта не уходит / не принимается | MX и PTR | dig 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/ 


Комментарии