Узнаем кто использует сеть в Linux. Сеть, работа с сетью в Unix системах Графические средства настройки

Современный компьютер предоставляет пользователю много возможностей, без доброй половины которых он мог бы запросто обойтись. В сети по сей день идут дебаты о том, нужны ли ему 3D-графика и высококачественный звук. Однако есть одна функция, необходимость которой не оспаривается ни кем, — это выход в сеть.

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

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

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

Команда ifconfig

Как правило, подключение драйверов сетевых адаптеров происходит при установке системы. Чтобы убедиться в этом, достаточно в консоли набрать ifconfig -a. Кстати, данное название вовсе не является исковерканным имени команды ipconfig, знакомой пользователям Windows. Это просто сокращение от Interface Configuration.

В ответ пользователь получит информацию о характеристиках Ethernet-соединения и о параметрах так называемого кольцевого интерфейса. Первый обозначается как eth0 (если сетевых адаптеров несколько, то для каждого будет своя секция eth[порядковый номер]), а второй — как lo.

Эту же команду можно использовать для активации интерфейса. Чаще всего она выглядит так:

ifconfig [обозначение интерфейса] netmask [маска сети] broadcast [широковещательный адрес] up.

Впрочем, на практике все параметры можно и не указывать. Например, если маска сети и широковещательный адрес не задаются явно, то система применит стандартные значения (сетевой адрес с машинной частью 255 и маской 255.255.255.0).

Для активации PLIP, SLIP и РРР необходимо использовать опцию pointopoint. При этом интерфейсы будут именоваться так:

– plip[порядковый номер начиная с нуля] — для PLIP;

– slip[порядковый номер начиная с нуля] — для SLIP;

– ppp[порядковый номер начиная с нуля] — для PPP.

Например, для того чтобы сконфигурировать интерфейс PLIP, соединяющий два компьютера с адресами [адрес1] и [адрес2], следует в консоли набрать:

ifconfig plip0 [адрес1] pointopoint [адрес2].

Отключение интерфейса производится командой ifconfig [обозначение интерфейса] down. Таким образом, используя всего одну команду, вы можете управлять сетевым устройством. И разумеется, держать в памяти все ее опции нет никакого смысла — если что-то забыли, то man ifconfig всегда придет на помощь.

Команда route

Команда route отвечает за маршрутизацию. То есть она указывает системе, на какой сетевой компьютер должны передаваться пакеты, чтобы достичь пункта назначения.

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

– Destination — IP-адрес конечного пункта маршрута;

– Gateway — IP-адрес или имя шлюза (если его нет, то используется символ “*”);

– Genmask — маска сети маршрута;

– Flags — указатель типа или состояния маршрута (может принимать следующие значения: U — активный, Н — хост, С — шлюз, D — динамический, М — модифицированный);

– MSS — максимальное количество данных, предаваемых за один раз;

– Metric — число переходов до шлюза;

– Ref — количество обращений к маршруту на определённый момент времени;

Window — максимальное количество данных для принимающей стороны;

– Use — число пакетов, переданных по маршруту;

– Iface — тип интерфейса.

Чтобы добавить адрес в таблицу маршрутизации, надо использовать команду route с ключом add. При этом следует учесть, что если соответствующий интерфейс уже сконфигурирован при помощи ifconfig, то система сама может получить сведения о нем. В таком случае нет смысла в употреблении спецификаторов — достаточно указать адрес пункта назначения. Все остальные данные будут избыточными, а стало быть, и необязательными.

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

Для удаления маршрута используйте команду route del -net .

Другие команды

Если настройки интерфейса хранятся в системе, то для быстрой активации и деактивации можно использовать команды ifup и ifdown следующим образом:

– ifup [обозначение интерфейса] — для включения.

– ifdown [обозначение интерфейса] — для отключения.

Для вывода на экран списка сетевых подключений, таблиц маршрутизации, статистики интерфейсов и т. п. применяется команда netstat. Помимо всего прочего она позволяет отобразить статус соединения, что полезно при анализе системы на предмет её безопасности.

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

Конфигурационые файлы

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

Несмотря на то что их устройство не зависит от дистрибутива, располагаться они могут в разных местах. Например, в Debian за настройку интерфейсов и маршрутизации отвечает файл /etc/init.d/network, а в Slackware (MOPS, Zenwalk) — /etc/rc.d/rc.inet1. На этот счет можно дать только один универсальный совет: приступая к работе с тем или иным продуктом, обязательно ознакомьтесь с технической документацией.

В качестве примера рассмотрим дистрибутив ASPLinux. Для хранения настроек сетевых интерфейсов там используется каталог /etc/sysconfig/network-scripts/. Каждый из них определяется файлом ifcfg-[обозначение интерфейса].

Этот файл состоит из строк вида: [параметр]=[значение]. Параметры могут быть следующие:

– NAME — произвольное название соединения;

– DEVICE — обозначение интерфейса;

– IPADDR — IP-адрес интерфейса;

– NETMASK — маска сети;

– GATEWAY — IP-адрес шлюза;

– ONBOOT — указатель на необходимость активации во время загрузки;

– USERCTL — указывает на то, что активировать интерфейс может обычный пользователь;

– MTU — значение MTU (максимальный размер пакета, передаваемого через интерфейс);

– PEERDNS — указывает на необходимость использования серверов DNS, полученных при активации интерфейса;

– DNS1, DNS2 — IP-адреса первичного и вторичного серверов DNS;

– BOOTPROTO — указатель режима настройки интерфейса (none — при помощи пользовательских параметров, boottp или dhcp — при помощи соответствующих протоколов).

За настройку DNS отвечают файлы /etc/host.conf и /etc/resolv.conf. Первый из них — это обычный текстовый файл, в котором задаются правила работы подсистемы поиска имен и адресов узлов. Его устройство типично для всех объектов такого типа — в каждой строке содержится параметр и его значения (их может быть несколько).

Параметр order задает метод поиска IP-адреса узла. Он может принимать следующие значения: bind (использовать сервер DNS), hosts (использовать локальную базу адресов), nis (использовать сервер NIS). Они должны располагаться в том порядке, в котором будет осуществляться поиск.

Для описания исключений предназначен параметр trim. В соответствующей строке задается домен, который будет автоматически удаляться из имени.

Параметр reorder может принимать значения on/off. Он отвечает за включение режима работы, при котором локальные адреса получают приоритет перед всеми найденными. Spoofalert включает режим записи в системный журнал результатов проверки ложных имен. А multi позволяет настроить метод обработки локальной базы узлов. Разумеется, все параметры указывать не обязательно. На практике часто встречаются файлы /etc/host.conf, состоящие из двух строк.

Файл /etc/resolv.conf описывает некоторые параметры, которые используются подсистемой поиска имен. Он может состоять из следующих строк:

– nameserver — адреса серверов DNS;

– domain — имя локального домена для поиска адресов в локальной сети;

– search — список доменов для поиска адресов.

Очевидно, что параметры domain и search не могут быть актуальными одновременно. Если система обнаружит это противоречие, то будет учитывать только последнюю запись.

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

Способ заключается в использовании файла /etc/hosts. Он представляет собой список имен хостов и их IP-адресов, причем для одного адреса можно указывать несколько имен.

Графические средства настройки

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

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

Так, пользователи дистрибутива Linux XP Desktop настраивают VPN-соединение при помощи удобного инструмента с графическим интерфейсом, который устроен даже проще, чем аналогичное средство в Windows. Примерно то же самое предлагают потребителю ASPLinux, Mandriva и SuSE Linux.

В общем, Linux действительно создан для сети. И оценить это могут не только опытные пользователи, но и новички.

This is the default welcome page used to test the correct operation of the Apache2 server after installation on Ubuntu systems. It is based on the equivalent page on Debian, from which the Ubuntu Apache packaging is derived. If you can read this page, it means that the Apache HTTP server installed at this site is working properly. You should replace this file (located at /var/www/html/index.html) before continuing to operate your HTTP server.

If you are a normal user of this web site and don"t know what this page is about, this probably means that the site is currently unavailable due to maintenance. If the problem persists, please contact the site"s administrator.

Configuration Overview

Ubuntu"s Apache2 default configuration is different from the upstream default configuration, and split into several files optimized for interaction with Ubuntu tools. The configuration system is fully documented in /usr/share/doc/apache2/README.Debian.gz . Refer to this for the full documentation. Documentation for the web server itself can be found by accessing the manual if the apache2-doc package was installed on this server.

The configuration layout for an Apache2 web server installation on Ubuntu systems is as follows:

/etc/apache2/ |-- apache2.conf | `-- ports.conf |-- mods-enabled | |-- *.load | `-- *.conf |-- conf-enabled | `-- *.conf |-- sites-enabled | `-- *.conf

  • apache2.conf is the main configuration file. It puts the pieces together by including all remaining configuration files when starting up the web server.
  • ports.conf is always included from the main configuration file. It is used to determine the listening ports for incoming connections, and this file can be customized anytime.
  • Configuration files in the mods-enabled/ , conf-enabled/ and sites-enabled/ directories contain particular configuration snippets which manage modules, global configuration fragments, or virtual host configurations, respectively.
  • They are activated by symlinking available configuration files from their respective *-available/ counterparts. These should be managed by using our helpers a2enmod, a2dismod, a2ensite, a2dissite, and a2enconf, a2disconf . See their respective man pages for detailed information.
  • The binary is called apache2. Due to the use of environment variables, in the default configuration, apache2 needs to be started/stopped with /etc/init.d/apache2 or apache2ctl . Calling /usr/bin/apache2 directly will not work with the default configuration.

Document Roots

By default, Ubuntu does not allow access through the web browser to any file apart of those located in /var/www , public_html directories (when enabled) and /usr/share (for web applications). If your site is using a web document root located elsewhere (such as in /srv) you may need to whitelist your document root directory in /etc/apache2/apache2.conf .

The default Ubuntu document root is /var/www/html . You can make your own virtual hosts under /var/www. This is different to previous releases which provides better security out of the box.

Reporting Problems

Please use the ubuntu-bug tool to report bugs in the Apache2 package with Ubuntu. However, check before reporting a new bug.

Please report bugs specific to modules (such as PHP and others) to respective packages, not to the web server itself.

Для систематизирования информации по настройке сети в ОС Linux было решено написать эту заметку. Здесь в доступной форме описан процесс настройки сетевого интерфейса на примере ОС Ubuntu. Также данное руководство поможет «поднять» локальную сеть и на любом другом дистрибутиве Linux.

Для просмотра текущих параметров сети и состояния сетевых интерфейсов в ОС Линукс существует команда:

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

eth0 Link encap:Ethernet HWaddr 00:11:5b:91:25:3e

inet addr:192.168.1.18 Bcast:192.168.255.255 Mask:255.255.0.0
inet6 addr: fe80::211:5bff:fe91:253e/64 Диапазон:Ссылка
ВВЕРХ BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:648009 errors:0 dropped:0 overruns:0 frame:0
TX packets:1075413 errors:0 dropped:0 overruns:0 carrier:0
коллизии:0 txqueuelen:1000
RX bytes:70177943 (70.1 MB) TX bytes:1536487024 (1.5 GB)
Прервано:19 Base address:0xd000

lo Link encap:Локальная петля (Loopback)

inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Диапазон:Узел
ВВЕРХ LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:106 errors:0 dropped:0 overruns:0 frame:0
TX packets:106 errors:0 dropped:0 overruns:0 carrier:0
коллизии:0 txqueuelen:0
RX bytes:13776 (13.7 KB) TX bytes:13776 (13.7 KB)

Для просмотра абсолютно всех сетевых интерфейсов запускаем команду с ключом -a :

# sudo ifconfig -a

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

Интерфейс lo - это локальная петля, которая имеет IP-адрес 127.0.0.1 и предназначена для сетевого доступа к своему же компьютеру. Далее этот интерфейс рассматриваться не будет, так как для эффективной работы не требует дополнительной настройки.

Интерфейс eth0 - это Ethernet сетевая карта, которая имеет сетевые параметры: IP-адрес - 192.168.1.18 , маску сети - 255.255.0.0 и MAC-адрес - 00:11:5b:91:25:3e . Значение RUNNING показывает, что в данный момент сетевой интерфейс eth0 работает.

Для просмотра типа соединения, скорости и поддерживаемых параметров сетевым интерфейсом eth0 набираем команду:

# sudo ethtool eth0

Вывод:

Supported ports: [ TP MII ]
Supported link modes:10baseT/Half 10baseT/Full

100baseT/Half 100baseT/Full

Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full

100baseT/Half 100baseT/Full

Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pg
Wake-on: d
Current message level: 0x000000c5 (197)
Link detected: yes

Из вывода видно, что сетевой интерфейс eth0 работает на скорости 100Мб/с с включенным полным дуплексом (Full Duplex). Полный дуплекс от полудуплекса (Half Duplex) отличается тем, что первый обеспечивает передачу данных в обе стороны одновременно, а второй осуществляет передачу входящих и исходящих данных поочередно.

2. Как остановить/запустить или перезагрузить сетевой интерфейс?

Для остановки сетевого интерфейса eth0 существует команда:

# sudo ifconfig eth0 down

Команду легко запомнить, так как после названия самой команды идет имя интерфейса и после действие, которое нужно произвести над ним (down или up).

Для возобновления работы сетевого интерфейса eth0:

# sudo ifconfig eth0 up

Чтобы перезапустить все сетевые интерфейсы ОС вводим команду:

# sudo /etc/init.d/networking restart

Эта строка запускает bash-скрипт networking, перезапускающий сетевые интерфейсы системы.

Так же по аналогии производится остановка всех интерфейсов:

# sudo /etc/init.d/networking stop

И их запуск:

# sudo /etc/init.d/networking start

3. Как изменить сетевые настройки?

Чтобы изменить сетевые настройки в ОС Linux можно пойти двумя путями:
  1. использовать команды для присвоения параметров сетевых интерфейсов;
  2. отредактировать конфигурационный файл, содержащий параметры сетевых интерфейсов.

Настроить сеть можно одним из вышеприведенных способов. Эти два способа абсолютно взаимозаменяемые. Кому как привычнее.

  1. Настройка сети с помощью команд.

    Чтобы настроить сетевой интерфейс, не влезая в дебри конфигурационного файла, нужно воспользоваться специальными командами.

    Чтобы задать основной IP-адрес и маску сети для интерфейса eth0:

    # sudo ifconfig eth0 192.168.0.1 netmask 255.255.255.0

    Для присвоения дополнительного IP-адреса интерфейсу eth0:

    # sudo ifconfig eth0:0 10.10.0.1 netmask 255.255.255.0

  2. Настройка сети с помощью редактирования конфигурационного файла.

    Редактировать будем конфигурационный файл /etc/network/interfaces . Чтобы вывести на экран содержимое конфига, набираем команду:

    # sudo nano /etc/network/interfaces

    Если локальная сеть, к которой подключаемся, подразумевает ручную настройку IP-адреса, то содержимое конфигурационного файла должно выглядеть примерно так:

    iface lo inet loopback

    auto eth0
    iface eth0 inet static
    address 192.168.1.18
    netmask 255.255.0.0
    gateway 192.168.1.253

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

    Строка auto eth0 говорит, что сетевой интерфейс eth0 должен стартовать при загрузке ОС.

    Вторая строка iface eth0 inet static говорит, что сетевому интерфейсу eth0 IP-адрес задается вручную.

    Строка address 192.168.1.18 говорит, что сетевому интерфейсу eth0 назначен IP-адрес 192.168.1.18 (этот сетевой адрес взят для примера и на его месте может быть любой другой).

    Строка netmask 255.255.0.0 говорит, что маска сети является 255.255.0.0.

    Последняя строчка gateway 192.168.1.253 показывает, что сетевым шлюзом является компьютер с IP-адресом 192.168.1.253. Эта строка может отсутствовать, так как ее наличие в конфигурационном файле зависит от параметров локальной сети, к которой подключается настраиваемый компьютер.

    Если в подключаемой локальной сети используется автоматическая раздача сетевых настроек DHCP-сервером, то конфигурационный файл /etc/network/interfaces должен быть приведен к виду:

    iface lo inet loopback

    auto eth0
    iface eth0 inet dhcp

4. Дополнительные сетевые настройки: DNS-сервера, MAC-адреса и скорость сетевого интерфейса.

Настройка DNS-сервера.

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

Для этого нужно открыть конфигурационный файл командой:

# sudo nano /etc/resolv.conf

Вывод:

# Generated by NetworkManager
nameserver 192.168.1.253

Строка nameserver 192.168.1.253 говорит, что в качестве DNS-сервера используется компьютер с IP-адресом 192.168.1.253.

Смена MAC-адреса сетевой карты.

Чтобы временно поменять MAC-адрес сетевой карты eth0 нужно воспользоваться командой:

# sudo ifconfig eth0 hw ether 00:01:02:03:04:05

Последнее число - это новый MAC-адрес.

Для смена MAC-адреса навсегда нужно в конфигурационном файле /etc/network/interfaces к настройкам сетевого интерфейса добавить строку с новым MAC-адресом:

iface eth0 inet dhcp

pre-up ifconfig eth0 hw ether 00:01:02:03:04:05

Смены скорости сетевого интерфейса.

Для строгого задания скорости сетевой карты:

# sudo ethtool -s eth0 speed 100 duplex full autoneg off

# Принудительно задать скорость сетевому интерфейсу 100Mbit и режим Full Duplex и отключить автоматическое определение

# sudo ethtool -s eth0 speed 10 duplex half autoneg off

# Принудительно задать скорость сетевому интерфейсу 10Mbit и режим Half Duplex и отключить автоматическое определение

Случайные 7 статей:

Комментарии

  1. sergo
    1 Ноябрь, 23:27

    огромное спасибо за статью! в линукс недавно, оч помогло, не подскажете, если сетевых в компьютере две, у одной сетевой dns-server 192.168.0.9, а у другой например 192.168.1.9, корректно будет в одном файле resolv.conf написать
    nameserver 192.168.0.9
    nameserver 192.168.1.9
    Поймут сетевухи кому какой dns?
    И можно ли в линукс назначить сетевой карточке какое-то имя, например eth0 это loc, а eth1 это prov?

  2. Mut@NT
    2 Ноябрь, 00:07

    1. DNS можно указать оба, но сетевым следует указать маски сети 255.255.255.0. Тогда они будут ходить по своим DNS `ам.

    2. Про названия сетевых не знаю. Думаю, что можно, это же Linux!!

  3. sergo
    2 Ноябрь, 03:44

    выключаем интерфейс
    ifconfig eth0 down
    даем команду
    ifrename -i eth0 -n новое_имя (например local)
    ifconfig local up
    потом в вашем линуксе наверно надо будет в файле /etc/network/interfaces некоторые eth0 поменять на local, у меня просто альт, и этого файла вообще нет, у меня /etc/net/ifaces/папки_с_интерфейсами, и вот у меня надо папку eth0 переименовать в local, ну и потом
    service network restart:)

  4. Mut@NT
    2 Ноябрь, 08:45

    Нужно будет добавить в статью, спасибо))

  5. gpns
    14 Май, 17:36

    Думаю стоит попровить строку: sudo ifconfig eth0:0 10.10.0.1 netmask 255.255.255.0
    у алиаса не может быть маски /24 (255.255.255.0), это не ошибка, т.к. в любом случае интерфейсу eth0:0 будет присвоена маска /32 (255.255.255.255)
    В вашем случае будет: sudo ifconfig eth0:0 10.10.0.1/32

  6. Mut@NT
    16 Май, 12:02

    gpns: Думаю стоит попровить строку: sudo ifconfig eth0:0 10.10.0.1 netmask 255.255.255.0 у алиаса не может быть маски /24 (255.255.255.0), это не ошибка, т.к. в любом случае интерфейсу eth0:0 будет присвоена маска /32 (255.255.255.255) В вашем случае будет: sudo ifconfig eth0:0 10.10.0.1/32

    Черт, Вы перевернули все мое сознание. Придется переделывать настройки сетевого интерфейса на компьютере, которые работали уже почти 2 года.
    Почему тогда командой ifconfig показывается та маска, которую я установил?

  7. GydruS
    13 Сентябрь, 23:32

    Простым языком! Ясно и понятно! Огромное спасибо!
    P.S. Только в листингах ввода команд хорошо бы шрифт сделать такой, где 0 от О визуально отличается.

  8. Mut@NT
    14 Сентябрь, 18:34

    GydruS: P.S. Только в листингах ввода команд хорошо бы шрифт сделать такой, где 0 от О визуально отличается.

    Спасибо, приму к сведенью. Хотя вроде отличие есть, в точке)

  9. andrey
    18 Сентябрь, 23:50

    спасибо за ваш сайт. мне нравится! все доходчиво и понятно
    у меня к вам такой вопрос. если можно подскажите пожалуйста как настроить сеть чтобы работала локалка и DSL соединение одновременно.
    не могу понять как это сделать???!!

  10. Mut@NT
    20 Сентябрь, 07:18

    andrey: спасибо за ваш сайт. мне нравится! все доходчиво и понятно у меня к вам такой вопрос. если можно подскажите пожалуйста как настроить сеть чтобы работала локалка и DSL соединение одновременно.

    Если честно давно не сталкивался с DSL -соединениями. Расскажите по потробнее:
    1. Какая локальная сеть? За модемом или на другой сетевой?

  11. andrey
    20 Сентябрь, 18:38

    соединение самое обычное – городская сеть
    компьютер подключен через сетевую карту
    выход в интернет подключается через соединение DSL

  12. Mut@NT
    21 Сентябрь, 17:22

    andrey: соединение самое обычное – городская сеть компьютер подключен через сетевую карту выход в интернет подключается через соединение DSL

    По-моему Вам нужно настраивать сам модем. Посмотрите в сторону Dual PPPOE
    Я что-то подобное делал на роутере D-Link DIR -320, но на модеме не разу.

  13. andrey
    21 Сентябрь, 18:22

    спасибо!!! буду искать!

  14. Serpent22
    3 Ноябрь, 06:21

    К словам о DSL через локальную сеть: очень много парился, перерыл кучу манов (у меня Debian Lenny) и чтобы избавить других людей от тех же граблей скажу – pppoeconf помогает не всем, у меня например, инет появлялся на пару секунд и пропадал чудным образом. Конфиги, логи не помогли. Но спустя две недели и нару клочьев вырванных волос, наткнулся на простенькую команду ifconfig ppp0 mtu 1372. Надеюсь комуто это поможет. Выговорился, аж легче стало)))

  15. nick
    7 Декабрь, 09:17

    Добрый день,у меня в папке etc нет ни папки network,ни папки net,стоит centos 5.7,что делать подскажите

  16. Марина
    27 Декабрь, 21:12

    Здравствуйте, такая проблема случилась. К интернету комп подключен через роутер.. Проблема в том, что некоторые сайты не открываются- пишет ошибка преобразования dns .. Что нужно сделать. чтобы все нормально работало?? Заранее спасибо!!

  17. papick
    30 Июль, 17:05

    Артем: 2 сетевые карты. по одной виндовая сеть с доменом. во второй воткнут адсл модем с подключением PPPoE. как сделать так, чтоб и в сети работать можно было и в инете?!

    например прописать правила маршрутизации на машине таким образом чтобы пакеты предназначенные для локальной сети отправлялись в етн0 , а все остальные в етн1
    но эта тема выходит за рамки данной статьи.

  18. Комполюбитель
    29 Август, 03:01

    Вполне годная статья. Спасибо огромное

  19. valera
    21 Январь, 07:20

    я всего 3-й мес на linux но уже штук 17 перепробовал но никто не хочет dsl подкл\сразу обрывает локалку\ оставил zorin и вот поставил ALT -работаю как домашние а для сети ХРюша\7 -снес как и все остальные\.если-бы сеть на ALT то до конца жизни… я всего лет 7 как освоил комп – стар ужо.

В Linux существует множество инструментов для мониторинга сетевой активности. Но большинство из них позволяют контролировать только сетевой трафик от вашего компьютера или конкретного интерфейса. Бывают случаи когда нужно понять какая программа наиболее активно использует сетевое соединение, например если у вы со своим медленным интернетом хотите спокойно посмотреть любимые сайты, а тут какая-то программа начинает что-то качать при чем какая не понятно. Вот для таких случаев есть инструмент NetHogs.

В этой статье мы обсудим установку, настройку и особенности работы с NetHogs.

Как сказано на man странице утилиты, NetHogs - небольшой сетевой монитор. Программа группирует сетевую активность не по протоколу или сети, а по группам процессов.

Если вдруг что-то начинает активно использовать интернет соединение, можно просто запустить NetHogs и вы сразу увидите PID виновника. Так как работа утилиты основана на подсистеме proc, на данный момент есть версия только для Linux.

Пользователи Debian подобных систем, в том числе и Ubuntu могут установить утилиту с помощью следующей команды:

sudo apt-get install nethogs

Если вы используете другой дистрибутив, посмотрите детали установки на официальном сайте NetHogs. Для работы утилиты необходимы библиотеки pcap и ncurses, убедитесь что пакеты libncurses5-dev и libpcap0.8-dev установлены.

Кто же использует сеть

NetHogs очень просто использовать. Просто выполните команду nethogs в терминале без каких либо параметров и утилита отобразит сетевую активность для каждого процесса.

Как вы видите программа показывает такие детали как PID, пользователя, сетевой интерфейс, количество данных и скорость передачи или приема.

Обновление данных

По умолчанию NetHogs обновляет информацию каждую секунду, но вы можете использовать опцию -d для указания интервала обновления. Например для обновления каждые три секунды наберите:

sudo nethogs -d 3

Указываем сетевой интерфейс

Вы можете указать NetHogs с каким сетевым интерфейсом работать, просто набрав имя интерфейса в командной строке. Например для мониторинга трафика на eth1 используйте:

sudo nethogs eth1

Можно использовать опцию -p для перехвата трафика в неразборчивом режиме (так называемый monitor mode), но это не рекомендуется.

Горячие клавиши

В утилите предусмотрены горячие клавиши с помощью которых можно контролировать способ представления. Например нажмите M во время выполнения программы чтобы поменять формат представления приема или передачи данных. Возможны варианты в kb/s, kb, b mb.

Например, отображение в мегабайтах:

Также вы можете нажать R или S для сортировки по количеству принятых или переданных данных. И как всегда Q для выхода из программы.

Выводы

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

Вы использовали раньше NetHogs или другой подобный инструмент? Поделитесь своими мыслями в комментариях.

Похожие записи:


Современный компьютер предоставляет пользователю много возможностей, без доброй половины которых он мог бы запросто обойтись. В сети по сей день идут дебаты о том, нужны ли ему 3D-графика и высококачественный звук. Однако есть одна функция, необходимость которой не оспаривается ни кем, — это выход в сеть.

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

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

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

Команда ifconfig

Как правило, подключение драйверов сетевых адаптеров происходит при установке системы. Чтобы убедиться в этом, достаточно в консоли набрать ifconfig -a. Кстати, данное название вовсе не является исковерканным имени команды ipconfig, знакомой пользователям Windows. Это просто сокращение от Interface Configuration.

В ответ пользователь получит информацию о характеристиках Ethernet-соединения и о параметрах так называемого кольцевого интерфейса. Первый обозначается как eth0 (если сетевых адаптеров несколько, то для каждого будет своя секция eth[порядковый номер]), а второй - как lo.

Эту же команду можно использовать для активации интерфейса. Чаще всего она выглядит так:

ifconfig [обозначение интерфейса] netmask [маска сети] broadcast [широковещательный адрес] up.

Впрочем, на практике все параметры можно и не указывать. Например, если маска сети и широковещательный адрес не задаются явно, то система применит стандартные значения (сетевой адрес с машинной частью 255 и маской 255.255.255.0).

Для активации PLIP, SLIP и РРР необходимо использовать опцию pointopoint. При этом интерфейсы будут именоваться так:

Plip[порядковый номер начиная с нуля] - для PLIP;

– slip[порядковый номер начиная с нуля] - для SLIP;

– ppp[порядковый номер начиная с нуля] - для PPP.

Например, для того чтобы сконфигурировать интерфейс PLIP, соединяющий два компьютера с адресами [адрес1] и [адрес2], следует в консоли набрать:

ifconfig plip0 [адрес1] pointopoint [адрес2].

Отключение интерфейса производится командой ifconfig [обозначение интерфейса] down. Таким образом, используя всего одну команду, вы можете управлять сетевым устройством. И разумеется, держать в памяти все ее опции нет никакого смысла - если что-то забыли, то man ifconfig всегда придет на помощь.

Команда route

Команда route отвечает за маршрутизацию. То есть она указывает системе, на какой сетевой компьютер должны передаваться пакеты, чтобы достичь пункта назначения.

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

– Destination - IP-адрес конечного пункта маршрута;

– Gateway - IP-адрес или имя шлюза (если его нет, то используется символ “*”);

– Genmask - маска сети маршрута;

– Flags - указатель типа или состояния маршрута (может принимать следующие значения: U - активный, Н - хост, С - шлюз, D - динамический, М - модифицированный);

– MSS - максимальное количество данных, предаваемых за один раз;

– Metric - число переходов до шлюза;

– Ref - количество обращений к маршруту на определённый момент времени;

Window - максимальное количество данных для принимающей стороны;

– Use - число пакетов, переданных по маршруту;

– Iface - тип интерфейса.

Чтобы добавить адрес в таблицу маршрутизации, надо использовать команду route с ключом add. При этом следует учесть, что если соответствующий интерфейс уже сконфигурирован при помощи ifconfig, то система сама может получить сведения о нем. В таком случае нет смысла в употреблении спецификаторов - достаточно указать адрес пункта назначения. Все остальные данные будут избыточными, а стало быть, и необязательными.

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

Для удаления маршрута используйте команду route del -net .

Другие команды

Если настройки интерфейса хранятся в системе, то для быстрой активации и деактивации можно использовать команды ifup и ifdown следующим образом:

– ifup [обозначение интерфейса] - для включения.

– ifdown [обозначение интерфейса] - для отключения.

Для вывода на экран списка сетевых подключений, таблиц маршрутизации, статистики интерфейсов и т. п. применяется команда netstat. Помимо всего прочего она позволяет отобразить статус соединения, что полезно при анализе системы на предмет её безопасности.

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

Конфигурационые файлы

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

Несмотря на то что их устройство не зависит от дистрибутива, располагаться они могут в разных местах. Например, в Debian за настройку интерфейсов и маршрутизации отвечает файл /etc/init.d/network, а в Slackware (MOPS, Zenwalk) - /etc/rc.d/rc.inet1. На этот счет можно дать только один универсальный совет: приступая к работе с тем или иным продуктом, обязательно ознакомьтесь с технической документацией.

В качестве примера рассмотрим дистрибутив ASPLinux. Для хранения настроек сетевых интерфейсов там используется каталог /etc/sysconfig/network-scripts/. Каждый из них определяется файлом ifcfg-[обозначение интерфейса].

Этот файл состоит из строк вида: [параметр]=[значение]. Параметры могут быть следующие:

– NAME - произвольное название соединения;

– DEVICE - обозначение интерфейса;

– IPADDR - IP-адрес интерфейса;

– NETMASK - маска сети;

– GATEWAY - IP-адрес шлюза;

– ONBOOT - указатель на необходимость активации во время загрузки;

– USERCTL - указывает на то, что активировать интерфейс может обычный пользователь;

– MTU - значение MTU (максимальный размер пакета, передаваемого через интерфейс);

– PEERDNS - указывает на необходимость использования серверов DNS, полученных при активации интерфейса;

– DNS1, DNS2 - IP-адреса первичного и вторичного серверов DNS;

– BOOTPROTO - указатель режима настройки интерфейса (none - при помощи пользовательских параметров, boottp или dhcp - при помощи соответствующих протоколов).

За настройку DNS отвечают файлы /etc/host.conf и /etc/resolv.conf. Первый из них - это обычный текстовый файл, в котором задаются правила работы подсистемы поиска имен и адресов узлов. Его устройство типично для всех объектов такого типа - в каждой строке содержится параметр и его значения (их может быть несколько).

Параметр order задает метод поиска IP-адреса узла. Он может принимать следующие значения: bind (использовать сервер DNS), hosts (использовать локальную базу адресов), nis (использовать сервер NIS). Они должны располагаться в том порядке, в котором будет осуществляться поиск.

Для описания исключений предназначен параметр trim. В соответствующей строке задается домен, который будет автоматически удаляться из имени.

Параметр reorder может принимать значения on/off. Он отвечает за включение режима работы, при котором локальные адреса получают приоритет перед всеми найденными. Spoofalert включает режим записи в системный журнал результатов проверки ложных имен. А multi позволяет настроить метод обработки локальной базы узлов. Разумеется, все параметры указывать не обязательно. На практике часто встречаются файлы /etc/host.conf, состоящие из двух строк.

Файл /etc/resolv.conf описывает некоторые параметры, которые используются подсистемой поиска имен. Он может состоять из следующих строк:

– nameserver - адреса серверов DNS;

– domain - имя локального домена для поиска адресов в локальной сети;

– search - список доменов для поиска адресов.

Очевидно, что параметры domain и search не могут быть актуальными одновременно. Если система обнаружит это противоречие, то будет учитывать только последнюю запись.

А может ли Linux вообще не использовать сервер имен? Теоретически - да, хотя на практике описанный ниже способ применяется только в очень маленьких сетях, где другие методы не оправданны.

Способ заключается в использовании файла /etc/hosts. Он представляет собой список имен хостов и их IP-адресов, причем для одного адреса можно указывать несколько имен.

Графические средства настройки

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

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

Так, пользователи дистрибутива Linux XP Desktop настраивают VPN-соединение при помощи удобного инструмента с графическим интерфейсом, который устроен даже проще, чем аналогичное средство в Windows. Примерно то же самое предлагают потребителю ASPLinux, Mandriva и SuSE Linux.

В общем, Linux действительно создан для сети. И оценить это могут не только опытные пользователи, но и новички.