Сетевые команды в Linux


Сетевые команды в Убунту

В данной статье речь пойдет о нужных и полезных командах и программах для работы с сетью и сетевым оборудованием в Ubuntu Linux. Сетевые команды в Linux помогут идентифицировать оборудование, узнать mac-адрес, ip-адрес, «пропинговать» и просканировать сеть, и многое другое.

Утилита ping отправляет на указанный адрес(хост) ICMP-пакеты (echo-запросы). Если адрес ответит, то в итоге мы должны увидеть полученный ICMP-пакет.
Если “пропинговать” IP-адрес/хост, то можно будет определить, доступен в данный момент ресурс либо локальная машина или нет. А то очень часто бывает, что какой-нибудь сайт недоступен, и именно программа ping способна дать ответ, это проблемы с сайтом или с хостом. Если вы получаете ответы от хоста, а сайт все еще не виден в сети, значит возможно имеются технические неполадки с самим ресурсом.

Пример использования ping:

ping softhelp.org.ua

PING softhelp.org.ua (77.120.115.202) 56(84) bytes of data.
64 bytes from note.cityhost.com.ua (77.120.115.202): icmp_req=1 ttl=56 time=18.9 ms
64 bytes from note.cityhost.com.ua (77.120.115.202): icmp_req=2 ttl=56 time=13.7 ms
64 bytes from note.cityhost.com.ua (77.120.115.202): icmp_req=3 ttl=56 time=13.7 ms

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

Выполните любую из перечисленных команд в Терминале:

ping localhost
ping 0
ping 127.0.0.1

Должны получить примерно такой ответ:

ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_req=1 ttl=64 time=0.058 ms
64 bytes from 127.0.0.1: icmp_req=2 ttl=64 time=0.042 ms
64 bytes from 127.0.0.1: icmp_req=3 ttl=64 time=0.040 ms

Это говорит о том, что ваш локальный интерфейс в порядке.

Команда ifconfig выдает информацию про все сетевые устройства вашего компьютера, MAC-адреса, IP-адрес, сетевую маску и т.д.

Пример использования:

ifconfig

Должны получить следующий вывод команды:

eth1 Link encap:Ethernet HWaddr 54:e6:fc:85:7f:76
inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::56e6:fcff:fe85:7f76/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:641465 errors:0 dropped:0 overruns:0 frame:0
TX packets:422626 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:847453562 (847.4 MB) TX bytes:88428495 (88.4 MB)

eth2 Link encap:Ethernet HWaddr 10:bf:48:7e:3a:12
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

lo Link encap:Локальная петля (Loopback)
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:620804 errors:0 dropped:0 overruns:0 frame:0
TX packets:620804 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:121117187 (121.1 MB) TX bytes:121117187 (121.1 MB)

В данном примере мы видим, что в нашем компьютере подключены две сетевые платы (eth1 и eth2) и имеется один локальный хост — lo (127.0.0.1)

Информацию про сетевое оборудование также можно узнать, выполнив команду в Терминале:

sudo lshw -C network

Должны получить такой результат:



sudo lshw -C network
[sudo] password for dm:
*-network
описание: Ethernet interface
продукт: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
производитель: Realtek Semiconductor Co., Ltd.
физический ID: 0
сведения о шине: pci@0000:02:00.0
логическое имя: eth2
версия: 06
серийный №: 10:bf:48:7e:3a:12
размер: 10Mbit/s
capacity: 1Gbit/s
разрядность: 64 bits
частота: 33MHz
возможности: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
кофигурация: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=half firmware=rtl8168e-3_0.0.4 03/27/12 latency=0 link=no multicast=yes port=MII speed=10Mbit/s
ресурсы: IRQ:86 ioport:d000(размер=256) память:d2104000-d2104fff память:d2100000-d2103fff
*-network
описание: Ethernet interface
продукт: RTL-8139/8139C/8139C+
производитель: Realtek Semiconductor Co., Ltd.
физический ID: 5
сведения о шине: pci@0000:07:05.0
логическое имя: eth1
версия: 10
серийный №: 54:e6:fc:85:7f:76
размер: 100Mbit/s
capacity: 100Mbit/s
разрядность: 32 bits
частота: 33MHz
возможности: pm bus_master cap_list rom ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
кофигурация: autonegotiation=on broadcast=yes driver=8139too driverversion=0.9.28 duplex=full ip=192.168.1.100 latency=32 link=yes maxlatency=64 mingnt=32 multicast=yes port=MII speed=100Mbit/s
ресурсы: IRQ:20 ioport:a000(размер=256) память:fe121000-fe1210ff память:fe100000-fe11ffff

