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

  • 25.01.2022

Современный компьютер предоставляет пользователю много возможностей, без доброй половины которых он мог бы запросто обойтись. В сети по сей день идут дебаты о том, нужны ли ему 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 действительно создан для сети. И оценить это могут не только опытные пользователи, но и новички.

Для систематизирования информации по настройке сети в ОС 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 как освоил комп – стар ужо.

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 существует множество инструментов для мониторинга сетевой активности. Но большинство из них позволяют контролировать только сетевой трафик от вашего компьютера или конкретного интерфейса. Бывают случаи когда нужно понять какая программа наиболее активно использует сетевое соединение, например если у вы со своим медленным интернетом хотите спокойно посмотреть любимые сайты, а тут какая-то программа начинает что-то качать при чем какая не понятно. Вот для таких случаев есть инструмент 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 или другой подобный инструмент? Поделитесь своими мыслями в комментариях.

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


Linux

# ethtool eth0 # Показать Ethernet статус # ethtool -s eth0 speed 100 duplex full # Принудительная установка режима 100Mbit Full duplex # ethtool -s eth0 autoneg off # Отключить автоопределение # ethtool -p eth1 # Мигать индикатором сетевой карты - если поддерживается # ip link show # Список сетевых интерфейсов в Linux (подобна ifconfig ) # ip link set eth0 up # Активировать сетевой интерфейс (или отключить). Аналог "ifconfig eth0 up " # ip addr show # Список всех IP адресов в Linux (аналог ifconfig ) # ip neigh show # Тоже что и arp -a

Другие операционный системы

# ifconfig fxp0 # Проверить поле "media " во # arp -a # Показать таблицу маршрутизации сети, роутера (или хоста) (все OS) # ping cb.vu # Пинговать хост # traceroute cb.vu # Печатать путь маршрута до точки назначения # ifconfig fxp0 media 100baseTX mediaopt full-duplex # 100Mbit full duplex (FreeBSD) # netstat -s # Общесистемная статистика по всем сетевым протоколам Дополнительные инструменты для отладки сети, которые не всегда установлены по умолчанию, но найти их не трудно: # arping 192.168.16.254 # Пропинговать на уровне ethernet # tcptraceroute -f 5 cb.vu # Использует tcp вместо icmp что-бы отслеживать маршрут через фаервол

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

Печать таблицы маршрутизации

# route -n # Linux или используйте "ip route " # netstat -rn # Linux, BSD и UNIX # route print # Windows

Добавление и удаление маршрута

FreeBSD
# route add 212.117.0.0/16 192.168.1.1 # route delete 212.117.0.0/16 # route add default 192.168.1.1 Добавить постоянный маршрут сети в /etc/rc.conf
static_routes="myroute" route_myroute="-net 212.117.0.0/16 192.168.1.1"
Linux
# route add -net 192.168.20.0 netmask 255.255.255.0 gw 192.168.16.254 # ip route add 192.168.20.0/24 via 192.168.16.254 # Как и выше с ip маршрутом # route add -net 192.168.20.0 netmask 255.255.255.0 dev eth0 # route add default gw 192.168.51.254 # ip route add default via 192.168.51.254 dev eth0 # Как и выше с ip маршрутом # route delete -net 192.168.20.0 netmask 255.255.255.0
Solaris
# route add -net 192.168.20.0 -netmask 255.255.255.0 192.168.16.254 # route add default 192.168.51.254 1 # 1 = прыгнуть на следующий шлюз # route change default 192.168.50.254 1 Постоянные записи устанавливаются в /etc/defaultrouter .

Windows

# Route add 192.168.50.0 mask 255.255.255.0 192.168.51.253 # Route add 0.0.0.0 mask 0.0.0.0 192.168.51.254 Используйте "add -p " что-бы сделать маршрут постоянным.

Настройка дополнительных IP адресов

Linux

# ifconfig eth0 192.168.50.254 netmask 255.255.255.0 # Первый IP адрес # ifconfig eth0:0 192.168.51.254 netmask 255.255.255.0 # Второй IP адрес # ip addr add 192.168.50.254/24 dev eth0 # Эквивалентные команды для ip # ip addr add 192.168.51.254/24 dev eth0 label eth0:1

FreeBSD

# ifconfig fxp0 inet 192.168.50.254/24 # Основной IP адрес сетевого интерфейса # ifconfig fxp0 alias 192.168.51.254 netmask 255.255.255.0 # Добавить второй IP адрес в виде псевдонима # ifconfig fxp0 -alias 192.168.51.254 # Удалить псевдоним для второго IP адреса Постоянные записи в /etc/rc.conf
ifconfig_fxp0="inet 192.168.50.254 netmask 255.255.255.0" ifconfig_fxp0_alias0="192.168.51.254 netmask 255.255.255.0"

Solaris

Проверка настроек с ifconfig -a # ifconfig hme0 plumb # Установить сетевую карту # ifconfig hme0 192.168.50.254 netmask 255.255.255.0 up # Первый IP адрес # ifconfig hme0:1 192.168.51.254 netmask 255.255.255.0 up # Второй IP адрес

Смена MAC адреса

Для начала вы должны деактивировать сетевой интерфейс.. и не говорите никому для чего вы хотите сменить MAC...) # ifconfig eth0 down # ifconfig eth0 hw ether 00:01:02:03:04:05 # Linux # ifconfig fxp0 link 00:01:02:03:04:05 # FreeBSD # ifconfig hme0 ether 00:01:02:03:04:05 # Solaris # sudo ifconfig en0 ether 00:01:02:03:04:05 # Mac OS X Tiger # sudo ifconfig en0 lladdr 00:01:02:03:04:05 # Mac OS X Leopard Под Windows существует масса инструментов для смены MAC адреса, например etherchange или обратитесь у гуглу на тему "Mac Makeup", "smac".

Сетевые порты

Список открытых портов: # netstat -an | grep LISTEN # lsof -i # Ссписок всех интернет соединений Linux # socklist # Список открытых портов Linux # sockstat -4 # Список приложений слушающих на отррытых портах # netstat -anp --udp --tcp | grep LISTEN # Linux # netstat -tup # Список активных соединений входящие/исходящие Linux # netstat -tupl # Список слушающих портов Linux # netstat -ano # Windows

Фаерволы

Linux

# iptables -L -n -v # Статус Открыть iptables firewall # iptables -P INPUT ACCEPT # Установить политику по умолчанию лоя цепочки INPUT - "открыть все" # iptables -P FORWARD ACCEPT # что и строкой выше только для цепочки FORWARD # iptables -P OUTPUT ACCEPT # аналогично для цепочки OUTPUT # iptables -Z # Сбросить счетчики во всех цепочках # iptables -F # Сбросить все цепочки # iptables -X # Удалить все цепочки

FreeBSD

# ipfw show # Статус # ipfw list 65535 # Epyfnm тип фаервол, закрытый или открытый # sysctl net.inet.ip.fw.enable=0 # Отключить штатный фаервол IPFW # sysctl net.inet.ip.fw.enable=1 # Включить штатный фаервол IPFW

Форвардинг маршрутов

Linux

Проверить и если нужно, включить форвардинг маршрутов # cat /proc/sys/net/ipv4/ip_forward # Проверить включен или нет форвардинг, 0=off, 1=on # echo 1 > /proc/sys/net/ipv4/ip_forward или добавьте в /etc/sysctl.conf:

FreeBSD

Проверить состояние форвардинга и если нужно включить: # sysctl net.inet.ip.forwarding # Проверить включен форвардинг или нет, 0=off, 1=on # sysctl net.inet.ip.forwarding=1 # sysctl net.inet.ip.fastforwarding=1 # Для выделенного маршрута или фаервола Запись в /etc/rc.conf:
gateway_enable="YES" # Установите YES если данный хост является шлюзом

Solaris

# ndd -set /dev/ip ip_forwarding 1 # Включить форвардинг маршрутов 0=off, 1=on

Трансляция сетевых адресов NAT

Linux

# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # Включить NAT # iptables -t nat -A PREROUTING -p tcp -d 78.31.70.238 --dport 20022 -j DNAT \ --to 192.168.16.44:22 # Перебросить порт 20022 на внутренний IP порт ssh # iptables -t nat -A PREROUTING -p tcp -d 78.31.70.238 --dport 993:995 -j DNAT \ --to 192.168.16.254:993-995 # Переброс портов из диапазона 993-995 # ip route flush cache # iptables -L -t nat # Проверить статус таблицы NAT

FreeBSD

