Проверка связи с компьютерами в локальной сети: узел назначения недоступен
У меня есть два компьютера с Ubuntu в локальной сети, и ни один из них не может пропинговать друг друга. Каждый раз, когда я пытаюсь получить сообщение об ошибке «целевой хост недоступен». Оба компьютера могут получить доступ к Интернету с любыми проблемами.
У меня есть роутер ActionTech v1000h от Telus. Я связался с одним из их представителей клиентов, и они сказали, что не должно быть никаких причин, по которым два устройства не могут пинговать друг друга в сети.
Я в полном недоумении, у кого-нибудь из вас есть какие-нибудь идеи?
Компьютер 1:
Компьютер 2:
Редактировать: пример ошибки, когда компьютер 1 пытается пропинговать компьютер 2:
Редактировать 4: tcpdump регистрирует оба компьютера, в то время как первый пинг 192.168.1.254, а затем друг друга:
редактировать
Интересно, что-то блокирует трафик
Edit2
Edit4
Видите, это все еще не решено. Не видел, что у вас есть эти адаптеры на обоих ПК. Можете ли вы подключиться к маршрутизатору по eth вместо wlan и посмотреть, сможете ли вы пинговать тогда? Или получить другой роутер? Или сделать горячую точку на телефоне, подключить оба компьютера и попробовать пинговать? Кроме того, вы удивились, увидев, что вы смогли соединить два компьютера вместе и проверить связь друг с другом. Использовали ли вы перекрестный кабель?
network: destination host unreachable
I am using Linux oess (CentOS). I am working on a VM:
In the terminal, I’m trying to:
to see my connectivity. It says:
Now I’m doing the same ping and it says:
for all the sequences.
What is the source of the problem?
8 Answers 8
try DHCP for the network interface
can you ping 8.8.4.4 (google) after changing the default route? if so you have internet access. if not check the router.
can you ping www.google.com? if not you might have a dns problem
check the network card of the VM in the virtualization software. is it in «bridged» mode? or in a «NAT» or «host-only» mode?
in the first case, see if the hypervisor itself can ping to its default gw and 8.8.4.4
There are two cases what a computer can do, when it has to forward an IP package:
If you don’t know your default gateway for this interface, so try to get a valid default gateway for this interface via DHCP configuration (configure this interface to be a DHCP client).
In the case you are working in a VM (I see it is Virtual Box) try to find out the IP address of the «Virtual Box Host Only Adapter» on your host machine (command: ifconfig or ipconfig). Then configure the IP address of the VM host only adapter to be the default gateway of your VM guest.
On your host machine your should activate ipv4-forwarding and NAT to get internet access:
If your want to use the «Host Only Adapter» then it may be possible, that you first have to create an «Host Only Network» under File->Preferences choosing the tab «Host Only Networks».
7 сетевых Linux-команд, о которых стоит знать системным администраторам
Существуют Linux-команды, которые всегда должны быть под рукой у системного администратора. Эта статья посвящена 7 утилитам, предназначенным для работы с сетью.
Этот материал — первый в серии статей, построенных на рекомендациях, собранных от множества знатоков Linux. А именно, я спросил у наших основных разработчиков об их любимых Linux-командах, после чего меня буквально завалили ценными сведениями. А именно, речь идёт о 46 командах, некоторые из которых отличает тот факт, что о них рассказало несколько человек.
В данной серии статей будут представлены все эти команды, разбитые по категориям. Первые 7 команд, которым и посвящена эта статья, направлены на работу с сетью.
Команда ip
Команда ip — это один из стандартных инструментов, который необходим любому системному администратору для решения его повседневных задач — от настройки новых компьютеров и назначения им IP-адресов, до борьбы с сетевыми проблемами существующих систем. Команда ip может выводить сведения о сетевых адресах, позволяет управлять маршрутизацией трафика и, кроме того, способна давать данные о различных сетевых устройствах, интерфейсах и туннелях.
Синтаксис этой команды выглядит так:
Самое важное тут — это (подкоманда). Здесь можно использовать, помимо некоторых других, следующие ключевые слова:
Вывод 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
Команда mtr
Синтаксис команды выглядит так:
Если вызвать эту команду, указав лишь имя или адрес хоста — она выведет сведения о каждом шаге маршрутизации. В частности — имена хостов, сведения о времени их ответа и о потерянных пакетах:
А следующий вариант команды позволяет выводить и имена, и IP-адреса хостов:
Так можно задать количество ping-пакетов, которые нужно отправить системе, маршрут к которой подвергается анализу:
А так можно получить отчёт, содержащий результаты работы mtr :
Вот — ещё один вариант получения такого отчёта:
Для того чтобы принудительно использовать TCP вместо ICMP — надо поступить так:
А вот так можно использовать UDP вместо ICMP:
Вот — вариант команды, где задаётся максимальное количество шагов маршрутизации:
Так можно настроить размер пакета:
Для вывода результатов работы mtr в формате CSV используется такая команда:
Вот — команда для вывода результатов работы mtr в формате XML:
Команда tcpdump
Утилита tcpdump предназначена для захвата и анализа пакетов.
Установить её можно так:
Прежде чем приступить к захвату пакетов, нужно узнать о том, какой интерфейс может использовать эта команда. В данном случае нужно будет применить команду sudo или иметь root-доступ к системе.
Если нужно захватить трафик с интерфейса eth0 — этот процесс можно запустить такой командой:
▍ Захват трафика, идущего к некоему хосту и от него
Можно отфильтровать трафик и захватить лишь тот, который приходит от определённого хоста. Например, чтобы захватить пакеты, идущие от системы с адресом 8.8.8.8 и уходящие к этой же системе, можно воспользоваться такой командой:
Для захвата трафика, идущего с хоста 8.8.8.8, используется такая команда:
Для захвата трафика, уходящего на хост 8.8.8.8, применяется такая команда:
▍ Захват трафика, идущего в некую сеть и из неё
Трафик можно захватывать и ориентируясь на конкретную сеть. Делается это так:
Ещё можно поступить так:
Можно, кроме того, фильтровать трафик на основе его источника или места, в которое он идёт.
Вот — пример захвата трафика, отфильтрованного по его источнику (то есть — по той сети, откуда он приходит):
Вот — захват трафика с фильтрацией по сети, в которую он направляется:
▍ Захват трафика, поступающего на некий порт и выходящего из некоего порта
Вот пример захвата трафика только для DNS-порта по умолчанию (53):
Захват трафика для заданного порта:
Захват только HTTPS-трафика:
Захват трафика для всех портов кроме 80 и 25:
Команда netstat
Если в вашей системе netstat отсутствует, установить эту программу можно так:
Ей, в основном, пользуются, вызывая без параметров:
В более сложных случаях её вызывают с параметрами, что может выглядеть так:
Можно вызывать netstat и с несколькими параметрами, перечислив их друг за другом:
Для вывода сведений обо всех портах и соединениях, вне зависимости от их состояния и от используемого протокола, применяется такая конструкция:
Для вывода сведений обо всех TCP-портах применяется такой вариант команды:
Если нужны данные по UDP-портам — утилиту вызывают так:
Список портов любых протоколов, ожидающих соединений, можно вывести так:
Список TCP-портов, ожидающих соединений, выводится так:
Так выводят список UDP-портов, ожидающих соединений:
А так — список UNIX-портов, ожидающих соединений:
Вот — команда для вывода статистических сведений по всем портам вне зависимости от протокола:
Так выводятся статистические сведения по TCP-портам:
Для просмотра списка TCP-соединений с указанием PID/имён программ используется такая команда:
Для того чтобы найти процесс, который использует порт с заданным номером, можно поступить так:
Команда nslookup
Команда nslookup используется для интерактивного «общения» с серверами доменных имён, находящимися в интернете. Она применяется для выполнения DNS-запросов и получения сведений о доменных именах или IP-адресах, а так же — для получения любых других специальных DNS-записей.
Рассмотрим распространённые примеры использования этой команды.
Получение A-записи домена:
Просмотр NS-записей домена:
Выяснение сведений о MX-записях, в которых указаны имена серверов, ответственных за работу с электронной почтой:
Обнаружение всех доступных DNS-записей домена:
Проверка использования конкретного DNS-сервера (в данном случае запрос производится к серверу имён ns1.nsexample.com ):
Проверка A-записи для выяснения IP-адресов домена — это распространённая практика, но иногда нужно проверить то, имеет ли IP-адрес отношение к некоему домену. Для этого нужно выполнить обратный просмотр DNS:
Команда ping
Команда ping — это инструмент, с помощью которого проверяют, на уровне IP, возможность связи одной TCP/IP-системы с другой. Делается это с использованием эхо-запросов протокола ICMP (Internet Control Message Protocol Echo Request). Программа фиксирует получение ответов на такие запросы и выводит сведения о них вместе с данными о времени их приёма-передачи. Ping — это основная команда, используемая в TCP/IP-сетях и применяемая для решения сетевых проблем, связанных с целостностью сети, с возможностью установления связи, с разрешением имён.
Эта команда, при простом способе её использования, принимает лишь один параметр: имя хоста, подключение к которому надо проверить, или его IP-адрес. Вот как это может выглядеть:
Обычно, если запустить команду ping в её простом виде, не передавая ей дополнительные параметры, Linux будет пинговать интересующий пользователя хост без ограничений по времени. Если нужно изначально ограничить количество ICMP-запросов, например — до 10, команду ping надо запустить так:
Или можно указать адрес интерфейса. В данном случае речь идёт об IP-адресе 10.233.201.45:
Применяя эту команду, можно указать и то, какую версию протокола IP использовать — v4 или v6:
В процессе работы с утилитой ping вы столкнётесь с различными результатами. В частности, это могут быть сообщения о нештатных ситуациях. Рассмотрим три таких ситуации.
▍ Destination Host Unreachable
Вероятной причиной получения такого ответа является отсутствие маршрута от локальной хост-системы к целевому хосту. Или, возможно, это удалённый маршрутизатор сообщает о том, что у него нет маршрута к целевому хосту.
▍ Request timed out
Если результат работы ping выглядит именно так — это значит, что локальная система не получила, в заданное время, эхо-ответов от целевой системы. По умолчанию используется время ожидания ответа в 1 секунду, но этот параметр можно настроить. Подобное может произойти по разным причинам. Чаще всего это — перегруженность сети, сбой ARP-запроса, отбрасывание пакетов фильтром или файрволом и прочее подобное.
▍ Unknown host/Ping Request Could Not Find Host
Такой результат может указывать на то, что неправильно введено имя хоста, или хоста с таким именем в сети просто не существует.
О хорошем качестве связи между исследуемыми системами говорит уровень потери пакетов в 0%, а так же — низкое значение времени получения ответа. При этом в каждом конкретном случае время получения ответа варьируется, так как оно зависит от разных параметров сети. В частности — от того, какая среда передачи данных используется в конкретной сети (витая пара, оптоволокно, радиоволны).
Итоги
Надеемся, вам пригодятся команды и примеры их использования, о которых мы сегодня рассказали. А если они вам и правда пригодились — возможно, вам будет интересно почитать продолжение этого материала.
destination host unreachable каждые полтора часа
Всех приветствую.
господа линуксоиды, подскажите решение проблемы, пожалуйста.
такая вот ерунда каждые полтора часа происходит.
провайдера я загонял уже, они сами не понимают в чем дело.
грешат на сетевую карту, но с ней все в порядке, другой провайдер работает без проблем.
уже приходили 3 раза, переобжимали кабель с двух концов ( дома и со стороны свича. думали что что то с коннекторами ), прозванивали ( или как там еще? ) кабель и что только не делали, результата 0. проблема как была так и осталась.
нет ни роутеров дома, ничего такого. соединение напрямую кабель-ноут.
ifconfig
eth0 Link encap:Ethernet HWaddr 00:26:18:5c:22:6d
inet addr:192.168.67.15 Bcast:192.168.67.255 Mask:255.255.255.0
inet6 addr: fe80::226:18ff:fe5c:226d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:25133816 errors:0 dropped:6107 overruns:0 frame:0
TX packets:12858588 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:377205481 (377.2 MB) TX bytes:1806117995 (1.8 GB)
Interrupt:44
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:57170 errors:0 dropped:0 overruns:0 frame:0
TX packets:57170 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:6837811 (6.8 MB) TX bytes:6837811 (6.8 MB)
wlan0 Link encap:Ethernet HWaddr 00:16:eb:0b:6a:e8
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
wmx0 Link encap:Ethernet HWaddr 00:1d:e1:08:a2:97
UP NOARP MTU:1400 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:20
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
resolv.conf
# Generated by NetworkManager
nameserver 10.10.10.3
nameserver 80.79.64.210
/etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.67.15
netmask 255.255.255.0
gateway 192.168.67.1
«Destination Host Unreachable» and ssh » No route to host»
При попытке пинга с Убунты локальной машины центос пишет
При попытке подключиться по ssh
На центосе стоит 2 сетевые карты с этими айпи. И нету подключения к интернету.
При попытке пинга с Убунты локальной машины центос пишет
Чего? Ты с локальной машины с убунтой пингуешь сам себя и тебе отвечает центос?
Я с Убунты(192.168.8.101) пытаюсь пинговать центос(192.168.100.166 и 192.168.8.1) На центосе установлены 2 сетевые карты с такими айпи. К 166 подключен кабель от глобальной сетки, а со второй карты идет кабель в роутер и от роутера второй кабель идет в убунту.
Не судите, но тут думаю есть проблема.
Ну так у Вас просто сеть не работает.
Ну и проверьте, есть ли сеть физически (в логах dmesg должны быть строчки, что сетевые интерфейсы подняты).
Это с какой машины таблица маршрутизации?
фаерволы на обеих машинах выключил?
С обеих машин
ip a
ip r
ip ru
ip r g адрес_другого_компуктера
iptables-save
Во-первых, где шлюз по умолчанию?
Если это так, то что Вы хотите сказать вот этой строкой:
Вот это тоже лишнее:
Вместо них добавьте шлюз по умолчанию
Впрочем, связь между Ubuntu и CentOS должна и без шлюза по умолчанию заработать.
Да выходит что s5=100.166, s1=8.1 Я убрал эти значения что вы указали как лишние. Какой тогда использовать шлюз?
Другая информация была выше.
Выходит что мне должен раздавать интернет 166 айпи, к которому и подключен сам по себе сетевой кабель. А 8.1 быть как проводником к роутеру и от роутера до машины убунты с айпи 8.101 Как я понимаю эту схему.
Приведите новую таблицу маршрутизации с CentOS.
Я к роутеру подкидываю сетевой кабель, от которого ща и получаю интернет. А когда тестирую связь машин, то откидаю кабель.
Выходит что мне должен раздавать интернет 166 айпи, к которому и подключен сам по себе сетевой кабель.
В этом случае в сети 192.168.100.0/24 должен быть шлюз, через который идет интернет. Вот его и объявляйте шлюзом по умолчанию.
А 8.1 быть как проводником к роутеру и от роутера до машины убунты с айпи 8.101
А вот тут поподробнее, пожалуйста. Как физически организована сеть между CentOS и Ubuntu? Из Ваших конфигов следует, что эти машины находятся в одной локальной сети.
Если это так, то о каком роутере между ними идет речь? Если нет, то конфиги надо менять, но чтобы понять, как именно, надо знать физическую конфигурацию сети.
А когда тестирую связь машин, то откидаю кабель.
Я правильно понимаю, что машины CentOS и Ubuntu напрямую соединены сетевым кабелем? Без роутеров и свичей между ними?