Утилита traceroute будет весьма полезна для диагностики сети. Программа покажет все хосты, через которые проходит пакет от начальной точки до пункта назначения. При помощи traceroute вы сможете увидеть количество “хопов” (hops) между вашим компьютером и указанным ресурсом.
Установим утилиту командой:

sudo apt-get install traceroute

Пример использования:

traceroute softhelp.org.ua

traceroute to softhelp.org.ua (77.120.115.202), 30 hops max, 60 byte packets
1 192.168.1.1 (192.168.1.1) 0.287 ms 0.280 ms 0.307 ms
2 * * *
3 149.6.190.6 (149.6.190.6) 13.618 ms 13.619 ms 13.623 ms
4 te38.agg-1.g50.kiev.volia.net (82.144.192.177) 13.881 ms 14.023 ms 14.117 ms
5 be1-40g.cr-1.g50.kiev.volia.net (77.120.1.9) 14.649 ms 14.915 ms 14.916 ms
6 be2.208.cr-1.f17.kiev.volia.net (77.120.1.137) 14.068 ms 13.774 ms 13.756 ms
7 te4-2.ares.dc.volia.com (82.144.193.1) 183.156 ms 203.912 ms v252.ares.dc.volia.com (82.144.193.9) 203.812 ms
8 v502.stack14.dc.volia.com (77.120.112.72) 15.311 ms 15.249 ms 15.253 ms
9 note.cityhost.com.ua (77.120.115.202) 14.945 ms 14.952 ms 14.940 ms

MAC-адрес сетевой карты можно узнать, используя команду IP. Команда будет иметь следующий вид:

ip link show dev eth1

Результат будет примерно таким:

ip link show dev eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 54:e6:fc:85:7f:76 brd ff:ff:ff:ff:ff:ff

а если выполнить команду:

ip link show

то будет выведен отчет по всем сетевым картам, подключенным к компьютеру.

Чтобы исследовать сетевую активность, можно использовать программу tcpdump. Если она не установлена, то установите ее командой в Терминале:

sudo apt-get install tcpdump

Запустить сканирование сети, которая подключена к вашей сетевой карте eth1, можно командой:

sudo tcpdump -i eth1

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

sudo tcpdump -w test -i eth1

Ключ -w позволит сохранить нужную информацию в файл, который в нашем примере будет иметь имя test. Он появится в вашей Домашней папке. Чтобы изучить этот файл, нужно установить программу Wireshark.

sudo apt-get install wireshark

Запустим программу Wireshark и «скормим» ей файл test (File — Open — указываем файл test). В итоге перед нами появятся много всяких строк с числами и пояснениями на английском. В моем примере мы видим часто встречающиеся адреса 109.68.46.114, 91.194.251.92 и т.д.

 

Wireshark

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

host 109.68.46.114

host 91.194.251.92

Внизу вы видите выводы команды host:

114.46.68.109.in-addr.arpa domain name pointer mail.tvi.com.ua.
92.251.194.91.in-addr.arpa domain name pointer music.myradio.ua.

Из этого примера видно, что виновниками большой активности были ресурсы: tvi.com.ua. (онлайн ТВ-канал) и music.myradio.ua. (интернет-радио). А если подставить в команду реальный адрес ресурса, то мы узнаем его IP-адрес.

host www.it-talk.ru

www.it-talk.ru has address 77.222.40.75

Есть еще одна полезная утилита, которая поможет вам найти программы, использующие сетевой трафик. Имя ей — NetHogs. Установите программу командой в Терминале:

sudo apt-get install nethogs

Чтобы запустить nethogs нужно знать, через какую сетевую плату или устройство подключена сеть или интернет. В моем случае нужно было указать программе, что сетевой кабель подключен к сетевой плате eth1. Команда запуска была такой:

sudo nethogs eth1

В вашем случае, вместо eth1, может быть: eth0,  lo, ppp,  tr, sl и т.д. Но как правило, обычная, стандартная сетевая плата в Линуксе, обозначается именно как eth.