# natd -s -m -u -dynamic -f /etc/natd.conf -n fxp0 Или добавьте в /etc/rc.conf: firewall_enable="YES" # YES - Включить фаервол firewall_type="open" # Тип фаервола (см. /etc/rc.firewall ) natd_enable="YES" # Включить natd (если firewall_enable == YES ) natd_interface="tun0" # Сетевой интерфейс или IP адрес, который будет использовать natd natd_flags="-s -m -u -dynamic -f /etc/natd.conf" Для переброски портов: # cat /etc/natd.conf same_ports yes use_sockets yes unregistered_only # redirect_port tcp insideIP:2300-2399 3300-3399 # Диапазон портов redirect_port udp 192.168.51.103:7777 7777

DNS

В Unix, DNS записи действительны для всех интерфейсов и хранятся в /etc/resolv.conf . Зона к которой принадлежит хост, так-же хранится в этом файле. Минимальная конфигурация:
nameserver 78.31.70.238 search sleepyowl.net intern.lab domain sleepyowl.net
Проверить доменное имя: # hostname -d # Аналог dnsdomainname

Windows

В Windows, DNS настраивается для каждого интерфейса. Что-бы посмотреть текущую конфигурацию и сбросить DNS кэш, используйте: # ipconfig /? # Помощь по использованию команды # ipconfig /all # Посмотреть всю информацию, включая DNS

Очистка DNS кэша

Вы можете очистить DNS кэш, но помните, некоторые приложения используют свой, персональный кэш (например Фаерфокс), и на них обнуление не подействует. # /etc/init.d/nscd restart # Перезапустить nscd (демон кэширования имен) Linux/BSD/Solaris # lookupd -flushcache # OS X Tiger # dscacheutil -flushcache # OS X Leopard и более новые # ipconfig /flushdns # Windows

Пересылка DNS запросов

Dig , утилита для проверки настроек DNS. Например, используем для проверки публичный DNS сервер 213.133.105.2 ns.second-ns.de . Обратите внимание с какого сервера клиент получит ответ (упрощенный ответ). # dig sleepyowl.net sleepyowl.net. 600 IN A 78.31.70.238 ;; SERVER: 192.168.51.254#53(192.168.51.254) Маршрутизатор 192.168.51.254 , прислал в качестве ответа, запись типа А . Запись определенного типа для запроса и DNS сервер, могут быть указаны с символом @: # dig MX google.com # dig @127.0.0.1 NS sun.com # Проверить локальный dns сервер # dig @204.97.212.10 NS MX heise.de # Запрос к внешнему dns серверу # dig AXFR @ns1.xname.org cb.vu # Получить всю зону (пересылка зоны) с dns сервера Еще одна полезная утилита, host : # host -t MX cb.vu # Получить записть типа MX (Mail Exchange ) # host -t NS -T sun.com # Получить NS запись через TCP соединение # host -a sleepyowl.net # Получить все

Обратные запросы

Узнать имя по IP адресу можно с помощью таких утилит как dig , host или nslookup : # dig -x 78.31.70.238 # host 78.31.70.238 # nslookup 78.31.70.238

файл /etc/hosts

Отдельные хосты могут быть настроены в файле /etc/hosts , вместо запуска named , для разрешения имени в адрес. Формат следующий: 78.31.70.238 sleepyowl.net sleepyowl Приоритет между файлом hosts и DNS запросом, может быть сконфигурирован в /etc/nsswitch.conf И /etc/host.conf . Подобный файл присутствует и в Windows, и расположен как правило по адресу c:\windows\system32\drivers\etc

Протокол динамической адресации сети - DHCP

h4>Linux Некоторые дистрибутивы (SuSE ) используют в качестве клиента dhcpd . Интерфейс по-умолчанию eth0 . # dhcpcd -n eth0 # Обновить (не всегда работает) # dhcpcd -k eth0 # Освободить и выключить Lease (cрок аренды - это время, на которое IP адрес может быть выдан определенному хосту сети) и вся информация сохраняется в: /var/lib/dhcpcd/dhcpcd-eth0.info

FreeBSD

FreeBSD (и Debian) использует dhclient . Для настройки нужного сетевого интерфейса (например bge0 ): # dhclient bge0 Срок аренды и вся информация сохраняется в: /var/db/dhclient.leases.bge0 Используйте /etc/dhclient.conf для добавления опций или изменения существующих: # cat /etc/dhclient.conf interface "rl0" { prepend domain-name-servers 127.0.0.1; default domain-name "sleepyowl.net"; supersede domain-name "sleepyowl.net"; }

Windows

Dhcp аренда(lease) может быть обновлена с помощью ipconfig : # ipconfig /renew # Обновить все адаптеры # ipconfig /renew LAN # Обновить сетевой адаптер с именем "LAN" # ipconfig /release WLAN # Освободить сетевой адаптер с именем "WLAN" Неплохой идеей будет дать сетевым адаптерам более внятные имена

Анализ трафика

Анализ трафика с помощью tcpdump

# tcpdump -nl -i bge0 not port ssh and src \(192.168.16.121 or 192.168.16.54\) # tcpdump -n -i eth1 net 192.168.16.121 # Выборка входящий/исходящий по одному IP адресу # tcpdump -n -i eth1 net 192.168.16.0/24 # Выборка входящий/исходящий по адресу сети # tcpdump -l > dump && tail -f dump # Вывод через буфер # tcpdump -i rl0 -w traffic.rl0 # Писать заголовки пакетов в бинарный файл # tcpdump -i rl0 -s 0 -w traffic.rl0 # Писать в бинарник полные пакеты # tcpdump -r traffic.rl0 # Прочитать из файла (так-же для ethereal) для дальнейшего анализа # tcpdump port 80 # Классические команды # tcpdump host google.com # tcpdump -i eth0 -X port \(110 or 143\) # Проверить защищенность pop или imap # tcpdump -n -i eth0 icmp # Выборка icmp (ping ) пакетов # tcpdump -i eth0 -s 0 -A port 80 | grep GET # -s 0 для полных пакетов, -A для ASCII Некоторые важные опции:
  • -A - Печатать текст из пакетов (без заголовков)
  • -X - Печатать пакеты в hex и ASCII
  • -l - Включить буферизацию вывода
  • -D - Показать все активные сетевые интерфейсы
В операционных системах Windows для анализа трафика можно воспользоваться windump с www.winpcap.org . Windump -D выведет список интерфейсов.

Сканирование сети с помощью программы nmap

Nmap , это многофункциональный сканер безопасности с возможностью определения установленной операционной системы. Работает во всех , так-же существует версия под Windows. Если вы не просканируете свои сервера, за вас это сделают доброжелатели.) # nmap cb.vu # Просканировать все зарезервированные порты хоста # nmap -sP 192.168.16.0/24 # Выяснить какой IP каким хостом используется в сети 0/24 # nmap -sS -sV -O cb.vu # Провести stealth SYN сканирование с определением типа и версии OS PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 3.8.1p1 FreeBSD-20060930 (protocol 2.0) 25/tcp open smtp Sendmail smtpd 8.13.6/8.13.6 80/tcp open http Apache httpd 2.0.59 ((FreeBSD) DAV/2 PHP/4. [...] Running: FreeBSD 5.X Uptime 33.120 days (since Fri Aug 31 11:41:04 2007) Другие полезные инструменты: hping , конструктор/анализатор IP пакетов, fping (fping.sourceforge.net), проверка хостов round-robin.

Контроль трафика (QoS)

Traffic control управляет очередностью, порядком, планированием и другими параметрами трафика в сети. Следующие примеры, небольшие практические приемы для Linux и FreeBSD позволяющие оптимизировать использование пропускной способности.

Ограничение загрузок(upload)

Linux
Для 512 Кбитного модема. # tc qdisc add dev eth0 root tbf rate 480kbit latency 50ms burst 1540 # tc -s qdisc ls dev eth0 # Статус # tc qdisc del dev eth0 root # Удалить очередь # tc qdisc change dev eth0 root tbf rate 220kbit latency 50ms burst 1540
FreeBSD
FreeBSD использует dummynet - шейпер трафика, встроенный в штатный фаервол операционной системы, IPFW или подгружаемый как модуль ядра FreeBSD. Pipes , так называемые трубы для трафика, ограничивают пропускную способность в {bit/s|Byte/s}, 0 означает безлимитный. Например, ограничим пропускную способность в 500 Кбит. # kldload dummynet # Загрузить модуль если необходимо # ipfw pipe 1 config bw 500Kbit/s # Создать трубу с ограничением трафика 500Кбит/с # ipfw add pipe 1 ip from me to any # Отклонять излишний трафик

QoS Quality of service

Linux

