Команды linux для настройки сети

Команды для работы с сетью в Linux

– просмотр сетный информации

– просмотр информации беспроводных устройств

sudo iwlist scan

– исследовать беспроводные сети

sudo /etc/init.d/networking restart

– файл для прирученный настройки сети

— представить конфигурацию сетевого интерфейса eth0

— активировать (поднять) интерфейс eth0

— деактивировать (спустить) интерфейс eth0

ifconfig eth0 192.168.1.1 netmask 255.255.255.0

— выставить интерфейсу eth0 ip-адрес и маску подсети

ifconfig eth0 promisc

— перевести интерфейс eth0 в promiscuous-режим для «отлова» пакетов (sniffing)

ifconfig eth0 -promisc

— выключить promiscuous-режим на интерфейсе eth0

— активировать интерфейс eth0 в dhcp-режиме.

— вывести локальную матрицу маршрутизации

— вывести локальную таблицу маршрутизации

route add -net 0/0 gw IP_Gateway

— подать ip-адрес шлюза по умолчанию (default gateway)

route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1

— приплюсовать статический маршрут в сеть 192.168.0.0/16 через шлюз с ip-адресом 192.168.1.1

route del 0/0 gw IP_gateway

— выслать ip-адрес шлюза по умолчанию (default gateway)

echo «1» > /proc/sys/net/ipv4/ip_forward

— позволить пересылку пакетов (forwarding)

— отобразить имя компьютера

— разрешить имя www.linuxguide.it хоста в ip-адрес и и наоборот host 62.149.140.85

— отобразить состояние всех интерфейсов

— отобразить статус и тип слияния для интерфейса eth0

— отображает статистику интерфеса eth0 с выводом такой информации, как поддерживаемые и нынешные режимы соединения

— отображает все установленные сетевые соединения по протоколам TCP и UDP без позволения имён в ip-адреса и PID’ы и имена процессов, обеспечивающих эти соединения

— отображает все сетные соединения по протоколам TCP и UDP без разрешения имён в ip-адреса и PID’ы и имена процессов, слушающих порты

tcpdump tcp port 80

— показать весь трафик на TCP-порт 80 (обычно — HTTP)

— просканировать эфир на объект, доступности беспроводных точек доступа

— показать конфигурацию беспроводного сетевого интерфейса (общая граница между двумя функциональными объектами, требования к которой определяются стандартом; совокупность средств, методов и правил взаимодействия (управления, контроля и т.д.) между) eth1

Источник

Настройка сети в Linux, диагностика и мониторинг

Содержание

Доброго времени, уважаемые читатели. Публикую вторую часть статьи о сетевой подсистеме Linux. В текущей части основной упор сделан на реализацию сети в Linux (как настроить сеть в Linux, как продиагностировать сеть в Linux и поддерживать в рабочем состоянии сетевую подсистему в Linux).

Настройка TCP/IP в Linux для работы в сети Ethernet

Для работы с сетевыми протоколами TCP/IP в Linux достаточно наличие только петлевого интерфейса, но если необходимо объединить хосты между собой, естественно, необходимо наличие сетевого интерфейса, каналов передачи данных (например витая пара), возможно, какого-либо сетевого оборудования. Так же, необходимо наличие установленных утилит для настройки сети (/sbin/ifconfig, /sbin/route и др.), обычно поставляемые в пакете net-tools. Так же необходимо наличие конфигурационных файлов для сети (например /etc/hosts) и поддержку сети ядром Linux.

Параметры сети

Начнем понимание сетевых механизмов Linux с ручного конфигурирования сети, то есть со случая, когда IP адрес сетевого интерфейса статичен. Итак, при настройке сети, необходимо учесть и настроить следующие параметры:

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

Маска подсети — так же, 4 десятичных числа, определяющие, какая часть адреса относиться к адресу сети/подсети, а какая к адресу хоста. Маска подсети является числом, которое складывается (в двоичной форме) при помощи логического И, с IP-адресом и в результате чего выясняется, к какой подсети принадлежит адрес. Например адрес 192.168.0.2 с маской 255.255.255.0 принадлежит подсети 192.168.0.

Адрес подсети — определяется маской подсети. При этом, для петлевых интерфейсов не существует подсетей.

Широковещательный адрес — адрес, используемый для отправки широковещательных пакетов, которые получат все хосты подсети. Обычно, он равен адресу подсети со значением хоста 255, то есть для подсети 192.168.0 широковещательным будет 192.168.0.255, аналогично, для подсети 192.168 широковещательным будет 192.168.255.255. Для петлевых интерфейсов не существует широковещательного адреса.

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

Файлы настроек сети в Linux (конфигурационные файлы)

Для понимания работы сети в Linux, я бы обязательно посоветовал ознакомиться со статьей «Этапы загрузки Linux». В целом, вся работа Linux основана на процессе init, который рождается при загрузке ОС и плодит своих потомков, которые в свою очередь и выполняют всю необходимую работу, будь то запуск bash или демона. Да, и вся загрузка Linux основана на скриптах bash, в которых прописана вся последовательность запуска мелких утилит с различными параметрами, которые последовательно запускаются/останавливаются при запуске/остановке системы. Аналогично запускается и сетевая подсистема Linux. Каждый дистрибутив Linux имеет слегка отличающийся от других механизм инициализации сети, но общая картина, думаю, после прочтения будет ясна. Если просмотреть стартовые скрипты сетевой подсистемы какого-либо дистрибутива Linux, то, как настроить конфигурацию сети с помощью конфигурационных файлов, станет более-менее понятно, например у Debian/Ubuntu (за основу возьмем эту ветвь дистрибутивов) за инициализацию сети отвечает скрипт /etc/init.d/networking , просмотрев содержимое которого:

Читайте также:  Все для windows mobile 6 classic

можно найти несколько функций, проверяющих наличие подключенных сетевых файловых систем (check_network_file_systems(), check_network_swap()), а так же проверку существования какого-то пока непонятного конфига /etc/network/options (функция process_options()), а в самом низу, конструкцией case «$1» in проверяется первый параметр переданный скрипту и в соответствии с введенным параметром (start/stop/force-reload|restart или любое дугое) производит определенные действия. Из этих самых «определенных действий», на примере аргумента start видно, что сначала запускается функция process_options, далее отправляется в лог фраза Configuring network interfaces, и запускается команда ifup -a. Если посмотреть man ifup, то видно что данная команда читает конфиг из файла /etc/network/interfaces и согласно ключу -a запускает все интерфейсы имеющие параметр auto.

Соответственно, прочитав man interfaces (rus) или man interfaces (eng), становиться ясно, как же в Debian/Ubuntu настроить какой-либо сетевой интерфейс с помощью конфига /etc/network/interfaces. Ниже, пример данного конфигурационного файла для 3х интерфейсов: петлевой (lo), со статичным IP (eth2) и IP получаемым по dhcp (eth0):

В данном конфиге строки allow-hotplug и auto — это синонимы и интерфейсы будут подняты по команде ifup -a. Вот, собственно, и вся цепь работы сетевой подсистемы. Аналогично, в других дистрибутивах: в RedHat и SUSE сеть запускается скриптом /etc/init.d/network. Рассматрев его, аналогично можно найти, где лежит конфигурация сети.

/etc/hosts

Данный файл хранит перечень IP адресов и соответствующих им (адресам) имен хостов.Формат файла ничем не отличается от мастдайного:

/etc/networks

Данный файл хранит имена и адреса локальной и других сетей. Пример:

При использовании данного файла, сетями можно управлять по имени. Например добавить маршрут не route add 192.168.1.12, а route add home-network.

/etc/nsswitch.conf

Файл определяет порядок поиска имени хоста/сети, за данную настройку отвечают строки:

Параметр files указывает использовать указанные файлы (/etc/hosts и /etc/networks соответственно), параметр dns указывает использовать службу dns.

/etc/resolv.conf

Этот файл определяет параметры механизма преобразования сетевых имен в IP адреса. Пример:

В современных дистрибутивах Linux используется динамическая генерация данного файла, с помощью утилиты resolvconf. Она является посредником между службами, динамически предоставляющими сервера имен (например DHCP client) и службами, использующими данные сервера имен. Статические адреса DNS серверов, в случае использования resolvconf, задаются внутри /etc/network/interfaces (подробнее об этом — в разделе настройки).

Настройка сети

Настройка сети подробно разобрана в отдельной статье.

Диагностика сети Linux

Существует большое количество инструментов диагностики сети в Linux, зачастую, они очень похожи на утилиты от Microsoft. Я рассмотрю 3 основные утилиты диагностики сети, без которых выявить неполадки будет проблематично.

Думаю, что данная утилита знакома чуть ли не каждому. Работа этой утилиты заключается в отправке т.н. пакетов ICMP удаленному серверу, который будет указан в параметрах команды, сервер возвращает отправленные команды, а ping подсчитывает время требуемое отправленному пакету, чтобы дойти до сервера и вернуться. Например:

Так же, утилита ping интересна тем, что может позволить увидеть, где именно возникли неполадки. Допустим, утилита ping выводит сообщение network not reachable (сеть недоступна), либо другое аналогичное сообщение. Это, скорее всего, говорит о некорректной настройке вашей системы. В таком случае, можно послать пакеты по IP-адресу провайдера, чтобы понять, в каком месте возникает проблема (между локальным ПК или «дальше»). Если Вы подключены к интернету через маршрутизатор, то можно послать пакеты по его IP. Соответственно, если проблема проявиться уже на этом этапе, это говорит, о неправильном конфигурировании локальной системы, либо о повреждении кабеля, если маршрутизатор отзывается, а сервер провайдера нет, то проблема — в канале связи провайдера и т.д. Наконец, если неудачей завершилось преобразовании имени в IP, то можно проверить связь по IP, если ответы будут приходить корректно, то можно догадаться, что проблема в DNS .

Следует отметить, что данная утилита не всегда надежный инструмент для диагностики. Удаленный сервер может блокировать ответы на ICMP запросы.

traceroute

Простым языком, команда называется трассировка маршрута. Как можно понять из названия — данная утилита покажет по какому маршруту шли пакеты до хоста. Утилита traceroute несколько похожа на ping, но отображает больше интересной информации. Пример:

Источник

7 сетевых Linux-команд, о которых стоит знать системным администраторам

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

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

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

Команда ip

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

Читайте также:  Rtl8192cu windows 10 отваливается

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

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

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

Ниже приведены примеры, демонстрирующие распространённые сценарии использования команды 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

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

Команда mtr

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

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

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

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

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

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

Так можно задать количество ping-пакетов, которые нужно отправить системе, маршрут к которой подвергается анализу:

А так можно получить отчёт, содержащий результаты работы 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):

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

Захват только HTTPS-трафика:

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

Команда netstat

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

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

Читайте также:  Не запускается dhcp клиент windows 10

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

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

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

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

Кроме того, среди данных, выводимых программой о пакетах, есть такой параметр, как TTL (Time To Live, время жизни пакета). Тут используются числовые значения TTL, указывающие на то, сколько шагов маршрутизации может пройти пакет. Это значение ещё известно как «лимит переходов» (hop limit).

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

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

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

Или можно указать адрес интерфейса. В данном случае речь идёт об 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%, а так же — низкое значение времени получения ответа. При этом в каждом конкретном случае время получения ответа варьируется, так как оно зависит от разных параметров сети. В частности — от того, какая среда передачи данных используется в конкретной сети (витая пара, оптоволокно, радиоволны).

Итоги

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

Источник

Оцените статью