Еще несколько нужных команд:

sudo netstat -p --inet
Команда покажет активные соединения

sudo netstat -lp --inet
Команда покажет прослушиваемые порты в системе, а также кто их слушает

 


Сетевые команды в Linux: 9 комментариев

  1. Я б ещё добавил в список nethogs показывает программы использующие сеть. Запускается с правами root.

  2. две сетевухи вторая не работает вывод команды ifconfig -a её не определяет а на выводе:
    misha ~ $ sudo lshw -C network
    sudo: unable to resolve host sl-900
    *-network UNCLAIMED
    описание: Ethernet controller
    продукт: D-Link System Inc
    производитель: D-Link System Inc
    физический ID: 1
    сведения о шине: pci@0000:04:01.0
    версия: 10
    разрядность: 32 bits
    частота: 33MHz
    возможности: pm bus_master cap_list
    кофигурация: latency=32 maxlatency=64 mingnt=32
    ресурсы: ioport:d000(размер=256) память:fb300000-fb3000ff
    *-network
    описание: Ethernet interface
    продукт: AR8151 v2.0 Gigabit Ethernet
    производитель: Qualcomm Atheros
    физический ID: 0
    сведения о шине: pci@0000:05:00.0
    логическое имя: eth0
    версия: c0
    серийный №: bc:5f:f4:20:7c:3e
    размер: 100Mbit/s
    capacity: 1Gbit/s
    разрядность: 64 bits
    частота: 33MHz
    возможности: pm msi pciexpress vpd bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
    кофигурация: autonegotiation=on broadcast=yes driver=atl1c driverversion=1.0.1.1-NAPI duplex=full ip=10.0.2.6 latency=0 link=yes multicast=yes port=twisted pair speed=100Mbit/s
    ресурсы: IRQ:48 память:fb200000-fb23ffff ioport:c000(размер=128)
    видит обе но только на одной нет логического имени как быть потскажите пожалуйста опытные люди за ранее благодарен

      1. да всё правильно вы поняли две сетевые карты:

        d-link dfe-520tx
        AR8151 v2.0 Gigabit Ethernet

        КОТОРАЯ первая в списке не распознаётся
        системой версия ядра Linux 3.8.0-36-generic

        в злоOS windows работают обе

        как зделать чтоб в Linux Ubuntu 64-x работали тоже
        обе вывод кманд:

        ifconfig -a
        eth0 Link encap:Ethernet HWaddr bc:5f:f4:20:7c:3e
        inet addr:10.0.2.6 Bcast:10.0.2.255 Mask:255.255.255.0
        inet6 addr: fe80::be5f:f4ff:fe20:7c3e/64 Scope:Link
        UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
        RX packets:109817 errors:0 dropped:0 overruns:0 frame:0
        TX packets:65866 errors:0 dropped:0 overruns:0 carrier:1
        collisions:0 txqueuelen:1000
        RX bytes:146757717 (146.7 MB) TX bytes:5619009 (5.6 MB)

        lo Link encap:Локальная петля (Loopback)
        inet addr:127.0.0.1 Mask:255.0.0.0
        inet6 addr: ::1/128 Scope:Host
        UP LOOPBACK RUNNING MTU:65536 Metric:1
        RX packets:5190 errors:0 dropped:0 overruns:0 frame:0
        TX packets:5190 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:0
        RX bytes:1402753 (1.4 MB) TX bytes:1402753 (1.4 MB)

        eё нет

  3. Нашел решение проблемы проверил на своей Ubuntu1204 64 разрядной всё работает http://forum.ubuntu.ru/index.php?topic=222554.0
    программу ndiswrapper устанавливать как пишут не с родного репозитория а с ссылки (ссылка на сайте автора есть)
    после команды ndiswrapper -i указывать полный путь к файлу NETDLKEC.inf
    Тем не менее здравое решение не засорять систему а купить свежую сетевуху с ней проблем не возникнет свежие дрова и модули в системе регулярно обновляются.
    Вам спасибо за то что не оставили без внимания, ваша тема очень актуальная для себя многое почерпнул.

  4. Вот бл… что я так долго искал: sudo lshw -C network!! Спасибо огромное за статью! Привет от калорадов)))

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *