Сеть есть, пинги не идут.
Куда копать? Интернет раздаётся обычным бытовым роутером, dhcp-сервер на нём же.
Попробуйте пропинговать роутер по его айпи 10.0.0.1
Если и он не пингуется, под рутом посмотреть что показывает iptables-save
Обмолвлюсь, что система устанавливалась через net-install и всё было нормально. Проблема всплыла при первом старте системы, больше никаких действий с ОС не производилось.
Кстати, если бы вы привели здесь вывод неработающего пинга, это стало бы ясно сразу же.
Команда ping всегда пишет, от какого узла сети получила “от ворот поворот”, то бишь ICMP-сообшение “host unreacable”, и в данном случае мы бы увидели, что пакеты заворачивает роутер, а не ваш комп.
Что касается причин, то возможно, у роутера диапазон выдаваемых по DHCP адресов почему-то не совпадает с настройками маршрутизации. Если, конечно, другие компьютеры через него у вас успешно выходят в сеть.
$ host ya.ru
?
Я не утверждаю, что это так, но пока это единственное, что приходит в голову. Для бОльшего нужно больше информации.
P.S.
Посмотрел ваш пинг. Если он правда больше ничего не показывает, имеет смысл посмотреть, что показывает tcpdump. Если у вас он не установлен, поставьте одноимённый пакет.
Надо запустить под рутом
Что-то Arch совсем не хочет со мной дружить.
© 2006-2021, Русскоязычное сообщество Arch Linux.
Название и логотип Arch Linux ™ являются признанными торговыми марками.
Linux ® — зарегистрированная торговая марка Linus Torvalds и LMI.
Источник
Команда ping в Linux
Всем знакомы ситуации, когда интернет на компьютере неожиданно разрывается, такое поведение можно наблюдать при использовании ADSL модемов, Wifi на большом расстоянии, GSM и других подобных ненадежных технологий. Быстро выяснить есть ли на компьютере интернет можно с помощью утилиты ping.
Но область ее применения намного шире, ее используют сетевые администраторы для проверки доступности удаленного узла в сети, она применяется в различных скриптах и многих других местах. В этой статье будет рассмотрена команда ping в Linux, мы поговорим о том, как пользоваться утилитой, как она работает, рассмотрим ее опции и возможности.
Как работает ping?
Утилита ping — это очень простой инструмент для диагностики сети. Она позволяет проверить доступен удаленный хост или нет и все. Для этого утилита проверяет, может ли хост отвечать на сетевые запросы с помощью протокола ICMP.
Надеюсь, не нужно говорить, что все данные по сети передаются в виде небольших пакетов. Программа передает небольшой пакет с данными ICMP и ожидает получить обратно пакет ответа, если получает, то считается что удаленный узел доступен. ICMP или Internet Control Message Protocol — это надстройка над протоколом IP, которая используется для передачи служебных сообщений и сообщений и ошибках.
Протокол ICMP может передавать только два типа пакетов — это сообщения с отчетами про ошибки и сообщения запросов. В свою очередь, сообщения запросов делятся на:
- Сообщение эхо-запрос;
- Сообщение эхо-ответ.
Попытаемся разобраться что делает команда ping. Итак, когда вы отправляете запрос ping удаленному узлу, утилита устанавливает для каждого пакета уникальный идентификатор, а также TTL и время отправки пакета. Если хост доступен, он отправляет ответ, на основе времени отправки утилита может вычислить время прохождения пакета туда и обратно. Затем отправляется следующий пакет. В конце рассчитывается общее количество отправленных и принятых пакетов, процент потерь и другие данные.
Команда Ping
Теперь нам осталось немного попрактиковаться. Но перед тем, как мы перейдем к практике давайте рассмотрим синтаксис команды и ее опции. Синтаксис довольно прост:
$ ping опции адрес_узла
Формат команды ping очень прост. В качестве адреса узла можно передавать как ip адрес, так и доменное имя. Опции настраивают поведение утилиты. Рассмотрим основные из них:
- -4 — использовать только ipv4 (по умолчанию);
- -6 — использовать только ipv6;
- -A — адаптивный режим, время между отправками пакета адаптируется к времени передачи и приема пакета, но не меньше чем 200мс;
- -b — разрешить ping широковещательного адреса;
- -с — количество пакетов, которые нужно отправить;
- -D — выводить время в виде UNIX timestamp;
- -f — режим флуда, в этом режиме пакеты передаются без задержек, может использоваться для совершения DoS атак на отдельные узлы. Количество точек, которые выводит утилита обозначает количество потерянных пакетов;
- -i — интервал в секундах между отправкой пакетов;
- -I — использовать этот сетевой интерфейс для отправки пакетов;
- -l — режим перегрузки, отправляется очень много пакетов и система не следит за ответными пакетами;
- -n — не получать домены для ip адресов;
- -r — игнорировать таблицы маршрутизации и отправить пакет на указанный интерфейс;
- -s — размер одного пакета;
- -t — установить TTL вручную;
- -v — более подробный вывод.
Теперь, когда мы рассмотрели основные параметры команды ping и ее синтаксис, пришло время практики, дальше поговорим о том, как сделать ping определенного узла в Linux.
Как пользоваться Ping?
Для проверки работоспособности сети часто используется программа ping любого сайта, который всегда доступен, например, google.com или еще проще и короче ya.ru. Вам будет достаточно передать утилите в параметрах этот адрес, она сама найдет ip и сделает все нужное:
Как я и писал выше, для каждого пакета выводится уникальный идентификатор icmp_seq, количество узлов до целевого узла ttl и время, потраченное на доставку пакета time. Чтобы остановить ping нажмите сочетание клавиш Ctrl+C. В конце утилита вывела общую статистику:
- packets transmitted — отправлено пакетов;
- received — получено пакетов;
- packet loss — процент потерянных пакетов;
- time — обще время работы;
rtt min/avg/max/mdev — минимальное время/среднее время/максимальное время/квадратичное отклонение.
Если выполнение команды ping не остановить, то пакеты могут отправляться очень долгое время, это создает дополнительную нагрузку на сервер и поэтому не желательно. Вы можете сразу в вызове команды ограничить количество отправляемых пакетов с помощью опции -c:
Точно так же как мы выполняем ping для домена, можно указать ip адрес напрямую. Это позволяет проверить есть ли сеть когда неверно настроены серверы DNS. Например:
Следующий вид отправки ping сообщений, это ping флуд. С помощью таких пакетов можно выполнить нагрузочное тестирование канала или даже заглушить интернет соединение на одной из машин. Но эти функции можно использовать только с правами суперпользователя. Для организации ping флуда укажите опцию -f:
По умолчанию, в обычном режиме, каждый следующий пакет отправляется, когда получен ответ на предыдущий. Но вы можете сами установить интервал между отправкой пакетов -i:
ping -i 0.2 losst.ru
Здесь программа ping выполняет так званный, настраиваемый флуд, вы указываете с какой интенсивностью нужно отправлять пакеты. С помощью опции -D вы можете увидеть Unix Timestamp для каждого сообщения:
Выводы
В этой статье мы рассмотрели что такое команда ping в linux, как ее использовать основные параметры и методы применения. Этот очень простой инструмент можно применять для тестирования неполадок сети и их исправления. В этом плане утилита может стать незаменимой.
Источник
Сервер ubuntu 20.04 не отвечает на ping
Моя проблема заключается в следующем: < <1>> на 192.168.1. * сеть у меня 3 машины. Я называю их U1 (рабочий стол Ubuntu), US2 (сервер Ubuntu), W1 (Windows) и маршрутизатор с именем R1 в 192.168.1.1. U1 отправляет и получает ответ на эхо-запрос от W1 и R1. US2 может пинговать ВНЕ локальной сети (и к R1), но не получает ответов от W1 или U1. U1 и W1, когда они проверяют связь с US2, они не получают ответа. Все машины имеют доступ к Интернету. через R1. US2 обновляется с помощью «подходящего обновления» без каких-либо проблем. Прошу прощения за неудобства, и если эта тема тривиальна, но у меня закончились нейроны, и я не нашел ответ. Заранее благодарим вас за помощь. (Переводчик Google) Я не могу вставить журналы US2, потому что у него только пользовательский интерфейс в командной строке, а не графический интерфейс.
3 ответа
Знаете ли вы, что в Ubuntu Server 20.04 LTS можно блокировать или разблокировать запросы ping? Посмотрите эту статью, чтобы узнать как это сделать:
Возможно, она вам поможет
Это похоже на проблему с маской сети или маршрутом.
В командной строке на US2 проверьте маску сети. Сделайте ‘ip a’ и для основного интерфейса у вас должно быть 192.168.1.*/24
Затем сделайте ‘ip r’, чтобы получить ваши маршруты. Для подсети 192.168.1.* в ней может быть куча других вещей, но у вас должно быть:
(Имена ваших устройств могут быть другими)
Значение по умолчанию явно работает, если вы можете пинговать снаружи, а следующая строка устанавливает «локальный» маршрут в вашей сети, что может быть проблемой.
Также, если у вас есть другие строки с адресами 192.168.1.*, это может все испортить. Если у вас есть виртуальные машины, работающие на US2, или Docker / контейнеры, иногда вы можете случайно настроить перекрывающийся маршрут, который нарушит работу.
Если ваш IP установлен статически, проверьте файл yml в /etc/netplan/, чтобы убедиться, что у вас есть суффикс /24 на основном IP-адресе US2.
Источник
Про Debian
Набросал на днях простенький скрипт, которые перезапускает сеть при потере пинга.
Тем, кому нужно — поймут как подправить. Пишу в файл специально из некоторых соображений, которые были продиктованы изначальной задачей.
#!/bin/bash
ping -c 3 www.ru > /root/ping
a=$(cat /root/ping | tail -n2 | head -n1 | awk <'print $6'>| sed s/%//)
echo $a
if [ $a != 0 ]
then date > /root/fail && ifdown eth0 && sleep 2 && ifup eth0
fi
echo T
При потере пакетов, отличной от нуля — сервер делает пометку в /root/fail, делает ifdown eth0, ждёт 2 секунды и делает ifup eth0.
При необходимости — поменяйте строку then date > /root/fail && ifdown eth0 && sleep 2 && ifup eth0. Например на pon/poff
Запускать в screen, само собой (или в локальной консоли, если туда есть доступ). Будьте внимательны при остановке скрипта.
запускать так:
while [ 1 ]; do ./root/ping.sh; echo pause; sleep 2; echo script; done
echo pause; sleep 2; echo script; — для того, чтобы не стопнуть скрипт во время его выполнения.
UPD:
Более прогрессивная версия +)
#!/bin/bash
doping () <
ping -c 3 8.8.8.8 > /dev/null
>
dook () <
#what to do if ping ok?
echo «ping ok»
>
doerror () <
# what to do if ping failed?
echo «error»
echo «$(date) ping failed! i am restarting network» >> /var/log/network-fail.log
>
doping && dook || doerror
# this is the end of script.
Источник
Почему ping не проходит?
Приветствую всех) Решил установить archlinux. Во время установки столкнулся с проблемой настройки интернета(peap/mschapv2). С помощью данной инструкции https://bbs.archlinux.org/viewtopic.php?id=188783 я приконектился к сети. Однако столкнулся со следующей проблемой. Когда выполняю ping внешний ресурс ничего не происходит останавливаю ctrl+z. Когда обращаюсь к внутреннему ресурсу моей сети все пингуется.
Попробовал запрос сайта curlом сделать в резте получаю хтмл сайта провайдера и так при обращении к любому внешнему сайту.
В чем может быть проблема?
ip a
ip r
ip r g 8.8.8.8
iptables-save
ничего не изменилось
Для беспроводного подключения используйте программу wifi-menu
Примечание: Если в результате выходит ошибка о не существовании wlan0, то узнайте как называется ваш сетевой интерфейс с помощью iwconfig и введите wifi-menu
пробовал уже почему выдает ошибку к двум разным сидам пытался подключится
ошибка подключения к сети? у меня были проблемы с сетью только с ИП 6, вот рецепт:
ПС. ipv6.disable=1 можно при запуске ОС в самом грабе дописать в конец строки параметров которіе передаютсяя ядру.
Источник