Ping команда не найдена linux
У меня есть 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)
Главное меню » Ubuntu » Команда 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%, а так же — низкое значение времени получения ответа. При этом в каждом конкретном случае время получения ответа варьируется, так как оно зависит от разных параметров сети. В частности — от того, какая среда передачи данных используется в конкретной сети (витая пара, оптоволокно, радиоволны).
Итоги
Надеемся, вам пригодятся команды и примеры их использования, о которых мы сегодня рассказали. А если они вам и правда пригодились — возможно, вам будет интересно почитать продолжение этого материала.
Читайте также: