Команда отображения сетевых устройств в linux. Утилиты LINUX для работы с сетью. Как присвоить два IP-адреса одной сетевой карте

Многие пользователи сталкиваются с проблемами при попытке настроить интернет-соединение в Ubuntu. Чаще всего это связано с неопытностью, но могут быть и другие причины. В статье будет предоставлена инструкция по настройке нескольких типов подключений с подробным разбором всех возможных осложнений в процессе выполнения.

Существует множество видов подключений к интернету, но в этой статье будут рассмотрены самые популярные: проводная сеть, PPPoE и DIAL-UP. Также будет рассказано про отдельную настройку DNS-сервера.

Подготовительные мероприятия

Перед тем как приступать к установке соединения, стоит убедиться, что ваша система готова к этому. Сразу же надо уточнить, что команды, выполняемые в «Терминале» , делятся на два вида: требующие права пользователя (перед ними будет стоять символ $ ) и требующие права суперпользователя (в начале стоит символ # ). Обращайте на это внимание, так как без нужных прав большинство команд попросту откажутся выполняться. Также стоит уточнить, что сами символы в «Терминал» вписывать не нужно.

Вам необходимо будет выполнить ряд пунктов:


Помимо прочего, нужно обязательно знать наименование сетевого адаптера. Чтобы это выяснить, введите в «Терминале» эту строку:

$ sudo lshw -C network

По итогу вы увидите примерно следующее:

Имя вашего сетевого адаптера будет располагаться напротив слова «логическое имя» . В данном случае «enp3s0» . Именно это название и будет фигурировать в статье, у вас оно может быть другим.

Примечание: если в вашем компьютере установлено несколько сетевых адаптеров, то они будут пронумерованы соответственно (enp3s0, enp3s1, enp3s2 и так далее). Определитесь, с каким вы будете работать, и используйте его в последующих настройках.

Способ 1: Терминал

«Терминал» — это универсальное средство по настройке всего в Ubuntu. С его помощью можно будет установить интернет-соединение всех типов, о чем и пойдет сейчас речь.

Настройка проводной сети

Настройка проводной сети в Ubuntu выполняется путем внесения новых параметров в конфигурационный файл «interfaces» . Поэтому для начала нужно открыть этот самый файл:

Примечание: в команде для открытия файла настройки используется текстовый редактор Gedit, вы же можете прописать в соответствующей части любой другой редактор, например, vi.

Теперь необходимо определиться, какой тип IP у вашего провайдера. Есть две разновидности: статический и динамический. Если вы точно не знаете, то позвоните в тех. поддержку и проконсультируйтесь с оператором.

Для начала разберемся с динамическим IP - его настройка выполняется проще. После введения предыдущей команды, в открывшемся файле укажите следующие переменные:

iface [имя интерфейса] inet dhcp
auto [имя интерфейса]

После ввода у вас должно получиться примерно так:

Статический IP настраивать несколько сложнее. Главное - знать все переменные. В конфигурационном файле вам нужно ввести следующие строки:

iface [имя интерфейса] inet static
address [адрес]
netmask [адрес]
gateway [адрес]
dns-nameservers [адрес]
auto [имя интерфейса]


После ввода всех параметров вы увидите примерно следующее:

Не забудьте перед закрытием текстового редактора сохранить все внесенные параметры.

Помимо прочего, в ОС Ubuntu можно совершить временную настройку подключения к интернету. Отличается она тем, что указанные данные никак не изменяют конфигурационные файлы, а после перезапуска ПК все ранее указанные настройки сбросятся. Если вы впервые пытаетесь установить проводное соединение на Ubuntu, то для начала рекомендуется использовать этот способ.

Все параметры задаются с помощью одной команды:

$ sudo ip addr add 10.2.119.116/24 dev enp3s0

  • 10.2.119.116 - IP-адрес сетевой карты (у вас он может быть другим);
  • /24 - количество бит в префиксной части адреса;
  • enp3s0 - интерфейс сети, к которой подключен кабель провайдера.

Введя все необходимые данные и выполнив команду в «Терминале» , вы сможете проверить их корректность. Если интернет на ПК появился, то все переменные верны, и их можно вносить в конфигурационный файл.

Настройка DNS

Настройка DNS-подключения в разных версиях Ubuntu выполняется по-разному. В версиях ОС начиная с 12.04 — один способ, в более ранних — другой. Рассматривать мы будем только статический интерфейс подключения, так как динамический подразумевает автоматическое определение DNS-серверов.

Настройка в версиях ОС выше 12.04 происходит в уже известном файле «interfaces» . В нем необходимо ввести строку «dns-nameservers» и через пробел перечислить значения.

Итак, сначала откройте через «Терминал» конфигурационный файл «interfaces» :

$ sudo gedit /etc/network/interfaces

dns-nameservers [адрес]

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

Если вы хотите настроить DNS в Ubuntu более ранней версии, то конфигурационный файл будет другим. Откроем его через «Терминал» :

$ sudo gedit /etc/resolv.conf

После в нем можно задать необходимые адреса DNS. Стоит взять в учет то, что в отличии от ввода параметров в «interfaces» , в «resolv.conf» адреса пишутся каждый раз с абзаца, перед значением используется префикс «nameserver» (без кавычек).

Настройка соединения PPPoE

Настройка PPPoE через «Терминал» не подразумевает внесение множества параметров в различные конфигурационные файлы на компьютере. Наоборот, использована будет всего одна команда.

Итак, чтобы совершить подключение типа «точка-точка» (PPPoE), вам необходимо выполнить следующие действия:


После всех проделанных действий ваш компьютер установит соединение с интернетом, если вы все сделали верно.

Обратите внимание, что по умолчанию утилита pppoeconf называет созданное подключение dsl-provider . Если вам нужно будет разорвать соединение, то выполните в «Терминале» команду:

$ sudo poff dsl-provider

Чтобы соединение установилось снова, введите:

$ sudo pon dsl-provider

Примечание: если вы подключаетесь к сети, используя утилиту pppoeconf, то управление сетью через Network Manager будет невозможным, ввиду внесения параметров в конфигурационный файл «interfaces». Чтобы сбросить все настройки и передать управление Network Manager, вам необходимо открыть файл «interfaces» и заменить все содержимое на текст, указанный ниже. После ввода сохраните изменения и перезапустите сеть командой «$ sudo /etc/init.d/networking restart» (без кавычек). Также перезапустите утилиту Network Manager, выполнив «$ sudo /etc/init.d/NetworkManager restart» (без кавычек).

Настройка соединения DIAL-UP

Чтобы совершить настройку DIAL-UP, можно воспользоваться двумя консольными утилитами: pppconfig и wvdial .

Настроить подключение с помощью pppconfig достаточно просто. В целом данный способ очень похож на предыдущий (pppoeconf ): вам точно так же будут заданы вопросы, отвечая на которые по итогу вы установите соединение с интернетом. Сперва запустите саму утилиту:

$ sudo pppconfig

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

Что касается настройки с помощью wvdial , то она происходит немного сложнее. Для начала необходимо установить сам пакет через «Терминал» . Для этого выполните следующую команду:

$ sudo apt install wvdial

В его состав входит утилита, предназначенная для автоматической конфигурации всех параметров. Называется она «wvdialconf» . Запустите ее:

$ sudo wvdialconf

После ее выполнения в «Терминале» будет отображено множество параметров и характеристик — в них разбираться не нужно. Следует лишь знать, что утилита создала специальный файл «wvdial.conf» , в который автоматически внесла необходимые параметры, считав их с модема. Далее надо отредактировать созданный файл «wvdial.conf» , откроем его через «Терминал» :

$ sudo gedit /etc/wvdial.conf

Как можно заметить, большинство настроек уже прописано, но три последних пункта все равно нужно дополнить. Вам необходимо будет прописать в них номер телефона, логин и пароль, соответственно. Однако не спешите закрывать файл, для более удобной работы рекомендуется добавить еще несколько параметров:

  • Idle Seconds = 0 - соединение не будет разорвано даже при долгом бездействии за компьютером;
  • Dial Attempts = 0 - совершает бесконечные попытки установить соединение;
  • Dial Command = ATDP - набор номера будет осуществляться импульсным способом.

По итогу файл конфигураций будет иметь такой вид:

Обратите внимание, что настройки разбиты на два блока, озаглавленные названиями в скобках. Это необходимо для создания двух версий использования параметров. Так, параметры, находящиеся под «» , будут выполняться всегда, а под «» — при указании соответствующей опции в команде.

После проведения всех настроек, чтобы установить соединение DIAL-UP, вам необходимо выполнить эту команду:

Если же вы хотите установить импульсное соединение, то пропишите следующее:

$ sudo wvdial pulse

Для того чтобы разорвать установленное соединение, в «Терминале» нужно нажать комбинацию клавиш Ctrl+C .

Способ 2: Network Manager

В Ubuntu есть специальная утилита, которая поможет установить соединение большинства видов. К тому же, она обладает графическим интерфейсом. Это Network Manager, который вызывается нажатием по соответствующей иконке в правой части верхней панели.

Настройка проводной сети

Начнем мы точно так же с настройки проводной сети. Для начала необходимо открыть саму утилиту. Для этого кликните по ее иконке и нажмите «Изменить соединения» в контекстном меню. Далее в появившемся окне нужно сделать следующее:


После всех проделанных действий проводное интернет-соединение должно быть установлено. Если этого не произошло, проверьте все введенные параметры, возможно, вы где-то допустили ошибку. Также не забудьте проверить, стоит ли галочка напротив «Управление сетью» в выпадающем меню утилиты.

Настройка DNS

Для установки соединения может понадобиться ручная настройка DNS-серверов. Для этого выполните следующее:


Настройка PPPoE

Настройка соединения по протоколу PPPoE в Network Manager выполняется так же просто, как и в «Терминале» . По сути, вам надо будет указать только логин и пароль, полученные от провайдера. Но рассмотрим все более детальней.


Теперь в меню Network Manager появилось новое DSL-соединение, выбрав которое вы получите доступ в интернет. Напомним, что иногда нужно перезагрузить компьютер, чтобы изменения вступили в силу.

Заключение

По итогу можно сказать, что в операционной системе Ubuntu есть множество инструментов, для осуществления настройки необходимого интернет-соединения. Утилита Network Manager обладает графическим интерфейсом, что в разы упрощает работу, особенно для новичков. Однако «Терминал» позволяет осуществить более гибкую настройку, вводя те параметры, которых в утилите нет.

В данном руководстве объясняется, как подключить компьютер к сети при помощи конфигурационных файлов и консольных утилит. Основная цель - рассказать о различных способах подключения к интернету без использования GUI (графического интерфейса). Руководство не затрагивает таких тем, как настройка сетевых фильтров или, например, собственных точек доступа Wi-Fi. Подразумевается, что существует некий, предоставленный провайдером, способ подключения к интернету, для использования которого и необходимо выполнить приведенные ниже действия.

В руководстве приведены примеры редактирования конфигурационных файлов с помощью текстовых редакторов «nano» и «gedit». Обратите внимание на то, что первый редактор запускается в терминале и может быть использован как при запуске Ubuntu с графическим интерфейсом, так и без него, а «gedit» можно использовать только при включенной графической среде.

Требования к системе

Для воспроизведения описанных в руководстве действий подходит любой вариант установки системы. Наличие графического пользовательского интерфейса не обязательно. Все действия необходимо выполнять в консоли . Подразумевается, что команды, начинающиеся с символа $ - необходимо выполнять от пользователя, а начинающиеся с # - от суперпользователя (root).

Прежде чем Вы начнете, убедитесь, что:

    Различные сетевые фильтры (например iptables), и утилиты их конфигурирования (например, Firestarter) отключены/правильно настроены и не вмешиваются в работу сети.

    У Вас есть все необходимые параметры для подключения в Вашей сети (например, IP-адрес, маска подсети и шлюз по умолчанию для соединения с использованием статического IP).

    Устройства сети осуществляющие фильтрацию по MAC-адресу правильно настроены и «знают» Ваш сетевой интерфейс.

    Драйвер Вашего сетевого устройства корректно установлен, кабель (при проводном соединении) исправен и подсоединен.

Для настроек вам обязательно потребуется имя вашего сетевого адаптера. Его можно узнать из вывода команды:

$ sudo lshw -C network

Она позволяет посмотреть подключенные сетевые устройства.

Пример вывода команды:

Ubuntu@ubuntu:~$ sudo lshw -C network *-network description: Ethernet interface # Тип устройства product: L2 100 Mbit Ethernet Adapter # Название адаптера vendor: Attansic Technology Corp. # Производитель устройства physical id: 0 bus info: pci@0000:03:00.0 logical name: eth0 # Имя сетевого интерфейса version: a0 serial: 00:00:00:00:00:00 # Физический адрес устройства (mac-адрес) size: 100MB/s capacity: 100MB/s width: 64 bits clock: 33MHz capabilities: pm msi pciexpress vpd bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd autonegotiation configuration: autonegotiation=on broadcast=yes driver=atl2 # Используемый драйвер driverversion=2.2.3 # Версия драйвера duplex=full firmware=L2 ip=192.168.0.5 latency=0 link=yes # Наличие линка module=atl2 multicast=yes port=twisted pair speed=100MB/s # Текущая скорость подключения.

Обратите внимание на строку:

Logical name: eth0

eth0 - это и есть искомое имя сетевого интерфейса.

Имя eth0 будет далее применяться для настройки именно данной сетевой карты. Где eth обозначает что используется Ethernet интерфейс, а 0 - номер устройства. Если у вас установлено несколько сетевых устройств, то, соответственно, им будут присвоены имена: eth0 , eth1 , eth2 и т.д.

После внедрения SystemD (начиная с Ubuntu 15.04) сетевые интерфейсы могут иметь другие имена (не ethX). Сделано это для того, что бы имена сетевых устройств не менялись при подключении к машине новых адаптеров (в последнее время, некоторые USB модемы выступают в роли сетевого адаптера). В результате eth0 может называться например enp0s4 или eno1, или даже enx78e7d1ea46da. Именно это имя сетевого адаптера и нужно использовать в настройке сети.

Более подробно о наименовании сетевых интерфейсов в SystemD можно почитать (англ.).

Такое переименование можно отключить добавив в /etc/default/grub , в строку с переменной GRUB_CMDLINE_LINUX_DEFAULT строку net.ifnames=0 . После этого нужно выполнить sudo update-grub

Настройка проводной сети

Настройка IP-адреса, шлюза по умолчанию, маски подсети

/etc/network/interfaces , например так:

И допишите в него:
Для статического IP:

Iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 gateway 192.168.0.254 dns-nameservers 192.168.0.254 8.8.8.8 auto eth0

    Iface eth0 inet static - указывает, что интерфейс (iface eth0) находится в диапазоне адресов IPv4 (inet) со статическим ip (static);

    Address 192.168.0.1 - указывает что IP адрес (address) нашей сетевой карты 192.168.0.1;

    Netmask 255.255.255.0 - указывает что наша маска подсети (netmask) имеет значение 255.255.255.0;

    Gateway 192.168.0.254 - адрес шлюза (gateway) по умолчанию 192.168.0.254;

    Dns-nameservers 192.168.0.254 8.8.8.8 - адреса DNS серверов (о ниж мы расскажем позже)

    Auto eth0 - указывет системе что интерфейс eth0 необходимо включать автоматически при загрузке системы с вышеуказанными параметрами.

eth0 - имя подключаемого своего интерфейса. Список интерфейсов можно посмотреть набрав:

$ ip addr

В итоге файл /etc/network/interfaces должен выглядеть примерно так:
(для одного проводного соединения со статическим IP)

# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # Моя проводная сеть. iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 gateway 192.168.0.254 dns-nameservers 192.168.0.254 8.8.8.8 auto eth0

Сохраните файл и закройте редактор. В данном примере (редактор nano) - нажмите Ctrl + X , затем Y , убедитесь, что «Имя файла для записи» - /etc/network/interfaces и нажмите Enter .

Более подробно про синтаксис файла /etc/network/interfaces можно прочитать в документации .

Пример конфигурации для динамического IP:

Iface eth0 inet dhcp auto eth0

Временная настройка IP-адреса и маски подсети

При необходимости задать пробные настройки, выполните:

$ sudo ip addr add 192.168.0.1/24 dev eth0

Где 192.168.0.1 - наш IP-адрес, /24 - число бит в префиксной части адреса (соответствует маске подсети 255.255.255.0).
eth0 - подключаемый сетевой интерфейс.

Данные настройки пропадут после перезагрузки системы и не повлияют на файл /etc/network/interfaces

Настройка DNS

За конфигурацию DNS отвечает утилита resolvconf, которая работает в паре с небольшим кеширующим DNS сервером dnsmasq. resolvconf позволяет осуществить настройку DNS на основе данных от разных подсистем.
Одним из следствий этого полезного нововведения (переход на эту схему произошел в Ubuntu начиная с версии 12.04) является то, что теперь файл /etc/resolv.conf генерируется автоматически, а не индивидуально каждой программой, которая хочет его изменить (порой перезаписывая правки сделанные ранее). Автоматическая генерация /etc/resolv.conf означает, что внесенные «руками» изменения в него будут потеряны.
Автоматически формируемый /etc/resolv.conf содержит ссылку на DNS сервер на локальном интерфейсе (127.0.1.1), а там (на 53 порту) и сидит сервис dnsmasq, который отвечает за разрешение символьных имен в IP адреса. Нужно отметить, что этот порт (53) открыт в режиме LISTEN, но т.к. это локальный интерфейс, то из внешней сети этот порт не доступен.
Информацию о DNS для статических интерфейсов теперь надо вносить в /etc/network/interfaces в параметры dns-nameservers, dns-search и dns-domain (которые соответствуют параметрам nameserver, search и domain в /etc/resolv.conf)

Обратите внимание - в /etc/resolv.conf, при записи нескольких серверов используется несколько ключей nameserver, а в /etc/network/interfaces все адреса DNS серверов записывались в одну строчку после ключа dns-nameservers, разделенные пробелами.

В итоге описание статического интерфейса в /etc/network/interfaces должно выглядеть примерно так:

Iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 gateway 192.168.0.254 dns-nameservers 8.8.8.8 192.168.0.254 auto eth0

Ubuntu до версии 12.04

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

$ sudo gedit /etc/resolv.conf

и впишите туда адреса DNS серверов (отдельные записи для каждого сервера):

Nameserver 192.168.0.100 nameserver 192.168.0.200

Где 192.168.0.100 и 192.168.0.200 - адреса DNS серверов. Если нужно добавить больше адресов - каждый адрес нужно начинать с новой строки и с фразы nameserver

Настройка соединений ppp

За создание соединений типа «точка-точка» в Ubuntu отвечает демон pppd , более подробная информация о котором доступна в документации . В рамках данного руководства будут рассмотрены примеры создания PPPoE подключения через DSL модем, подключения PPTP (VPN-подключения) и DIAL-UP подключения через обычный модем.

Соединение PPPoE

В стандартную установку Ubuntu входит утилита для настройки PPPoE соединений – pppoeconf , для ее запуска наберите:

$ sudo pppoeconf

Появится «псевдографическое» окно в терминале. Утилита произведет поиск сетевых устройств и выведет их на экран, далее она произведет поиск модема на этих устройствах. Если на этом этапе pppoeconf выдаст отрицательный результат - проверьте правильность подключения, питание модема. Следующий шаг - выбор «популярных параметров» - в большинстве случаев стоит согласиться. Далее утилита запросит Ваш логин, а затем - пароль. Теперь - выбор способа указания DNS серверов. Опять же, в большинстве случаев следует согласиться на получение адресов DNS серверов автоматически. Далее Вам предложат ограничить размер MSS до 1452-х байт - как правило, стоит согласиться. Следующий вопрос - устанавливать ли подключение автоматически при загрузке компьютера. Последний вопрос утилиты - установить ли соединение сейчас. pppoeconf по умолчанию создает для подключения имя dsl-provider. Управлять подключением Вы можете при помощи команд:

$ sudo pon dsl-provider # Для подключения или $ sudo poff dsl-provider # Для отключения

Если в Вашем случае опций, предоставляемых утилитой pppoeconf недостаточно - обратитесь к документации по pppd или pppoeconf .

Замечание: при настройке соединения с помощью pppoeconf часть настроек записывается в /etc/network/interfaces , в результате чего Network Manager больше не может управлять сетью. Выход: либо использовать только NM, либо только консоль+конфиги. Вернуть управление Network Manager можно следующим образом. Приведите /etc/network/interfaces к следующему виду (лишнее не обязательно удалять, достаточно закомментировать):

# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback

Перезапустите сеть:

Перезагрузитесь или перезапустите Network Manager:

$ sudo /etc/init.d/NetworkManager restart

Соединение PPTP

Для осуществления VPN-соединения при помощи pppd Вам потребуется установить пакет pptp-linux , который может быть найден на установочном диске Ubuntu. Далее создайте (от root"а) в папке /etc/ppp/peers файл с названием Вашего провайдера и отредактируйте его, например так:

$ sudo nano /etc/ppp/peers/my-provider

И добавьте туда опции подключения, например такие:

Persist # При разрыве соединения - переподключаться снова. maxfail 0 # Максимальное количество неудачных попыток подключения. 0 - бесконечно. mtu 1476 # Значение MTU name {логин} # Ваш логин. #nodefaultroute # Не быть шлюзом по умолчанию defaultroute # Быть шлюзом по умолчанию replacedefaultroute # Заменить шлюз по умолчанию если он был remotename {vpn} # Имя удаленного сервера (для нас), может быть любым. pty "pptp {адрес_сервера} --nolaunchpppd" # Команда запуска pptp. # Адрес сервера - может быть как IP адресом, так и доменным именем, например vpn.foo.bar

{логин} {vpn} {пароль}

После перезагрузки системы Вы сможете управлять соединением при помощи команд:

Процесс настройки VPN-соединения может сильно облегчить скрипт-помощник .

Настройка DIAL-UP подключения

Для настройки модемного соединения можно использовать встроенный конфигуратор pppd - pppconfig или специальную утилиту wvdial .

При помощи pppconfig

Процесс настройки при помощи pppconfig во многом похож на утилиту pppoeconfig , Вам по очереди будут заданы вопросы о параметрах подключения, и будет предложено ввести номер телефона, логин и пароль, а также имя соединения. Запускать pppconfig следует с правами суперпользователя. Например так:

$ sudo pppconfig

Управлять соединением можно так:

$ sudo pon my-provider # Для подключения или $ sudo poff my-provider # Для отключения

Где my-provider - имя, присвоенное Вами соединению при настройке.

При помощи wvdial

В некоторых случаях (например при подключении с использованием мобильного телефона), удобнее использовать wvdial . Для этого нужно его сначала установить. Например так:

$ sudo apt-get install wvdial

В состав пакета wvdial входит утилита автоматического конфигурирования - wvdialconf .

$ sudo wvdialconf

Вывод будет примерно следующим:

Ubuntu@ubuntu:~$ sudo wvdialconf password for ubuntu: Editing `/etc/wvdial.conf". Scanning your serial ports for a modem. Modem Port Scan<*1>: S0 S1 S2 S3 WvModem<*1>: Cannot get information for serial port. ttyACM0<*1>: ATQ0 V1 E1 -- OK ttyACM0<*1>: ATQ0 V1 E1 Z -- OK ttyACM0<*1>: ATQ0 V1 E1 S0=0 -- OK ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK ttyACM0<*1>: Modem Identifier: ATI -- Manufacturer: QUALCOMM INCORPORATED ttyACM0<*1>: Speed 4800: AT -- OK ttyACM0<*1>: Speed 9600: AT -- OK ttyACM0<*1>: Speed 19200: AT -- OK ttyACM0<*1>: Speed 38400: AT -- OK ttyACM0<*1>: Speed 57600: AT -- OK ttyACM0<*1>: Speed 115200: AT -- OK ttyACM0<*1>: Speed 230400: AT -- OK ttyACM0<*1>: Speed 460800: AT -- OK ttyACM0<*1>: Max speed is 460800; that should be safe. ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK Found an USB modem on /dev/ttyACM0. Modem configuration written to /etc/wvdial.conf. ttyACM0: Speed 460800; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"

Теперь остается только отредактировать файл /etc/wvdial.conf и добавить в него номер телефона, логин и пароль.

$ sudo nano /etc/wvdial.conf

Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Modem Type = USB Modem ISDN = 0 Idle Seconds = 0 New PPPD = yes Dial Attempts = 0 Phone = #777 Modem = /dev/ttyACM0 Username = mobile Password = internet Baud = 460800 Idle Seconds = 0 # Время простоя соединения, # после которого нужно будет его разорвать. Значение 0 - никогда. Dial Attempts = 0 # Количество попыток дозвона. 0 - бесконечно. Dial Command = ATDP # Команда набора номера (P - импульсный, T - тональный). Имеет смысл для набора номера в импульсном режиме на старых АТС.

Файл /etc/wvdial.conf разбит на секции, в качестве разделителей которых выступают сами названия секций, предварённые словом Dialer, в квадратных скобках. Если исполнять команду без параметров, то в дело пойдут установки, перечисленные в секции Defaults. В противном случае дополнительно будут исполнены указанные в добавочных секциях команды.

Теперь, когда все настроено, соединение можно установить набрав:

$ sudo wvdial

Если потребуется запустить wvdial с набором номера в импульсном режиме, то это можно сделать командой

$ sudo wvdial pulse

Прервать соединение можно прервав выполнение команды wvdial , т.е. в том же терминале нужно нажать Ctrl + C .

Автоматическое подключение

Отредактируйте файл конфигурации /etc/network/interfaces , например так:

$ sudo nano /etc/network/interfaces

И допишите в него:
Для pppoe , pptp , и модемного подключения без использования wvdial :

Iface ppp0 inet ppp provider my-provider auto ppp0

Где my-provider - название вашего соединения.
При использовании wvdial :

Iface ppp0 inet wvdial provider wvdial auto ppp0

Теперь при перезапуске сетевых служб соединение будет автоматически установлено.

Ручная настройка роутинга

Если Вы не получаете адрес шлюза по-умолчанию от сервера, к которому подключаетесь, или по какой-либо иной причине Вам необходимо указать маршруты вручную - Вы можете создать свой скрипт в /etc/ppp/ip-up.d/ , либо по рекомендации официальной документации создать /etc/ppp/ip-up.local например так:

$ sudo nano /etc/ppp/ip-up.local

$ sudo nano /etc/ppp/ip-up.d/routing

со следующим кодом:

#! /bin/sh # route del default route add default ppp0 # Имя ppp-подключения. # тут - необходимые маршруты, например: route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1 dev eth0

$ sudo chmod ug+x /etc/ppp/ip-up.local

$ sudo chmod ug+x /etc/ppp/ip-up.d/routing

Теперь маршруты будут автоматически подключаться при установлении ppp-соединения.

Установка MTU и TTL

MTU (Maximum Transfer Unit) - параметр определяет величину максимальной единицы передачи. Это максимальное количество октетов (байт), которое интерфейс способен поддерживать за одну операцию приема/передачи. Для Ethernet это значение по умолчанию составляет 1500 (максимальный размер пакета Ethernet).

TTL (Time To Live) - время жизни ip-пакета в секундах. Нужен чтобы избежать перегрузки сети пакетами. Обычно каждый роутер, через которого прошел пакет, уменьшает TTL на еденицу. Если TTL=0, пакет из системы удаляется. Изначально TTL=128 (для Windows) и TTL=64 (для Ubuntu). Для DNS -записей TTL определяет время актуальности данных при кешировании запросов.

Для изменения величины MTU, отредактируем файл конфигурации /etc/network/interfaces , например так:

Auto eth0 iface eth0 inet static address 192.168.1.5 netmask 255.255.255.0 mtu 600

Для изменения величины TTL наберите:

$ sudo su затем # echo "128" > /proc/sys/net/ipv4/ip_default_ttl

Значение TTL меняется только с правами администратора, для выхода из аккаунта администратора введите exit

Настройка WiFi

Настройка Wi-Fi при помощи wpa-supplicant и /etc/network/interfaces

В этой главе пойдет речь о настройке подключения к существующей Wi-Fi сети с использованием наиболее безопасного на сегодняшний день стандарта шифрования и аутентификации WPA2. Дополнительно приведены примеры настроек для менее безопасных соединений.

Если Вы можете повлиять на настройку точки доступа, например, в случае, если это Ваш домашний Wi-Fi роутер - постарайтесь настроить авторизацию с использованием WPA2, т.к. это наиболее безопасный протокол аутентификации в беспроводных сетях на настоящий момент.

Замечания

Решение проблем

Не устанавливается соединение по Wi-Fi/Ethernet с точкой доступа/маршрутизатором

Симптомы: сеть обычно изначально работает нормально, долго или недолго, а затем неожиданно пропадает и не появляется после перезагрузки. Эта проблема может быть непостоянной. Сеть «сама собой» начинает работать, а затем пропадает вновь. При перезапуске адаптера сети таким образом:

Sudo ifdown wlan0 sudo ifup wlan0

будет выводиться в консоль похожий текст

Listening on LPF/wlan0/00-02-2A-E1-E0-6C Sending on LPF/wlan0/00-02-2A-E1-E0-6C Sending on Socket/fallback DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 8 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 8 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 15 No DHCPOFFERS received. No working leases in persistent database - sleeping.

Причиной проблемы может быть то, что материнская плата полностью не обесточивается при выключении компьютера. При этом вероятно не обесточивается и некоторое периферийное оборудование, в т.ч. могут не обесточиваться usb порты. Если вы используете, например, Wi-Fi usb-адаптер, то в таком случае можно заметить горящий на адаптере светодиод (если он им оборудован). Вероятно проблема возникает из-за того, что сетевое оборудование в этом режиме работает не совсем корректно.

Простое решение проблемы состоит в выключении компьютера и выдергивании кабеля питания из розетки с последующим подключением шнура питания и включением компьютера.

Сложное решение проблемы состоит в настройке параметров BIOS-а на полное обесточиваение сетевого оборудования при выключении компьютера.

Иногда наглухо пропадает соединение по Wi-Fi с точкой доступа/маршрутизатором

Симптомы: сеть изначально работает, а затем после перезагрузки точки доступа/маршрутизатора неожиданно пропадает, и не появляется ни после перезагрузки, ни после танцев с бубном. При этом беспроводной адаптер в упор не видит точку доступа (хотя она может стоять рядом с компьютером), но прекрасно видит все соседские сети. Затем после ~дцатой~ перезагрузки маршрутизатора сеть сама собой появляется вновь.

Причиной проблемы может быть то, что некоторые маршрутизаторы произвольно выбирают номер рабочего канала, игнорируя номер канала выбранный в настройках маршрутизатора. Если в файле /etc/network/interfaces номер канала для беспроводного интерфейса указан, то вероятно проблема состоит именно в этом. Номер 6 канала указывается в файле примерно так:

Auto wlan0 ... wireless-channel 6

Простое решение проблемы состоит в комментировании этого параметра, чтобы адаптер не был ограничен только этим каналом, и перезапуске сети

Auto wlan0 ... #wireless-channel 6

Сложное решение проблемы состоит в регистрации бага на сайте производителя маршрутизатора (прошивки для него) и обновление прошивки маршрутизатора после (в случае) его исправления.

Перезапуск сети

Теперь, когда все необходимые действия выполнены, можно перезапустить сеть и проверить соединение. Для этого:

$ sudo /etc/init.d/networking restart

Теперь, при запуске команды ip addr должно отобразиться подключение eth0 с выставленными параметрами. Если подключение отображается, но параметры не такие, какие были указаны в файле /etc/network/interfaces , либо возникают любые другие ошибки, перепроверьте этот файл на наличие неточностей и опечаток и попробуйте ещё раз перезапустить сеть.

FAQ по сетям

Как зайти на мой компьютер извне (через интернет)?

Для начала надо узнать, какой IP-адрес даёт провайдер - серый или белый (не путать со статическим/динамическим). Если серый, то ничего не получится. Если белый, то возможны два варианта:

    Роутера нет или он работает в режиме бриджа (моста). В этом случае белый IP-адрес присваивается самому компьютеру. Вводим адрес - попадаем на комп, всё просто.

    Белый адрес присваивается роутеру. Соответственно, по этому адресу мы попадаем на роутер, а не на компьютер. Чтобы попасть на компьютер, на роутере нужно пробросить порты (см. ниже).

Мне кажется, у меня слишком медленно работает сеть!

Измерьте скорость сети между двумя компьютера с помощью iperf . Можно воспользоваться этой инструкцией. В ней предлагают скомпиллировать программу из исходников, но можно просто установить её из репозитория . Если iperf покажет значение немного меньшее, чем ожидаемое, то с сетью всё в порядке, проблема может быть в железе (жёсткий диск/процессор не могут обеспечить большую скорость), в способе передачи (например, scp и ftp весьма неторопливы), в настройках (скорость может быть ограничена, например, настройками FTP -сервера) или в чём-то ещё. Если iperf показал величину, которая в разы меньше желаемой, то да - с сетью проблемы. Стоит посмотреть, в нужном ли режиме работает карта (например, с помощью ethtool), проверить наличие «errors» в выводе ifconfig и протестировать скорость подключения к какому-нибудь третьему компьютеру.

Как узнать, какие программы слушают порты на моём компьютере?

Чтобы посмотреть список открытых портов и названия слушающих их программ, используйте команду:

Sudo netstat -nlpA inet,inet6

Для вывода информации о конкретном порте можно использовать grep . Например, для 80 порта:

Sudo netstat -nlpA inet,inet6 | grep:80

Из вывода netstat не всегда понятно, о какой программе идёт речь (например, 2671/python ), подробнее о процессе расскажет ps:

Ps aux | grep 2671

Как присвоить два IP-адреса одной сетевой карте?

Например, интерфейсу eth0 нужно добавить адрес 192.168.1.1 . Кратковременно, до перезапуска сети:

Sudo ip addr add 192.168.1.1/24 dev eth0

Навсегда - добавить в /etc/network/interfaces следующее:

#исправить строку auto auto eth0 eth0:1 # добавить алиас iface eth0:1 inet static address 192.168.1.1 netmask 255.255.255.0

Как пробросить порт?

Например, нужно пробросить порт 8081. Адрес, на который обращается клиент, назовём внешний_ip , а адрес, на который он должен попасть - внутренний_ip .

Iptables -t nat -A PREROUTING -p tcp -d внешний_ір --dport 8081 -j DNAT --to-destination внутренний_ір:8081 iptables -t nat -A POSTROUTING -p tcp --dst внутренний_ір --dport 8081 -j SNAT --to-source внешний_ір

И обязательно нужно что-то вроде

Iptables -t filter -A FORWARD -m conntrack --ctstate DNAT -j ACCEPT

- 113.50 Кб

АЛМАТИНСКИЙ ФИЛИАЛ НЕГОСУДАРСТВЕННОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГУМАНИТАРНЫЙ УНИВЕРСИТЕТ ПРОФСОЮЗОВ»


Факультет экономики

Кафедра экономики информатики и математики

РЕФЕРАТ

По дисциплине Операционные системы, среды и оболочки .

«Утилиты LINUX для работы с сетью»

(Тема работы)

Выполнил(а) студент(ка)

202 ПИВ группы 2 курса

вечернего отделения

Хадури

(фамилия)

Але Иванович

(имя, отчество)

_________________

(подпись)

Проверил_________________

Ученая степень, звание

Ахметкалиева С.К.

Фамилия, имя, отчество


Алматы, 2008


  1. Сетевые протоколы. Семейство протоколов ТСР/IP.
  2. Аппаратный и интерфейсный уровни

    а) Запуск ifconfig

    б) Сетевой интерфейс

    в) Три принципа алгоритма

    3. Сетевой уровень

    4. Адресация

    а) Просмотр таблицы ARP

    5. Маршрутизация

    а) Простая таблица маршрутизации

    б) Сложная таблица маршрутизации

    6. Служебный протокол ICMP

    а) Определение маршрута пакета

    7. Транспортный уровень

    а) Устанавливается соединение

    б) Обрабатываются подтверждения

    в) Отслеживаются состояния абонентов

Сетевые протоколы. Семейство протоколов TCP/IP

В статье кратко описано семейство протоколов TCP/IP и их реализация в Linux, обосновано разделение сетевых протоколов на уровни и выделены задачи, решаемые на каждом из них. Приведены утилиты Linux для работы с сетью. Кроме того, рассмотрена работа метадемона inetd и структура службы доменных имен в Internet.


Так случилось, что Мефодий мало что знал о компьютерных сетях до знакомства с Linux. Если пользоваться только web-броузером и почтовой программой, сведений вроде "у каждого компьютера Internet есть имя, на компьютерах бывает почта и WWW" обычно вполне достаточно. Строго говоря, если сеть настроена, почтовые клиенты или броузеры Linux не требуют большего объема знаний. Однако Linux хорош именно тем, что позволяет проследить работу сети от процедур самого низкого уровня, вроде поведения сетевых карт, до приложений высокого уровня и их протоколов.

В разговоре о сетях передачи данных понятие "уровень" возникает неспроста. Дело в том, что передача данных между компьютерами – сложный процесс, в котором решается сразу несколько разноплановых задач. Если представить себе весь процесс организации сети "на пустом месте", как если бы никаких сетевых разработок доныне не было, все эти задачи встают одна за другой.

Итак, если бы Мефодий получил задание "придумать Internet" на пару с Гуревичем, какие бы вопросы перед ними встали?

  1. Среда передачи данных. Посредством чего передавать данные? Как именно представляется передаваемая информация?
  2. Устройство передачи данных (раз уж известно, как передаются данные). Как подключаться к среде? Как отличить данные от не-данных (т. е. определить, идет ли передача)? Как определить очередность работы нескольких устройств, подключенных к одной среде передачи данных? Как определить, кому предназначаются данные, передаваемые в общей среде?
  3. Топология неоднородной сети (раз уж известно, как подключить компьютер к одной или нескольким средам передачи данных). Если в сеть объединены несколько сред передачи данных, как определить адресата (и отправителя тоже)? Как обеспечить пересылку данных из одной среды в другую? Как выстроить непрерывный маршрут пересылок от отправителя к адресату?
  4. Доставка данных (раз уж есть механизм передачи данных от любого абонента сети к любому). Как обеспечить целостность и надежность передачи данных (и нужно ли)? Как управлять самим каналом передачи данных (например, чтобы не отправлять данных больше, чем принимающая сторона в состоянии принять)? Как разделять несколько каналов передачи данных (например, когда от одного компьютера к другому одновременно передаются два файла)?
  5. Интерпретация данных (раз уж возможна надежная и без искажений доставка). Что делать с полученными данными? Какие части операционной системы отвечают за их обработку, и откуда про это знает абонент с другой стороны соединения?

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

В приведенном делении на этапы (уровни) примечательна их относительная независимость: если группа задач, связанная с некоторым уровнем, решена, на следующем уровне можно забыть, как именно решались эти задачи. Так, устройство передачи данных типа "Ethernet" с точки зрения компьютера всегда одно и то же, какой бы носитель при этом не использовался: коаксиальный кабель или кабель типа "витая пара", хотя с физической и даже топологической точки зрения эти среды сильно различаются 1) . Точно так же обстоят дела при переходе со второго уровня на третий: во время получения данных уже совершенно неважно, какие среды передачи были при этом задействованы (ethernet, три провода, голубиная почта 2) ...). Переход с третьего уровня на четвертый и с четвертого на пятый тоже обладает этим свойством.

По всей видимости, именно с этими задачами сталкивались и разработчики из института ARPA (Advanced Research Projects Agency, "Агентство перспективных исследовательских проектов"; в процессе работы оно было переименовано в DARPA, где "D" означало Defence). По крайней мере, предложенное ими в середине семидесятых семейство протоколов TCP/IP также подразделялось на пять уровней: аппаратный, интерфейсный, сетевой, транспортный и прикладной. Впоследствии аппаратный уровень стали смешивать с интерфейсным, так как с точки зрения операционной системы они неразличимы 3) . Именно разделение на независимые друг от друга уровни позволило со временем объединить большинство разнородных локальных сетей в единое сетевое пространство – глобальную сеть Internet.

В TCP/IP вопрос о том, как обеспечить нескольким абонентам сети возможность передавать данные, не мешая друг другу, решен с помощью разделения пакетов данных. разделение пакетов предполагает, что данные передаются не единым блоком, а по частям, пакетами . Алгоритмы, определяющие, когда абоненту разрешено посылать следующий пакет, могут быть разными, но результат всегда один: в сети передаются попеременно фрагменты всех сеансов передачи данных. В сильно загруженном состоянии такая сеть может просто не принять очередной пакет от абонента-отправителя, и тому придется ждать удобного случая, чтобы все-таки "пропихнуть" его в переполненную другими пакетами среду. Таким образом, обеспечить гарантированное время передачи одного пакета в сетях с разделением пакетов бывает довольно сложно, хотя существуют алгоритмы, позволяющие это сделать.

Противоположность метода разделения пакетов – метод разделения каналов , который предполагает, что в сети имеется определенное число каналов передачи данных, которые абоненты сети арендуют на все время передачи. По такому принципу построены, например, телефонные линии: дозвонившись, мы арендуем канал связи между двумя телефонными аппаратами, и до тех пор, пока этот канал занят, невозможно ни воспользоваться им кому-то другому, ни организовать параллельно передачу данных откуда-нибудь еще. Главное достоинство сетей с разделеним каналов – постоянная (за вычетом помех на линии) скорость передачи данных. Основной недостаток – ограниченное количество каналов передачи. Проектировать среду передачи так, чтобы каждый абонент был связан с каждым отдельным каналом , имеет смысл только тогда, когда абонентов очень мало: количество каналов будет пропорционально квадрату количества абонентов. Количество каналов в большой сети будет существенно меньшим, и ровно столько сеансов передачи данных можно будет в этой сети установить. Попытка соединиться с абонентом, когда все каналы уже заняты, окончится неудачей. Мефодий припомнил своего знакомого, дозвониться которому тяжело, хотя телефон тот занимает нечасто и не подолгу. По всей видимости, каналов между какими-то двумя АТС, через которые Мефодий связывается с приятелем, хронически недостает (так бывает, когда отдаленный район быстро застраивается и наполняется телефонами).

Если вернуться к сети с разделением пакетов , то можно заметить, что на каждом уровне под пакетом понимается разное. С точки зрения интерфейсного уровня пакет – это ограниченный возможностями среды передачи данных фрагмент, в котором необходимо дополнительно указать, какое устройство из числа подключенных к среде передачи данных его отправило и какому устройству он предназначен. С точки зрения сетевого уровня размер пакета определяется удобством его обработки, а дополнительно в нем надо указать уникальные для всей сети адреса отправителя и получателя (а также тип протокола и многое другое). С точки зрения транспортного уровня размер пакета определяется качеством связи (чем меньше пакет, тем ниже вероятность порчи, но тем больше теряется на дополнительной информации: идентификатор сеанса, тип, специальные поля, описывающие логику связи и т.п.). Наконец, если на прикладном уровне определено понятие "пакет", то его размер и содержимое определяются протоколом прикладного уровня.

Таким образом, процесс передачи данных выглядит так: порция данных прикладного уровня нарезается на части, соответствующие размеру пакета транспортного уровня (фрагментируется), к каждому фрагменту приписывается транспортная служебная информация, и получаются пакеты транспортного уровня. Каждый пакет транспортного уровня может быть опять-таки фрагментирован для передачи по сети, к каждому получившемуся фрагменту добавляется служебная информация сетевого уровня, что дает последовательность сетевых пакетов . Каждый из сетевых пакетов тоже может быть фрагментирован до размера, "пролезающего" через конкретное сетевое устройство, – из него формируются пакеты интерфейсного уровня (фреймы). Наконец, к каждому фрейму само устройство (по крайне мере, так это сделано в Ethernet) приписывает некоторый ключ, по которому принимающее устройство распознает начало фрейма. В таком виде данные передадутся по проводам. Процесс "заворачивания" пакетов более высокого уровня в пакеты более низкого уровня называется инкапсуляцией .

Компьютер, получивший фрейм, выполняет процедуры, обратные инкапсуляции и фрагментации: пакеты низкого уровня освобождаются от служебной информации и накапливаются до тех пор, пока не сформируется пакет более высокого уровня. Затем этот пакет отсылается на уровень выше и все повторяется до тех пор, пока освобожденные от всей дополнительной информации и заново собранные воедино данные не попадут к пользователю (или к программе, которая их обрабатывает).

Сетевой пакет. Единица передачи информации в компьютерной сети. Помимо передаваемых данных содержит служебную информацию, в частности, идентификаторы отправителя и адресата, контрольную сумму, поля используемого протокола. Наибольший размер пакета определяется чаще всего не объемом передаваемых данных, а требованиями протокола и необходимостью разделять сеть передачи данных между несколькими абонентами.

Аппаратный и интерфейсный уровни

Итак, на аппаратном уровне возможна какая угодно среда передачи данных – с точки зрения Linux, сеть начинается в месте подключения к этой среде, то есть на сетевом интерфейсе . Список сетевых интерфейсов и их настроек в системе можно посмотреть с помощью команды ifconfig (от i nterf ace conf iguration):

methody@localhost:~ $ ifconfig

Bash: ifconfig: command not found

methody@localhost:~ $ /sbin/ifconfig

Warning: cannot open /proc/net/dev (Permission denied). Limited output.

eth0 Link encap:Ethernet HWaddr 00:0C:29:56:C1:36

inet addr:192.168.102.125 Bcast:192.168.102.255 Mask:255.255.255.0

UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1

Warning: cannot open /proc/net/dev (Permission denied). Limited output.

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

UP LOOPBACK RUNNING MTU:16436 Metric:1

Пример 14.1. Запуск ifconfig ( html , txt )

Утилитой ifconfig пользуется, в основном, сама система или администратор; некоторые данные ifconfig получает, обращаясь с системным вызовом ioctl() к открытому сетевому сокету , а некоторые считывает из /proc . Название сетевого интерфейса состоит из его типа и порядкового номера (каким по счету его распознало ядро). Все сетевые интерфейсы Ethernet в Linux называются ethномер , начиная с eth0 . Параметр MTU (M 7. Транспортный уровень
а) Устанавливается соединение
б) Обрабатываются подтверждения
в) Отслеживаются состояния абонентов

Лабораторная работа №3

Тема: Основные команды и назначение команд в OS Windows и Linux, используемые для проверки связи с другими хостами.

TCP/IP. Утилиты в Windows.

После того, как выполнены все сетевые настройки, необходимо проверить, есть ли сеть. Это можно сделать с помощью следующих команд:

Ping – проверяет соединение с удаленным хостом;

Использование: ping [-t] [-a] [-n число] [-l размер] [-f] [-i TTL] [-v TOS] [-r число] [-s число] [[-j списокУзлов] | [-k списокУзлов]] [-w интервал] списокРассылки

Параметры:

T Отправка пакетов на указанный узел до команды прерывания.

A Определение адресов по именам узлов.

N число Число отправляемых запросов.

L размер Размер буфера отправки.

F Установка флага, запрещающего фрагментацию пакета.

I TTL Задание времени жизни пакета (поле "Time To Live").

V TOS Задание типа службы (поле "Type Of Service").

R число Запись маршрута для указанного числа переходов.

S число Штамп времени для указанного числа переходов.

K списокУзлов Жесткий выбор маршрута по списку узлов.

Сервер кафедры ПМиИ имеет IP Address 194.44.183.180. Если передачи данных нет, то возможны ошибки в сетевых настройках.

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

tracert – определяет маршрут, фактически выбранный к узлу назначения.

Использование: tracert [-d] [-h максЧисло] [-j списокУзлов] [-w интервал] имя

Параметры:

D Без определения адресов по именам узлов.

H максЧисло Максимальное число переходов при поиске узла.

J списокУзлов Свободный выбор маршрута по списку узлов.

W интервал Интервал ожидания каждого ответа в миллисекундах.

В Windows есть еще несколько полезных команд:

netstat – показывает статистику протоколов и TCP соединений;

NETSTAT [-a] [-e] [-n] [-s] [-p имя] [-r] [интервал]

A Отображение всех подключений и ожидающих портов.

(Подключения со стороны сервера обычно не отображаются).

E Отображение статистики Ethernet. Этот ключ может

применяться вместе с ключом -s.

N Отображение адресов и номеров портов в числовом формате.

P имя Отображение подключений для протокола "имя": tcp или udp.

Используется вместе с ключом -s для отображения статистики

по протоколам. Допустимые значения "имя": tcp, udp или ip.

R Отображение содержимого таблицы маршрутов.

S Отображение статистики по протоколам. По умолчанию выводятся

данные для TCP, UDP и IP. Ключ -p позволяет указать

подмножество выводящихся данных.

интервал Повторный вывод статистических данных через указанный

интервал в секундах. Для прекращения вывода данных

нажмите клавиши CTRL+C. Если параметр не задан, сведения

о текущей конфигурации выводятся один раз.

nbtstat – показывает статистику протоколов и TCP/IP – соединений при работе через NetBIOS.

NBTSTAT [-a RemoteName] [-A IP address] [-c] [-n]

[-r] [-R] [-s] [S] ]

A (adapter status) Lists the remote machine"s name table given its name

A (Adapter status) Lists the remote machine"s name table given its

C (cache) Lists the remote name cache including the IP addresses

N (names) Lists local NetBIOS names.

R (resolved) Lists names resolved by broadcast and via WINS

R (Reload) Purges and reloads the remote cache name table

S (Sessions) Lists sessions table with the destination IP addresses

S (sessions) Lists sessions table converting destination IP

addresses to host names via the hosts file.

RemoteName Remote host machine name.

IP address Dotted decimal representation of the IP address.

interval Redisplays selected statistics, pausing interval seconds

between each display. Press Ctrl+C to stop redisplaying

Route – ручное управление маршрутными таблицами;

ARP – показывает и модифицирует таблицы трансляции IP-to-Ethernet адресов.

A Вывод текущих записей таблицы ARP путем опроса текущих данных

протокола. Если указан адрес inet_addr, то адреса IP и

физические выводятся только для указанного компьютера. Если

протокол ARP используется несколькими сетевыми интерфейсами,

то выводятся записи из каждой таблицы ARP.

G Аналог -a.

inet_addr Задание адреса IP.

N if_addr Вывод текущих записей таблицы ARP для сетевого интерфейса,

определяемого параметром if_addr.

D Удаление узла, определяемого параметром inet_addr.

S Добавление узла и связывание адреса IP inet_addr

с физическим адресом eth_addr. Физический адрес задается

с помощью 6 шестнадцатеричных чисел, разделяемых дефисами.

Запись является постоянной.

eth_addr Задание физического адреса.

if_addr Необязательный параметр, указывающий адрес IP интерфейса,

для которого следует изменить таблицу адресов. Если параметр

не задан, используется первый доступный интерфейс.

Образец::

> arp -s 157.55.85.212 00-aa-00-62-c6-09 .... Добавляет статическую запись.

> arp -a .... Выводит таблицу arp.

FTP – передает и принимает файлы для узла, имеющего FTP-сервис.

Обмен файлами с компьютером, на котором запущена служба

сервера FTP. Ftp может использоваться интерактивно.

FTP [-v] [-d] [-i] [-n] [-g] [-s:имя_файла] [-a] [-w:буфер] [узел]

V Отключение вывода на экран ответов с удаленного сервера.

N Отключение автоматического входа при начальном подключении.

I Отключение интерактивных запросов при передаче нескольких

D Включение отладочного режима.

G Отключение глобализации имен файлов (см. команду GLOB).

S:имя_файла Задание текстового файла, содержащего команды FTP, которые

будут выполняться автоматически при запуске FTP.

A Использование локального интерфейса для привязки соединения.

W:буфер Переопределение стандартного размера буфера передачи (4096).

узел Задание имени или адреса IP удаленного узла,

к которому необходимо выполнить подключение.

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

Команды, предназначенные для установления соединения с удаленной системой и проведения сеанса работы после установления соединения.

host – выводит IP-адрес указанной системы, используя службу DNS. Можно указать IP-адрес, и он будет преобразован в имя системы.

Параметры: -d – отладочный режим;

С – вывод списка всех систем в зоне;

Dd - тоже самое, что d, но в более подробной

hostname – выводит имя локальной системы.

D – выводит имя DNS-сервера;

F – вывод полного имени системы;

S – краткого имени системы;

ping – отправляет пакеты на указанную систему для определения пропускной способности сети. Для получения более подробной информации см. man ping.

rlogin – позволяет провести сеанс работы на удаленной системе. Для получения более подробной информации см. man rlogin.

rwall <система> – отправляет сообщение всем пользователям, подключенным к указанной системе.

talk пользователь [терминал] – позволяет 2-м пользователям весли интерактивный разговор.

finger – выводит информацию об указанном пользователе.

L – выводит информацию в подробном формате

Задание к лабораторной работе.

Изучить сетевые команды ОС Windows и ОС Linux.

Сеть, это один из самых важных компонентов администрирования серверов или просто компьютеров с операционной системой Linux. Пользователям домашнего компьютера вряд ли понадобятся все эти утилиты. Но вот для администраторов серверов или даже сетей, это вещь незаменимая. Особенно когда нужно понять почему не работает сеть или выяснить на каком сетевом узле прерывается передача пакетов.

В этой статье мы рассмотрим лучшие сетевые утилиты linux, это самые основные команды, которые можно использовать для администрирования сети в Linux. Эта статья не научит вас всем тонкостями использования таких команд, это всего лишь небольшой список с кратким описанием. Если у вас уже есть небольшой опыт их использования, то вы можете использовать статью как шпаргалку, для лучшего запоминания.

ping <хост> - отправляет один эхо запрос по протоколу ICMP на удалённый хост. Пакеты будут отправляется непрерывно, пока вы не нажмете Ctrl+C. Когда пакет будет отправлен, хост должен отправить ответное ICMP сообщение, это и будет означать, что другой хост работает.

telnet хост <порт> - проверить доступность определенного порта на хосте. По умолчанию telnet использует порт 23, но также можно использовать и другие. Например, 7 - эхо порт, 25 - SMTP, почтовый сервер, 79 - Finger, предоставляет информацию о других пользователях сети. Нажмите Ctrl+] чтобы завершить работу telnet.

ARP

ARP используется для преобразования IP-адресов в адреса физической сети, к которой подключен компьютер, например, Ethernet или Wifi. Суперпользователь может добавлять и удалять Arp записи. Их удаление может быть полезно, если arp запись была подделана или просто неверная. Явно добавленные записи - постоянные и система может им доверять. Таблица ARP хранится в ядре и может изменяться динамически. Полученные от других компьютеров ARP записи кэшируются и удаляются по истечении таймаута в 20 минут.

arp –a - вывести таблицу ARP

arp -s - добавить запись в таблицу маршрутизации

arp –a –d - удалить все записи из таблицы ARP

Маршрутизация

Эти утилиты позволяют выполнять администрирование сети linux, а также настраивать маршрутизацию между узлами.

netstat –r - вывести таблицу маршрутизации

Таблица маршрутизации хранится в ядре и используется для маршрутизации IP пакетов за пределами локальной сети.

route add - эта команда используется для установки статических (нединамических) маршрутов вручную. Все пакеты, отправляемые с этого компьютера в определенную сеть должны пройти через определенный шлюз. Этот шлюз мы и устанавливаем командой route. Мы можем задать маршрут по умолчанию, чтобы все отправляемые пакеты, для которых не определен шлюз отправлялись через него, для этого используйте в качестве целевого адреса 0.0.0.0.

routed - BSD демон, который выполняет динамическую маршрутизацию. Он работает по протоколу RIP. Запускать программу можно только с правами суперпользователя.

gated - это альтернатива для routed, может использовать протоколы RIP, OSPF, EGP одновременно. Тоже нужны права root.

traceroute - очень полезная утилита, для отслеживания маршрута пакетов. Чаще всего с помощью этой команды выполняется проверка сети linux. Пакет отправляет сообщение на компьютер со всех шлюзов между источником и пунктом назначения.

netstat –rnf inet - отображает таблицу маршрутизации ipv4

sysctl net.inet.ip.forwarding=1 - разрешает прохождение пакетов через этот компьютер.

route flush - удалить все маршруты

route add -net 0.0.0.0 192.168.10.2 - добавить маршрут по умолчанию

routed -Pripv2 –Pno_rdisc –d [-s|-q] - запустить демон routed по протоколу RIP2 без поддержки ICMP автообнаружения и подробном (s) или минимальном (q) режиме вывода информации.

route add 224.0.0.0/4 127.0.0.1 - добавить маршрут, используемый RIP2

rtquery –n - попросить RIP демона отправить запрос на другой хост (ручное обновление таблицы маршрутизации.

Другое

Иногда нужно не только управление сетью linux, но и работа с другими протоколами, такими как DNS или FTP.

nslookup - отправить запрос DNS серверу, на преобразование доменного имени в IP. Например, nslookup facebook.com вернет ip адрес сервера facebook.com.

ftp хост - передать файлы на хост. Часто нужно использовать также логин и пароль.

rlogin -l - подключиться к виртуальному терминалу с помощью telnet. Не рекомендуется использовать эту конструкцию, лучше используйте защищенное соединение по ssh.

Важные файлы

/etc/hosts - локальные имена для ip адресов

/etc/networks - имена сетей относительно ip адресов

/etc/protocols - имена протоколов для номеров протоколов

/etc/services - tcp/udp сервисы для номеров портов

Анализ сети

ifconfig интерфейс адрес - запустить интерфейс

ifconfig интерфейс - остановить интерфейс

ethereal & - позволяет запустить ethereal в фоновом режиме

tcpdump –i -vvv - инструмент для записи и анализа пакетов

netstat –w секунды –I интерфейс - отобразить настройки сети и статистику

udpmt –p порт –s байт целевой_хост - генерирует UDP трафик

udptarget –p порт - получать UDP трафик

tcpmt –p порт –s байт целевой_хост - генерировать TPC трафик

tcptarget –p порт - получать TCP трафик

ifconfig - посмотреть состояние сетевых интерфейсов

netmask - позволят посмотреть подсети

Свитчинг

ifconfig sl0 srcIP dstIP - настроить серийный интерфейс(сначала выполните slattach –l /dev/ttyd0 а затем sysctl net.inet.ip.forwarding=1

telnet 192.168.0.254 - подключится к свитчу из этой подсети

sh ru или show running-configuration - отобразить текущую конфигурацию

configure terminal - перейти в режим настройки

exit - выйти из режима настройки

VLAN

vlan n - создать VLAN с ID n

no vlan N - удалить VLAN с ID N

untagged Y - добавить порт Y к VLAN N

ifconfig vlan0 create - создать интерфейс vlan0

ifconfig vlan0 vlan ID vlandev em0 - соединить vlan0 с em0

ifconfig vlan0 up - активировать виртуальный интерфейс

UDP / TCP

Это программы для работы с сетью linux, которые позволяют передавать пакеты между машинами.

socklab udp - запустить socklab по протоколу udp.

sock - создать udp соект

sendto ид_сокета хост - порт передача пакетов данных

recvfrom ид_сокета размер_байт - получить данные из сокета

socklab tcp - запустить socklab по протоколу tcp

passive - создать сокет в пассивном режиме.

accept - разрешает входящие соединения

connect хост порт - эквивалент socklab

clase - закрывает соединение

write - записать несколько байт в сокет

NAT/Фаервол

rm /etc/resolv.conf - отключает разрешение доменных имен, что гарантирует правильную фильтрацию по правилам фаервола.

ipnat –f имя_файла -записывает правила фаервола в файл

ipnat –l - получить список активных правил

ipnat –C –F - Очистить таблицу правил

map em0 192.168.1.0/24 -> 195.221.227.57/32 em0 - привязать IP адреса к интерфейсу

map em0 192.168.1.0/24 -> 195.221.227.57/32 portmap tcp/udp 20000:50000 - привязка IP адреса вместе с портом.

ipf –f имя_файла - записать правила в файл

ipf –F –a - очистить таблицу правил

ipfstat –I - информация о фильтрации, отфильтрованных пакетах и правилах.

Выводы

В этой статье мы рассмотрели самые полезные сетевые утилиты linux, с помощью них вы можете выполнять тестирование сети linux, проверить сеть на работоспособность и обнаружить неполадки сети. Более подробную информацию по каждой из них вы можете найти в официальной документации.