Команда netstat обладает набором ключей для отображения портов, находящихся в активном и/или пассивном состоянии. Таким образом, можно получить список всех серверных приложений, работающих на данном компьютере.
Информация выводится столбцами. В первом из них указан протокол, затем размеры очередей приема и передачи для установленного соединения на данной машине (на другом конце соединения размеры очередей могут быть другими), локальный и удаленный адреса и текущее состояние соединения.
st1@pds:~ > netstat -ta
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 2 pds.sut.ru:telnet gerasim.pds.sut.ru:1288 ESTABLISHED
tcp 1 0 pds.sut.ru:4550 pds.sut.ru:3128 CLOSE_WAIT
tcp 1 0 pds.sut.ru:4548 pds.sut.ru:3128 CLOSE_WAIT
tcp 0 0 gw.pds.sut.:netbios-ssn marya.pds.sut.ru:1027 ESTABLISHED
tcp 0 0 gw.pds.sut.:netbios-ssn yanko.pds.sut.ru:1104 ESTABLISHED
tcp 0 0 gw.pds.sut.:netbios-ssn mumu.pds.sut.ru:1065 ESTABLISHED
tcp 0 0 *:6000 *:* LISTEN
tcp 0 0 *:3128 *:* LISTEN
tcp 0 0 *:53333 *:* LISTEN
tcp 0 0 *:389 *:* LISTEN
tcp 0 0 localhost:1032 localhost:1033 ESTABLISHED
tcp 0 0 *:netbios-ssn *:* LISTEN
tcp 0 0 *:smtp *:* LISTEN
tcp 0 0 *:imap2 *:* LISTEN
tcp 0 0 *:pop3 *:* LISTEN
tcp 0 0 *:login *:* LISTEN
tcp 0 0 *:shell *:* LISTEN
tcp 0 0 *:8000 *:* LISTEN
tcp 0 0 *:telnet *:* LISTEN
tcp 0 0 *:ftp *:* LISTEN
tcp 0 0 *:time *:* LISTEN
tcp 0 0 *:www *:* LISTEN
tcp 0 0 *:2049 *:* LISTEN
tcp 0 0 *:832 *:* LISTEN
--More—
Как видно из примера, большинство серверов находится в режиме ожидания запроса на соединение (LISTEN). В первой строке отражено соединение (ESTABLISHED) через telnet с машиной gerasim.pds.sut.ru. Состояние CLOSE_WAIT означает, что соединение разорвано, но переключение в состояние LISTEN еще не произошло; TIME_WAIT – что соединение ожидает разрыва. Если соединение находится в состоянии SYN_SENT, то это означает наличие процесса, который пытается установит соединение с несуществующим сервером. Состояние соединения имеет значение только для протокола TCP. Протокол UDP факта установления соединения не проверяет.
Каждое соединение машины с сетью называется сетевым интерфейсом. Машина, имеющая более одного интерфейса, может принимать данные по одному интерфейсу и передавать их по другому, таким образом осуществляя пересылку данных между сетями. Эта функция называется маршрутизацией, а машина, выполняющая ее – шлюзом.
Данные маршрутизации хранятся в одной из таблиц ядра. Для направления пакета по конкретному адресу ядро подбирает наиболее подходящий маршрут. Если такой маршрут отсутствует и нет маршрута по умолчанию, то отправителю возвращается сообщение об ошибке.
Команда netstat –r позволяет отображать таблицу маршрутизации.
Пункты назначения и шлюзы могут показываться или именами машин, или их IP-адресами. Флаги дают оценку маршрута.
st1@pds:~ > netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags Ifac
pds.sut.ru * 255.255.255.255 UH eth1
195.19.219.120 * 255.255.255.248 U eth0
195.19.219.128 * 255.255.255.192 U eth1
192.168.1.0 * 255.255.255.0 U eth0
195.19.221.0 lgw.ccs.sut.ru 255.255.255.0 UG eth1
193.125.0.0 lgw.ccs.sut.ru 255.255.0.0 UG eth1
loopback * 255.0.0.0 U lo
default lgw.ccs.sut.ru 0.0.0.0 UG eth1
Название столбца
Расшифровка
Gatway
Имена используемых шлюзов
Genmask
Маска, используемая для отображения общей части адреса, соответствующего данному маршруту
Flags
Флаги, описывающие маршрут: G Маршрут использует шлюз
U Интерфейс активен, может использоваться для передачи данных
H Данные можно передавать только одному узлу
D Запись создана перенаправляющим сообщением протокола ICMP
M Запись модифицирована перенаправляющим сообщением протокола ICMP
Iface
Интерфейс, используемый для передачи пакетов
При использовании ключа –i команды netstat на экран будут выведены статистические данные всех используемых интерфейсов. Исходя из них, можно выяснить, исправно ли соединение с сетью.
st1@pds:~ > netstat -i
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1000 0 844904 0 17 0 1454454 5 0 0 BRU
eth0: 1000 0 - no statistics available - BRU
eth1 1500 0 590844 0 7 0 434438 59 0 0 BRU
lo 3924 0 45754 0 0 0 45754 0 0 0 LRU
Ошибки являются следствием проблем в кабельной системе. В нормально работающей сети количество конфликтов (RX-OVR, TX-OVR) не должно превышать 3% от числа пакетов, а другие ошибки не должны составлять более 0,5% от общего числа пакетов.
Команда netstat –s выдает содержимое счетчиков сетевых программ. В выходной информации есть разделы, относящиеся к различным протоколам: IP, ICMP, TCP, UDP. С ее помощью можно определить место появления ошибки в принятом пакете.
st1@pds:~ > netstat -s
Ip:
179495 total packets received 13 with invalid headers 8753 forwarded
0 incoming packets discarded
168812 incoming packets delivered
325599 requests sent out
544 fragments failed
Icmp: 728 ICMP messages received
3 input ICMP message failed
ICMP input histogram:
destination unreachable: 82
timeout in transit: 55
source quenchs: 9
echo requests: 582
1235 ICMP messages sent
0 ICMP messages failed
ICMP output histogram:
destination unreachable: 646
time exceeded: 6
redirect: 1
echo replies: 582
Tcp:
2428 active connections openings
0 passive connection openings
0 failed connection attempts
0 connection resets received
17 connections established
154840 segments received
318758 segments send out
1480 segments retransmited
99 bad segments received.
499 resets sent
Udp:
13397 packets received
73 packets to unknown port received.
12 packet receive errors
5608 packets sent
TcpExt:
15 resets received for embryonic SYN_RECV sockets
Настройки локальной сети можно производить и с помощью специальных утилит netconf или netcfg, которые являются просто составной частью пакета linuxconf. Первая из них работает в графическом режиме, а вторая — в текстовом.
Надо иметь в виду, что многие опытные пользователи Linux критически относятся к возможностям пакета linuxconf и предпочитают прямое редактирование конфигурационных файлов. Но для новичка эти утилиты могут оказаться удобнее.
1. С помощью утилиты netstat исследовать состояние локальной IP-сети.
2. Научиться получать список соединений, открытых на сервере.
1) Зарегистрируйтесь в ОС Linux. Запустите на выполнение программу Терминал.
2) С помощью утилиты netstat получить список соединений, открытых на сервере. Прокомментировать соединения, находящиеся в режиме ESTABLISHED (внутренний или внешний интерфейс, с каким узлом, по какому протоколу).
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17