Приоритет очередей в tc для оптимизации VoIP трафика. Полные примеры можно посмотреть на voip-info.org или www.howtoforge.com . Следующий пример демонстрирует использование QoS для VoIP трафика. # tc qdisc add dev eth0 root handle 1: prio priomap 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 0 # tc qdisc add dev eth0 parent 1:1 handle 10: sfq # tc qdisc add dev eth0 parent 1:2 handle 20: sfq # tc qdisc add dev eth0 parent 1:3 handle 30: sfq # tc filter add dev eth0 protocol ip parent 1: prio 1 u32 \ match ip dport 10000 0x3C00 flowid 1:1 # Использовать диапазон портов match ip dst 123.23.0.1 flowid 1:1 # или/и использовать IP сервера Проверить состояние или удалить: # tc -s qdisc ls dev eth0 # Проверить состояние очереди # tc qdisc del dev eth0 root # Удалмть все очереди

FreeBSD

Максимальная пропускная способность соединения 500Кбит/с, мы назначаем 3 очереди с приоритетами 100:10:1 для VoIP:ssh:всего остального , соответственно. # ipfw pipe 1 config bw 500Kbit/s # ipfw queue 1 config pipe 1 weight 100 # ipfw queue 2 config pipe 1 weight 10 # ipfw queue 3 config pipe 1 weight 1 # ipfw add 10 queue 1 proto udp dst-port 10000-11024 # ipfw add 11 queue 1 proto udp dst-ip 123.23.0.1 # или/и используем IP # ipfw add 20 queue 2 dsp-port ssh # ipfw add 30 queue 3 from me to any # Все остальное Состояние и удаление: # ipfw list # Посмотреть состояние # ipfw pipe list # Состояние Pipes # ipfw flush # Очистить все правила кроме дефолтовых

NIS (Информационная служба сети)

Некоторые команды для конфигурирования NIS клиента: # ypwhich # Получитьимя имя подключенного NIS сервера # domainname # Доменное имя NIS # ypcat group # Показать группу из NIS # cd /var/yp && make # Пересобрать базу данных yp # rpcinfo -p servername # Отчет RPC служб сервера Ypbind запущен? # ps auxww | grep ypbind /usr/sbin/ypbind -s -m -S servername1,servername2 # FreeBSD /usr/sbin/ypbind # Linux # yppoll passwd.byname Map passwd.byname has order number 1190635041. Mon Sep 24 13:57:21 2007 The master server is servername.domain.net.

Linux

# cat /etc/yp.conf ypserver servername domain domain.net broad cast

Сетевая утилита netcat

(nc), известна так-же как "network Swiss Army Knife", предназначена для создания, чтения, записи TCP/IP соединений. Вот несколько полезных примеров, в сети их можно найти массу, например: или . Вместо netcat , можно использовать сокращение nc . Так-же можете посмотреть socat .

Передача файлов

Копирование большого файла через TCP соединение. Передача происходит очень быстро и не требует поднятия NFS, SMB, FTP и т.д... просто сделайте файл доступным на сервере и заберите его с клиента. В данном случае 192.168.1.1 , IP адрес сервера. server# tar -cf - -C VIDEO_TS . | nc -l -p 4444 # Заархивировать директорию и выставить архив на порт 4444 client# nc 192.168.1.1 4444 | tar xpf - -C VIDEO_TS # забрать файл с порта 4444 и разархивировать в дмректорию server# cat largefile | nc -l 5678 # Приготовить к отправке один файл client# nc 192.168.1.1 5678 > largefile # Забрать файл server# dd if=/dev/da0 | nc -l 4444 # Приготовить к отправке файл образа раздела client# nc 192.168.1.1 4444 | dd of=/dev/da0 # Забрать файл образа для создания дублеката раздела client# nc 192.168.1.1 4444 | dd of=da0.img # или забрать файл образа и сохранить как файл server# nc -l 5555 < ./test.file # Файл выставляется в сокет nc с адресом 192.168.1.1 , порт 5555 client# nc 192.168.1.1 5555 > ~/test.file # На другой машине, забираем файл, с 192.168.1.1 порт 5555

Другие трюки

Тут будьте осторожней, вы открываете доступ к своей системе.
Удаленный shell
Опция -e только для Windows версии или используйте nc 1.10 . # nc -lp 4444 -e /bin/bash # Предоставить удаленную оболочку # nc -lp 4444 -e cmd.exe # Удаленная оболочка в Windows
Аварийный Веб сервер
Обслуживать один файл на 80 порту в цикле. # while true; do nc -l -p 80 < unixtoolbox.xhtml; done
Простой TCP чат
Элис и Боб могут общаться через простой TCP сокет. Текст передается по нажатию Enter. alice # nc -lp 4444 bob # nc 192.168.1.1 4444