Ping команда не найдена linux

Обновлено: 05.07.2024

У меня есть Docker-контейнер с Ubuntu, который я сделал следующим образом:

Однако, похоже, нет ping . Например

Нужно ли устанавливать это?

Кажется, довольно простая команда отсутствует. Я пытался whereis ping что ничего не сообщает.

Вполне уместно, чтобы изображение Docker было минимальным. В большинстве случаев контейнер никогда ничего не делает, кроме запуска одного приложения - зачем устанавливать то, что не нужно приложению? Если вы просто хотите запустить диагностику, может быть проще запустить busybox (в образ которого входит ping), например: docker run -it --rm busybox ping my-server.

Образы докеров довольно минимальны, но вы можете установить их ping в свой официальный образ докера Ubuntu через:

Скорее всего, вам не нужно ping ваше изображение, и вы просто хотите использовать его для тестирования. Приведенный выше пример поможет вам.

Но если вам нужно, чтобы ping существовал на вашем изображении, вы можете создать Dockerfile или commit контейнер, в котором вы запускали вышеуказанные команды, для нового изображения.

Обратите внимание, что существуют рекомендации по созданию образов Docker, такие как очистка файлов apt-кэша после и т. Д.

Это страница Docker Hub для Ubuntu и это то , как он будет создан. На нем установлены только (несколько) минимальные пакеты, поэтому, если вам нужно что-то дополнительное, вам нужно установить его самостоятельно.

Однако обычно вы создаете Dockerfile и создаете его:

Используйте Google , чтобы найти учебники и просматривать существующие Dockerfiles , чтобы увидеть , как они обычно делают вещи :) Для размера Примера изображения должны быть сведены к минимуму путем запуска apt-get clean && rm -rf /var/lib/apt/lists/* после apt-get install команды.

echo -e фактически игнорирует стандарт POSIX sh , который не позволяет ему ничего делать, кроме печати -e на выходе. (Даже с некоторыми версиями bash это поведение по умолчанию). printf Вместо этого используйте :, printf '%s\n' "FROM ubuntu" "RUN apt-get update && apt-get install -y iputils-ping" "CMD bash" и смотрите раздел ИСПОЛЬЗОВАНИЕ ПРИЛОЖЕНИЯ вышеупомянутого документа стандартов. Даже bash не будет поддерживать echo -e то, что вы ожидаете (но вместо этого будет вести себя в соответствии со стандартами) в скомпилированном режиме POSIX --enable-xpg-echo-default , с соответствующими переменными среды или другой конфигурацией времени выполнения. (POSIX позволяет echo вести себя в соответствии с реализацией, если задан -n в качестве первого аргумента или когда присутствуют какие-либо литералы с обратной косой чертой, но даже в этом случае он определяется реализацией , а не гарантируется стандартом, поэтому поведение зависит от отдельной оболочки в использовании). Спасибо за комментарии и улучшения, дружественный пример «копирования и вставки» был скорее послеподуманным.

Обычно люди тянут официальное изображение Ubuntu / CentOS, но они не понимают, что эти изображения минимальны и не имеют ничего общего с этим.

Для Ubuntu это изображение создано из официальных tarfs rootfs, предоставленных Canonical. Учитывая, что это минимальная установка Ubuntu, этот образ по умолчанию включает только локали C, C.UTF-8 и POSIX.

Можно установить net-tools (включая ifconfig, netstat), ip-utils (включая ping) и другие подобные curl и т. Д. На контейнер и можно создать образ из контейнера или написать Dockerfile, который установит этот инструмент при создании образа.

Ниже приведен пример Dockerfile, при создании изображения из него будут использоваться следующие инструменты:

У меня есть контейнер Docker с Ubuntu, который я сделал следующим образом:

Однако, похоже, там нет ping . Например.

Мне нужно это установить?

Кажется, что отсутствует довольно простая команда. Я пробовал whereis ping , который ни о чем не сообщает.

Образы Docker довольно минимальны, но вы можете установить ping в свой официальный образ докера ubuntu через:

Скорее всего, вам не нужно ping ваше изображение, и вы просто хотите использовать его в целях тестирования. Приведенный выше пример поможет вам.

Но если вам нужно, чтобы ping существовал в вашем образе, вы можете создать Dockerfile или commit контейнер, в котором вы запускали вышеуказанные команды для нового образа.

Обратите внимание, что существуют передовые методы создания образов докеров, такие как очистка файлов кэша APT после и т. Д.

Это страница Docker Hub для Ubuntu и вот как он создается. В нем установлены только (несколько) минимальные пакеты, поэтому, если вам нужно что-то дополнительное, вам нужно установить его самостоятельно.

Однако обычно вы создаете «Dockerfile» и собираете его:

Воспользуйтесь Google, чтобы найти руководства и просмотреть существующие файлы Docker, чтобы увидеть, как они обычно работают :) Например, размер изображения следует минимизировать, выполнив apt-get clean && rm -rf /var/lib/apt/lists/* после команд apt-get install .

В качестве альтернативы вы можете использовать образ Docker, в котором уже установлен ping, например busybox:

Обычно люди извлекают официальный образ Ubuntu / CentOS, но не понимают, что эти образы минимальны и не имеют ничего сверх того.

Для Ubuntu этот образ собран из официальных архивов rootfs, предоставленных Canonical. Учитывая, что это минимальная установка Ubuntu, этот образ по умолчанию включает только локали C, C.UTF-8 и POSIX.

Можно установить net-tools (включая ifconfig, netstat), ip-utils (включая ping) и другие подобные curl и т. Д. В контейнер, а также создать образ из контейнера или написать Dockerfile, который установит этот инструмент при создании образа.

Ниже приведен пример Dockerfile, при создании образа из него он будет включать следующие инструменты:

В этом образе все будет установлено.

Иногда минимальная установка Linux в Docker не определяет путь, и поэтому необходимо вызвать ping, используя .

И если их нет, то просто установи их через менеджер пакетов своего (неуказанного) дистрибутива.

Debian в заголовке:

apt-get install iputils-ping traceroute


Попробуй программу mtr. В Виндовсе такого нет ;)



s/tracert/traceroute/g, конечно же


Зачётный тролинг. Напиши ещё в лист разработчиков freeBSD, что ты хотел бы видеть в их ОСи аналог виндового TCP/IP стека

Во-во, куда ты её ввёл то? Её в терминал надо вводить.

Во всех остальных системах испокон веков эта команда называлась traceroute. А ещё есть tracepath, которая делает тоже самое, но немного другим способом (использует по умолчанию UDP вместо ICMP).

Хм. А где это в манах написано?


Проглядел. Ну теперь буду знать =).


Даже в убунтах пинг искаропки есть, возможно вы используете какую-то сборку дебиана? Или банально в команде ping была допущена опечатка?


debian какой версии? Как ставили? По умолчанию и ping, и traceroute в системе есть.

Действительно, это так и есть. Каким образом я так ping ввел, что он у меня ничего не сказал.. задача=) Название traceroute не знал, вот тут реально форум помог. Как то и то, и то работает несколько.. м.. кривовато, чтоль, но тут дело вкуса и привычки. P.s BarsStudio - исключительно канувшая в Лету вещь, родившаяся за 15 минут, у которой не было сайта. Вероятно будет, ибо сейчас потихоньку возвращаюсь в веб-коддингу. Картинка же тут от того, что она у меня привязана к нику посредством Граватара(Или как то так, название не помню - это было год назад минимум). Прекращаем страдать манией поиска троллей. Ибо итог получается абсолютно противоположный и ищущий сам превращается в то, что он искал. То что мы ненавидим больше всего - есть мы!(c)

Favorite

Добавить в избранное

Главное меню » Ubuntu » Команда Ping не найдена? Установка Ping в Ubuntu

Команда Ping не найдена? Установите Ping в Ubuntu

Если вы используете Ubuntu в контейнере Docker, команда ping будет отсутствовать. Вы можете установить ping в Ubuntu с помощью этого простого трюка.

Установка ping на Ubuntu

О бычно команда ping уже установлена ​​в большинстве систем Linux.

Но в некоторых редких случаях, например, когда у вас минимальная установка Ubuntu или вы запускаете Ubuntu в контейнере Docker, команда ping отсутствует. Если вы попытаетесь использовать его, вы увидите ошибку: ping not found.

Это не самое страшное. Вы пытаетесь установить ping, а затем он жалуется, что не может найти ping пакета.

Теперь это сбивает с толку. Вы не можете использовать ping в Ubuntu? В Ubuntu нет команды ping? Это не может быть правдой, не так ли?

Установка ping на Ubuntu

Проблема здесь в том, что команда ping не является самим пакетом. Это часть пакета iputils. Это когда вы пытаетесь установить пакет с командой ping, он не может быть найден.

Фактический пакет ping как часть iputils называется iputils-ping. Это пакет, который вы должны установить для проверки связи.

Сначала обновите локальный кеш пакетов, выполнив эту команду от имени пользователя root (используйте sudo, если вы не являетесь пользователем root):

Теперь установите пакет iputils-ping с помощью следующей команды:

Теперь вы можете использовать команду ping.

Если вы используете в контейнере Docker, вы знаете, что изменения, внесенные в контейнер, являются временными. Вы должны использовать Dockerfile для внесения постоянных изменений в образ и последующие контейнеры.

Надеюсь, вы найдете этот быстрый совет полезным при установке команды ping в Ubuntu. Если у вас все еще есть вопросы или предложения, дайте мне знать в разделе комментариев.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Существуют Linux-команды, которые всегда должны быть под рукой у системного администратора. Эта статья посвящена 7 утилитам, предназначенным для работы с сетью.

Этот материал — первый в серии статей, построенных на рекомендациях, собранных от множества знатоков Linux. А именно, я спросил у наших основных разработчиков об их любимых Linux-командах, после чего меня буквально завалили ценными сведениями. А именно, речь идёт о 46 командах, некоторые из которых отличает тот факт, что о них рассказало несколько человек.


В данной серии статей будут представлены все эти команды, разбитые по категориям. Первые 7 команд, которым и посвящена эта статья, направлены на работу с сетью.

Команда ip

Команда ip — это один из стандартных инструментов, который необходим любому системному администратору для решения его повседневных задач — от настройки новых компьютеров и назначения им IP-адресов, до борьбы с сетевыми проблемами существующих систем. Команда ip может выводить сведения о сетевых адресах, позволяет управлять маршрутизацией трафика и, кроме того, способна давать данные о различных сетевых устройствах, интерфейсах и туннелях.

Синтаксис этой команды выглядит так:


Самое важное тут — это <OBJECT> (подкоманда). Здесь можно использовать, помимо некоторых других, следующие ключевые слова:

  • address — адрес протокола (IPv4 или IPv6) на устройстве.
  • tunnel — IP-туннель.
  • route — запись таблицы маршрутизации.
  • rule — правило в базе данных политики маршрутизации.
  • vrf — управление виртуальными устройствами маршрутизации и перенаправления трафика.
  • xfrm — управление IPSec-политикой.

Вывод IP-адресов, назначенных интерфейсу на сервере:


Назначение IP-адреса интерфейсу, например — enps03 :


Удаление IP-адреса из интерфейса:


Изменение статуса интерфейса, в данном случае — включение eth0 :


Изменение статуса интерфейса, в данном случае — выключение eth0 :


Изменение статуса интерфейса, в данном случае — изменение MTU eth0 :


Изменение статуса интерфейса, в данном случае — перевод eth0 в режим приёма всех сетевых пакетов:


Добавление маршрута, используемого по умолчанию (для всех адресов), через локальный шлюз 192.168.1.254, который доступен на устройстве eth0 :


Добавление маршрута к 192.168.1.0/24 через шлюз на 192.168.1.254:


Добавление маршрута к 192.168.1.0/24, который доступен на устройстве eth0 :


Удаление маршрута для 192.168.1.0/24, для доступа к которому используется шлюз 192.168.1.254:


Вывод маршрута к IP 10.10.1.4:

Команда ifconfig

Команда ifconfig до определённого времени представляла собой один из основных инструментов, используемых многими системными администраторами для настройки сетей и решения сетевых проблем. Теперь ей на замену пришла команда ip , о которой мы только что говорили. Но если вас, всё же, интересует эта команда, можете взглянуть на данный материал.

Команда mtr

MTR (Matt's traceroute) — это программа, работающая в режиме командной строки, представляющая собой инструмент для диагностики сетей и устранения сетевых неполадок. Эта команда совмещает в себе возможности ping и traceroute . Она, как traceroute , может выводить сведения о маршруте, по которому сетевые данные идут от одного компьютера к другому. Она выводит массу полезных сведений о каждом шаге маршрутизации, например — время ответа системы. Благодаря использованию команды mtr можно получить довольно подробные сведения о маршруте, можно обнаружить устройства, которые вызывают проблемы при прохождении данных по сети. Если, например, наблюдается рост времени ответа системы, или рост числа потерянных пакетов, это позволяет с уверенностью говорить о том, что где-то между исследуемыми системами возникла проблема с сетевым соединением.

Синтаксис команды выглядит так:


Рассмотрим несколько распространённых способов применения mtr .

Если вызвать эту команду, указав лишь имя или адрес хоста — она выведет сведения о каждом шаге маршрутизации. В частности — имена хостов, сведения о времени их ответа и о потерянных пакетах:


Вот — вариант использования mtr , когда вместо имён хостов выводятся их IP-адреса (речь идёт о ключе -g , благодаря которому вместо имён выводятся числовые IP-адреса):


А следующий вариант команды позволяет выводить и имена, и IP-адреса хостов:


А так можно получить отчёт, содержащий результаты работы mtr :


Вот — ещё один вариант получения такого отчёта:


Для того чтобы принудительно использовать TCP вместо ICMP — надо поступить так:


А вот так можно использовать UDP вместо ICMP:


Вот — вариант команды, где задаётся максимальное количество шагов маршрутизации:


Так можно настроить размер пакета:


Для вывода результатов работы mtr в формате CSV используется такая команда:


Вот — команда для вывода результатов работы mtr в формате XML:

Команда tcpdump

Утилита tcpdump предназначена для захвата и анализа пакетов.

Установить её можно так:


Прежде чем приступить к захвату пакетов, нужно узнать о том, какой интерфейс может использовать эта команда. В данном случае нужно будет применить команду sudo или иметь root-доступ к системе.


Если нужно захватить трафик с интерфейса eth0 — этот процесс можно запустить такой командой:


Или — такой, с указанием (через ключ -c ) количества пакетов, которые нужно захватить:

▍ Захват трафика, идущего к некоему хосту и от него

Можно отфильтровать трафик и захватить лишь тот, который приходит от определённого хоста. Например, чтобы захватить пакеты, идущие от системы с адресом 8.8.8.8 и уходящие к этой же системе, можно воспользоваться такой командой:


Для захвата трафика, идущего с хоста 8.8.8.8, используется такая команда:


Для захвата трафика, уходящего на хост 8.8.8.8, применяется такая команда:

▍ Захват трафика, идущего в некую сеть и из неё

Трафик можно захватывать и ориентируясь на конкретную сеть. Делается это так:


Ещё можно поступить так:


Можно, кроме того, фильтровать трафик на основе его источника или места, в которое он идёт.

Вот — пример захвата трафика, отфильтрованного по его источнику (то есть — по той сети, откуда он приходит):


Вот — захват трафика с фильтрацией по сети, в которую он направляется:

▍ Захват трафика, поступающего на некий порт и выходящего из некоего порта

Вот пример захвата трафика только для DNS-порта по умолчанию (53):


Захват трафика для заданного порта:


Захват трафика для всех портов кроме 80 и 25:

Команда netstat

Инструмент netstat используется для вывода сведений о сетевых соединениях и таблицах маршрутизации, данных о работе сетевых интерфейсов, о masquerade-соединениях, об элементах групп многоадресной рассылки. Эта утилита является, как и ifconfig , частью пакета net-tools . В новом пакете iproute2 для достижения тех же целей используется утилита ss .

Если в вашей системе netstat отсутствует, установить эту программу можно так:


Ей, в основном, пользуются, вызывая без параметров:


В более сложных случаях её вызывают с параметрами, что может выглядеть так:


Можно вызывать netstat и с несколькими параметрами, перечислив их друг за другом:


Для вывода сведений обо всех портах и соединениях, вне зависимости от их состояния и от используемого протокола, применяется такая конструкция:


Для вывода сведений обо всех TCP-портах применяется такой вариант команды:


Если нужны данные по UDP-портам — утилиту вызывают так:


Список портов любых протоколов, ожидающих соединений, можно вывести так:


Список TCP-портов, ожидающих соединений, выводится так:


Так выводят список UDP-портов, ожидающих соединений:


А так — список UNIX-портов, ожидающих соединений:


Вот — команда для вывода статистических сведений по всем портам вне зависимости от протокола:


Так выводятся статистические сведения по TCP-портам:


Для просмотра списка TCP-соединений с указанием PID/имён программ используется такая команда:


Для того чтобы найти процесс, который использует порт с заданным номером, можно поступить так:

Команда nslookup

Команда nslookup используется для интерактивного «общения» с серверами доменных имён, находящимися в интернете. Она применяется для выполнения DNS-запросов и получения сведений о доменных именах или IP-адресах, а так же — для получения любых других специальных DNS-записей.

Рассмотрим распространённые примеры использования этой команды.

Получение A-записи домена:


Просмотр NS-записей домена:


Выяснение сведений о MX-записях, в которых указаны имена серверов, ответственных за работу с электронной почтой:


Обнаружение всех доступных DNS-записей домена:


Проверка A-записи для выяснения IP-адресов домена — это распространённая практика, но иногда нужно проверить то, имеет ли IP-адрес отношение к некоему домену. Для этого нужно выполнить обратный просмотр DNS:

Команда ping

Эта команда, при простом способе её использования, принимает лишь один параметр: имя хоста, подключение к которому надо проверить, или его IP-адрес. Вот как это может выглядеть:


В данном случае работу команды ping можно остановить, воспользовавшись сочетанием клавиш CTRL+C . В противном случае она будет выполнять запросы до тех пор, пока её не остановят. После каждой ping-сессии выводятся сводные данные, содержащие следующие сведения:

  • Min — минимальное время, которое требуется на получение ответа от пингуемого хоста.
  • Avg — среднее время, которое требуется на получение ответа.
  • Max — максимальное время, которое требуется на получение ответа.

Обычно, если запустить команду ping в её простом виде, не передавая ей дополнительные параметры, Linux будет пинговать интересующий пользователя хост без ограничений по времени. Если нужно изначально ограничить количество ICMP-запросов, например — до 10, команду ping надо запустить так:


А для того чтобы увидеть лишь итоговый отчёт работы ping — можно воспользоваться ключом -q :


В системах с несколькими сетевыми интерфейсами можно задавать конкретный интерфейс, которым должна пользоваться команда ping . Например, есть компьютер, имеющий интерфейсы eth0 и eth1 . Если нужно, чтобы команда ping использовала бы интерфейс eth0 — надо запустить её так:


Или можно указать адрес интерфейса. В данном случае речь идёт об IP-адресе 10.233.201.45:


Применяя эту команду, можно указать и то, какую версию протокола IP использовать — v4 или v6:

▍ Destination Host Unreachable

Вероятной причиной получения такого ответа является отсутствие маршрута от локальной хост-системы к целевому хосту. Или, возможно, это удалённый маршрутизатор сообщает о том, что у него нет маршрута к целевому хосту.

▍ Request timed out

▍ Unknown host/Ping Request Could Not Find Host

Такой результат может указывать на то, что неправильно введено имя хоста, или хоста с таким именем в сети просто не существует.

О хорошем качестве связи между исследуемыми системами говорит уровень потери пакетов в 0%, а так же — низкое значение времени получения ответа. При этом в каждом конкретном случае время получения ответа варьируется, так как оно зависит от разных параметров сети. В частности — от того, какая среда передачи данных используется в конкретной сети (витая пара, оптоволокно, радиоволны).

Итоги

Надеемся, вам пригодятся команды и примеры их использования, о которых мы сегодня рассказали. А если они вам и правда пригодились — возможно, вам будет интересно почитать продолжение этого материала.

Читайте также: