Сеть не работает, или работает не так, как хотелось бы. Рассмотрим несколько инструментов для диагностики.
ping отправляет удалённому хосту ICMP пакет и ждёт от него ответа pong. В отличие от аналога в Windows, ping будет отправлять пакеты, пока не будет прерван (например, комбинацией клавиш Ctrl+C). Например:
ping 8.8.8.8
traceroute показывает маршрут к удалённому хосту. Может иметь смысл запуск с ключом «-n» (не преобразовывать ip адреса в DNS имена). Например:
traceroute -n google.com
Установка в Debian:
apt install traceroute
Правильно ли работает DNS?
Проверим, прописан(ы) ли в системе DNS сервер(ы):
cat /etc/resolv.conf
и мы должны увидеть одну или более строк содержащих «nameserver». Что-то подобное:
nameserver 192.168.7.1
dig / host — инструменты для диагностики DNS.
dig — преобразовывает DNS имена в ip адрес. Например, запросить ip адрес для сайта yandex.ru у сервера 8.8.8.8:
dig yandex.ru @8.8.8.8
host — помогает узнать DNS имя для ip адреса. Например, запросить имя домена для ip адреса 5.255.255.70 у сервера 8.8.8.8:
host 5.255.255.70 8.8.8.8
Установка в Debian:
apt install dnsutils
Подключен ли сетевой кабель к ethernet порту?
Воспользуемся командой «ip a» или «ifconfig»:
ip a
Посмотрите на строку с информацией о сетевом адаптере, подключение которого нас интересует.
«NO-CARRIER» и «state DOWN» говорят нам о том, что кабель не подключен
«state UP» говорит о том, что кабель подключен.
ifconfig
Смотрим на строку с информацией об адаптере. Если строка содержит «RUNNING», то кабель подключен.
Прописан(ы) ли маршрут(ы)?
Увидеть маршруты можно одной из команд: ip route или route -n:
route -n ip route
Верно ли настроена сеть?
Командой «ip a»/»ifconfig» посмотрим настройки сети, а командой «ip route»/»route -n» посмотрим маршрут(ы) и утилитой ip калькулятором «ipcalc» проверим наши настройки на вменяемость.
Маршрутизатор не доступен.
Кабель(и) подключён(ы), настройки сети верные.
Убедимся, что нужные кабели подключены к нужным сетевым адаптерам. Для этого послушаем сеть. Установим утилиту tcpdump:
apt install tcpdump
Теперь послушаем трафик, например, на сетевом интерфейсе enp1s0 и не будем выводить информацию связанную с нашим ip адресом (допустим, 192.168.168.29):
tcpdump -n -i enp1s0 ! host 192.168.168.29
Таким образом, мы увидим весь трафик в сети, куда подключёна наша сетевая карта и без трафика к/от нашей сетевой карты.
Зачем? Увидев «чужой» трафик, мы сможем сделать выводы о конфигурации сети, в которую мы подключились, а соответственно понять, туда ли мы подключились и правильно ли мы сделали настройки.
Если мы видим на одном адаптере трафик, который должен быть на другом и наоборот, значит у нас неверно подключены кабели. Когда нет физической возможности поменять кабели, мы можем «поменять местами сетевые интерфейсы» в настройках:
Debian/Ubuntu/Astra: /etc/network/interfaces
OpenWRT: /etc/config/network
Gentoo/Calculate: /etc/conf.d/net