Инструментите на мрежовия администратор
The network administrator tools in linux router
- ifconfig
- iproute
- arp
- ping
- traceroute
- nmap
- netstat
- tcpdump
- top, htop
- whois
- dig
- iftop
- bmon
- nload
- conntrack
- lm-sensors
- badblocks
- lsmod
- lspci
- iptraf
- dmesg
- iptables
- powertop
- ethstats
- taskset
- smp_affinity
- traffic control
- policy routing
- mii-tool
1. ifconfig
ifconfig служи за конфигурация на мрежовите интерфейси.
Какво означава показаната от ifconfig информация?
lo loopback-устройство. Мрежовите карти се означават с eth.
inet addr: Интернет адрес (виж долу). За loopback този адрес е винаги 127.0.0.1
Bcast: Broadcast адрес. Broadcast се отнася за всички компютри в мрежата.
Mask: Мрежова маска. Тук се дефинира адресната област и с това броя компютри в една мрежа..
MTU: Максимална големина на пренасяните пакети през този интерфейс (англ. Maximum Transfer Unit).
Metric: Няма значени при сегашните версии на Linux.
RX packets: Приети (англ. received) пакети.
TX packets: Изпратени (англ. transmitted) пакети.
2. ip route
3. arp
Протоколът ARP (Address Resolution Protocol) е средството, чрез което компютрите а мрежата съпоставят логически IP адреси с физически хардуерни (МАС) адреси. ARP изгражда и поддържа таблица, наречена ARP кеш, в която се съдържат тези съпоставяния.Помощната програма ARP работи от командния ред и се разпространява с TCP/IP стека на UNIX/Linux. Тя може да се използва за разглеждане и промяна на съпоставянията между IP и МАС адреси. C помощта на програмата ARP можете да покажете съдържанието на кеша и да добавяте или изтривате специфични записи:
sami@sami:~$ arp -a ? (172.16.50.198) at 00:1d:7d:aa:1b:19 [ether] on wlan0 ? (172.16.50.1) at 00:0c:42:71:48:b7 [ether] on wlan0 |
4. ping
Ping (пинг) е компютърна програма за мрежова администрация, използвана за проверка на достъпността на хостове в интернет или локална мрежа. Използва протокола (ICMP) . Името пинг произлиза от сонарната терминология.
Ping работи на принципа на ехото, като изпраща съобщение чрез ICMP протокола до отдалечен компютър. Съобщението съдържа „искане“ за отговор от хоста. В този процес се измерва времето от предаване на съобщението до времето на получаването му от първоначалния компютър (двупосочния път) и се записва всяка загуба на пакети. Резултатите от теста се отпечатват на екрана под формата на статистически съобщения.
Резултат от програмата Ping, при тестване на хоста google.com:
sami@sami:~$ ping abv.bg PING abv.bg (194.153.145.104) 56(84) bytes of data. 64 bytes from abv.bg (194.153.145.104): icmp_req=1 ttl=60 time=9.10 ms 64 bytes from abv.bg (194.153.145.104): icmp_req=2 ttl=60 time=8.46 ms 64 bytes from abv.bg (194.153.145.104): icmp_req=3 ttl=60 time=8.19 ms 64 bytes from abv.bg (194.153.145.104): icmp_req=4 ttl=60 time=8.96 ms ^C --- abv.bg ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3004ms rtt min/avg/max/mdev = 8.199/8.682/9.107/0.379 ms |
Ping може да се стартира чрез използване на различни опции в командния ред, които позволяват специални режими на работа, като например да се уточни размера на изпращаните пакети и др. С Ping може да се злоупотребява, обикновено под формата елементарна DoS-атака, в която програмата е настроена така, че да изпраща много пакети с големи размери, които да „наводнят“ атакувания хост и да затруднят работата му.
5. traceroute
Често пъти е полезно да бъде проследен маршрута, по който даден пакет поема пътя от компютъра източник до хоста местоназначение. TCP/IP стековете включват помощна програма за проследяване на маршрута, която позволява да идентифицирате маршрутизаторите, през които преминава съобщението.
В следващият пример е използване командата traceroute за да бъде проследен маршрута на пакетите от източника до местоназначението:
sami@sami:~$ traceroute abv.bg traceroute to abv.bg (194.153.145.104), 30 hops max, 60 byte packets 1 172.16.50.1 (172.16.50.1) 3.660 ms 3.642 ms 3.634 ms 2 93.155.130.57 (93.155.130.57) 3.625 ms 3.616 ms 3.606 ms 3 212.70.158.89 (212.70.158.89) 10.177 ms * * 4 netinfo.bix.bg (193.169.198.168) 10.149 ms 10.150 ms 10.142 ms 5 abv.bg (194.153.145.104) 10.131 ms 10.124 ms 10.115 ms |
Както можете да видите, проследяването показва IP адрес и името на препращащия компютър или маршрутизатор. На пакета са му били необходими четиринадесет скока, за да достигне до своето местоназначение, което е хостьт с име www.google.bg. Времената за отиване и връщане (в милисекунди) са показани за всеки скок.
6. nmap
Nmap (Network Mapper) е порт-скенер с отворен код създаден от Гордън Лайън. Използва се за откриване на хостове и активни услуги в компютърна мрежа.
Nmap изпраща специално изработени пакети до хостa и след това анализира отговорите. За разлика от други порт-скенери, Nmap проверява условията в мрежата (претоварване на мрежата и др.) преди сканирането. Благодарение на голямата общност от активни потребители, които предоставят информация и подобряват характеристиките му, Nmap е успял да разшири възможностите си за сканиране, като освен, че открива, дали един хост е активен или определен порт е отворен, той може да определи операционната система на хоста и нейната версия, наименованието и версиите на услугите, които са активни на хоста, типа на устройството, наличието на защитна стена и др.
sami@sami:~$ nmap 10.129.3.7 Starting Nmap 6.00 ( http://nmap.org ) at 2012-12-18 09:55 EET Nmap scan report for 10.129.3.7 Host is up (0.011s latency). Not shown: 987 closed ports PORT STATE SERVICE 21/tcp open ftp 22/tcp open ssh 53/tcp open domain 80/tcp open http 139/tcp filtered netbios-ssn 445/tcp filtered microsoft-ds 1433/tcp open ms-sql-s 1947/tcp open sentinelsrm 2000/tcp open cisco-sccp 2002/tcp open globe 3389/tcp open ms-wbt-server 8080/tcp open http-proxy 8291/tcp open unknown |
Nmap done: 1 IP address (1 host up) scanned in 14.40 seconds
7.netstat
Често пъти е полезно да разгледате мрежовите статистики. Командата netstat се използва в UNIX/Linux, за да покаже информация за TCP/IP връзките и протокола. Командата netstat предоставя списък с връзки, които са текущо активни:
sami@sami:~$ netstat Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 sami.local:41531 178.132.81.26:https ESTABLISHED tcp 0 0 sami.local:60985 fa-in-f125.:xmpp-client ESTABLISHED tcp 0 0 sami.local:43473 core2-vlan100.itser:ssh ESTABLISHED tcp 0 0 sami.local:39614 kwaimuk.canonical:https ESTABLISHED tcp 0 0 sami.local:41700 178.132.81.53:https ESTABLISHED tcp 1 0 sami.local:36768 mistletoe.canonica:http CLOSE_WAIT |
Можете да видите протоколите, използвани за всяка връзка, името на локалния компютър и номера на порта, използвани за връзката, „чуждестранният” (foreign) адрес (името на отдалечения компютър) и състоянието на връзката. Netstat статистиките могат да бъдат полезни при отстраняване на проблеми с TCP/IP връзките. Следващият пример показва изобилието от информация, предоставяна в режим на обобщение (ключът -s). Докладите за грешки са особено полезни при диагностициране на проблеми с хардуера и маршрутизирането.
sami@sami:~$ netstat -s Ip: 5765 total packets received 51 with invalid addresses 0 forwarded 0 incoming packets discarded 5535 incoming packets delivered 4510 requests sent out 2 dropped because of missing route Icmp: 76 ICMP messages received 0 input ICMP message failed. ICMP input histogram: destination unreachable: 24 timeout in transit: 44 echo replies: 8 16 ICMP messages sent 0 ICMP messages failed ICMP output histogram: destination unreachable: 8 echo request: 8 IcmpMsg: InType0: 8 InType3: 24 InType11: 44 OutType3: 8 OutType8: 8 Tcp: 1087 active connections openings 0 passive connection openings 990 failed connection attempts 21 connection resets received 5 connections established 4209 segments received 3166 segments send out 26 segments retransmited 0 bad segments received. 25 resets sent Udp: 1226 packets received 8 packets to unknown port received. 0 packet receive errors 1302 packets sent UdpLite: TcpExt: 9 packets pruned from receive queue because of socket buffer overrun 4 TCP sockets finished time wait in fast timer 93 delayed acks sent Quick ack mode was activated 5 times 2 packets directly queued to recvmsg prequeue. 2 bytes directly received in process context from prequeue 1762 packet headers predicted 359 acknowledgments not containing data payload received 163 predicted acknowledgments 26 other TCP timeouts 10 packets collapsed in receive queue due to low socket buffer 5 DSACKs sent for old packets 19 connections reset due to unexpected data 2 connections reset due to early user close TCPBacklogDrop: 2 TCPRcvCoalesce: 1611 IpExt: InMcastPkts: 67 OutMcastPkts: 69 InBcastPkts: 108 OutBcastPkts: 34 InOctets: 3298366 OutOctets: 580832 InMcastOctets: 7154 OutMcastOctets: 7234 InBcastOctets: 15950 OutBcastOctets: 4436 |
8. tcpdump
tcpdump е най използвания инструмент за прослушване на трафика в мрежата от Линукс шел. tcpdump е общ анализатор на пакети, който работи в командния ред. Програмата позволява на потребителя да преглежда TCP/IP пакети който се изпращат или получават по мрежата в която се намира компютъра. Той е написан през 1987 г. от Van Jacobson, Craig Leres и Steven McCanne които по това време са работели в лабораторията Lawrence Berkeley Laboratory в мрежата Research Group. Tcpdump работи на повечето Unix-подобни операционни системи: Linux, Solaris, BSD, Mac OS X, HP-UX и AIX и др. При тези системи, Tcpdump използва libpcap библиотеката, за прослушване на пакети.
# слуша на vlan100 интерфейс tcpdump -i vlan100 # показва само 10 реда tcpdump -i vlan100 -c 10 # слуша порт 80 без DNS имена tcpdump -n dst port 80 # слуша на vlan100 порт 80 tcpdump -i vlan100 port 80 # същото но от порт 81 до 100 без DNS имена tcpdump -i vlan100 -n portrange 81-100 # слуша на vlan100 ип адрес 10.125.3.2 tcpdump -i vlan100 host 10.125.3.2 # слуша на vlan100 цялата мрежа 10.125.1.0/24 tcpdump -i vlan100 src net 10.125.1.0/24 # слуша на vlan100 порт 80 от ип адрес 10.125.3.2 tcpdump -i vlan100 port 80 and host 10.125.3.2 # без DNS имена, vlan100, изключва протокола ssh слуша пакети от ип адрес 10.125.3.2 tcpdump -nl -i vlan100 not port ssh and src host 10.125.3.2 # същото но с два ип адреса tcpdump -nl -i vlan100 not port ssh and src \(10.125.3.2 or 10.125.3.3\) # слуша на vlan100 портове 25, 110 и 143 tcpdump -i vlan100 port \(25 or 110 or 143\) # слуша на vlan100 протокола icmp tcpdump -n -i vlan100 icmp # слуша на vlan100 протокола arp tcpdump -n -i vlan100 arp # слуша на vlan100 трафика през порт 80 в текстов вид tcpdump -i vlan100 -s 0 -A port 80 | grep GET |
9. top, htop
Повечето администратори ползват програмката top, служеща за мониторинг на процесите в Linux която нагледно представя процесите, заемащи най-много ресурси в машината. top е мощно средство за откриване и спиране на проблемни процеси. Но има един съществен недостатък – не можете да разглеждате процесите, намиращи се в списъка най-отдолу. Не че е особено важно, защото активните процеси се изобразяват първи в списъка, подредени по степен на натоварване на процесора. Но все пак понякога е нужно да видим всички тези процеси, То последните нерядко харчат и те доста системни ресурси.Има един интересен проект htop e (GPL) базиран на ncurses, и върши същата работа като top, с тази разлика, че са добавени някои полезни функции. Можете да разглеждате целият списък със стартирани процеси. Освен това са добавени цветове , може да се ползват функционалните клавиши и програмката е доста конфигурируема. htop е с достъпно потребителско меню в долната част на екрана, като например F1 извиква помощна информация, F2 е “Setup”, и така нататък. За разлика от top (която е част на пакета procps и е включена във всяка линукс дистрибуция), htop трябва да сe го инсталира. Първо проверете, дали е налична програмката във вашата дистрибуция. В Debian/Ubuntu/Mint я има и инсталацията се свежда до:
apt-get install htop |
10. whois
WHOIS е мрежов протокол използван в Интернет за търсене на имена, IP адреси и мрежови сървъри. WHOIS е самостоятелна услуга, поддържана от самостоятелен протокол в Internet. В един WHOIS сървър се поддържа база от данни с имената, електронните адреси, телефонните номера на регистрирани потребители. Достъпът до базата данни е свободен и се осъществява с помощта на WHOIS клиент посредством WHOIS протокол.
root@host:~# whois itservice-bg.net Whois Server Version 2.0 Domain names in the .com and .net domains can now be registered with many different competing registrars. Go to http://www.internic.net for detailed information. Domain Name: ITSERVICE-BG.NET Registrar: PDR LTD. D/B/A PUBLICDOMAINREGISTRY.COM Whois Server: whois.PublicDomainRegistry.com Referral URL: http://www.PublicDomainRegistry.com Name Server: DRAKA.CABLEBULGARIA.BG Name Server: ETCH.GCN.BG Name Server: NS1.ITSERVICE-BG.NET Name Server: NS2.ITSERVICE-BG.NET Status: ok Updated Date: 11-jan-2012 Creation Date: 23-jan-2009 Expiration Date: 23-jan-2013 Domain Name: ITSERVICE-BG.NET Registrant: ITSservice 2009 LTD Samuil Arsov ([email protected]) Ivan Vazov 50 Pleven ,5800 BG Tel. +359.887371498 Fax. +359.64800601 Creation Date: 23-Jan-2009 Expiration Date: 23-Jan-2013 Domain servers in listed order: draka.cablebulgaria.bg etch.gcn.bg ns1.itservice-bg.net ns2.itservice-bg.net Administrative Contact: ITSservice 2009 LTD Samuil Arsov ([email protected]) Ivan Vazov 50 Pleven ,5800 BG Tel. +359.887371498 Fax. +359.64800601 Technical Contact: ITSservice 2009 LTD Samuil Arsov ([email protected]) Ivan Vazov 50 Pleven ,5800 BG Tel. +359.887371498 Fax. +359.64800601 Status:ACTIVE |
11. dig
DIG (информация за домейна groper) е мрежово администриране от командния ред инструмент за заявки Domain Name System (DNS) сървъри за имена.
Dig е полезен за отстраняване на неизправности в мрежата и за образователни цели. Dig може да работи в интерактивен режим в командния ред или в пакетен режим четене на искания от операционната система файл.
sami@sami:~$ dig abv.bg ; <<>> DiG 9.8.1-P1 <<>> abv.bg ;; global options: +cmd ;; Got answer: ;; ->>HEADER< |
12 iftop
iftop слуша мрежовия трафик и показва таблицата на текущата пропускателната способност и в двете посоки на връзките създадени от хостове. iftop трябва да се управлява с достатъчно права, за да се контролира целия мрежов трафик на интерфейса, като на повечето системи това означава, че трябва да се стартира с root. По подразбиране, iftop ще показва имената на хостовете, свързани с адреси преглеждайки пакетите които преминават през рутера.
13. bmon
bmon е програма за мониторинг на трафика с множество методи за входни и изходни режими.
14. nload
nload е конзолно приложение, което следи мрежовия трафик и използването на пропускателната способност в реално време. Тo визуализира и изходящия трафик с втора графикa и предоставя допълнителна информация, като общата сума на прехвърлените данни и мин/макс и използване на мрежата.
15. conntrack
Connection tracking представлява възможноста да поддържате дадена информация
за връзките в таблица, като предназначение и източник на IP адресите и сътветните
портове, видове протоколи, изтичане на времето и състояние на връзката. Firewall-и
които правят това са познати като stateful. На stateful firewall-ите им е присъща
по-голяма сигурност отколкото на тяхните “stateless” дубликати … прости пакетни
филтри. iptables е точно такъв firewall който поддържа таблицата /proc/net/ip_conntrack.
показва броя на връзките:
conntrack -C |
показва връзките в SNAT на ип адрес:
conntrack -L -s 10.125.3.5 |
16. lm-sensors
lm_sensors (Linux мониторинг сензор), е свободен софтуер с отворен код инструмент за Linux, която осигурява инструменти и драйвери за мониторинг на температурите, напрежението и вентилаторите. В интерес на истината lm-sensors не винаги дава точни и добри резултати но в определени моменти е много ценен инструмент.
инсталация:
sudo apt-get install lm-sensors |
сканиране:
sudo sensors-detect |
преглед:
core2:~# sensors coretemp-isa-0000 Adapter: ISA adapter Core 0: +39.0б╟C (high = +74.0б╟C, crit = +100.0б╟C) Core 1: +37.0б╟C (high = +74.0б╟C, crit = +100.0б╟C) Core 2: +37.0б╟C (high = +74.0б╟C, crit = +100.0б╟C) Core 3: +37.0б╟C (high = +74.0б╟C, crit = +100.0б╟C) w83627hf-isa-0290 Adapter: ISA adapter in0: +0.00 V (min = +1.09 V, max = +1.50 V) ALARM in1: +0.00 V (min = +1.09 V, max = +1.50 V) ALARM in2: +0.00 V (min = +2.82 V, max = +3.79 V) ALARM in3: +3.01 V (min = +3.06 V, max = +3.31 V) ALARM in4: +0.00 V (min = +0.14 V, max = +4.08 V) ALARM in5: +0.00 V (min = +4.05 V, max = +3.57 V) ALARM in6: +0.00 V (min = +3.57 V, max = +3.06 V) ALARM in7: +3.33 V (min = +3.79 V, max = +3.82 V) ALARM in8: +3.28 V (min = +1.97 V, max = +3.06 V) ALARM fan1: 0 RPM (min = 0 RPM, div = 2) fan2: 0 RPM (min = 0 RPM, div = 2) fan3: 0 RPM (min = 0 RPM, div = 2) temp1: +127.0б╟C (high = +125.0б╟C, hyst = +127.0б╟C) ALARM sensor = thermistor temp2: +127.0б╟C (high = +80.0б╟C, hyst = +75.0б╟C) ALARM sensor = thermistor temp3: +127.0б╟C (high = +80.0б╟C, hyst = +75.0б╟C) ALARM sensor = thermistor cpu0_vid: +1.300 V beep_enable: enabled w83793-i2c-0-2f Adapter: SMBus I801 adapter at 1100 VcoreA: +1.06 V (min = +0.92 V, max = +1.38 V) VcoreB: +1.25 V (min = +0.00 V, max = +2.05 V) in2: +1.11 V (min = +0.99 V, max = +1.33 V) in3: +0.50 V (min = +0.40 V, max = +0.67 V) in4: +1.82 V (min = +1.62 V, max = +1.98 V) in5: +3.26 V (min = +2.96 V, max = +3.63 V) in6: +0.99 V (min = +0.90 V, max = +1.10 V) +5V: +5.09 V (min = +4.52 V, max = +5.50 V) 5VSB: +5.09 V (min = +4.52 V, max = +5.50 V) Vbat: +3.25 V (min = +2.70 V, max = +3.30 V) fan1: 0 RPM (min = 712 RPM) ALARM fan2: 0 RPM (min = 712 RPM) ALARM fan3: 0 RPM (min = 712 RPM) ALARM fan4: 2054 RPM (min = 712 RPM) fan5: 0 RPM (min = 712 RPM) ALARM fan6: 0 RPM (min = 712 RPM) ALARM fan7: 1698 RPM (min = 712 RPM) fan8: 0 RPM (min = 712 RPM) ALARM fan9: 0 RPM (min = 712 RPM) ALARM fan10: 0 RPM (min = 712 RPM) ALARM temp1: +39.0б╟C (high = +79.0б╟C, hyst = +74.0б╟C) sensor = Intel PECI temp2: -98.0б╟C (high = +79.0б╟C, hyst = +74.0б╟C) sensor = Intel PECI temp3: -128.0б╟C (high = +79.0б╟C, hyst = +74.0б╟C) sensor = Intel PECI temp4: -128.0б╟C (high = +79.0б╟C, hyst = +74.0б╟C) sensor = Intel PECI temp5: +37.0б╟C (high = +50.0б╟C, hyst = +45.0б╟C) sensor = thermistor temp6: +35.0б╟C (high = +50.0б╟C, hyst = +45.0б╟C) sensor = thermistor intrusion0: OK beep_enable: disabled |
17. badblocks
badblocks се използва за търсене за лоши сектори на устройство (обикновено на дисков дял). устройство е специален файл, съответстващ на устройството (например / dev/hdc1).
badblocks -v -s /dev/sda1 |
18. lsmod
lsmod – Показване на състоянието на модулите в ядрото на Linux
core2:~# lsmod Module Size Used by act_mirred 12643 0 ifb 12757 0 ip_set 26649 0 xt_limit 12638 0 xt_length 12460 0 nf_conntrack_netlink 23101 0 xt_mark 12453 60 xt_multiport 12548 5 xt_TCPMSS 12670 5 xt_tcpudp 12570 7 act_police 12654 5 cls_u32 13071 5 sch_ingress 12744 5 sch_sfq 13172 1361 xt_CLASSIFY 12429 1361 sch_htb 17923 7 iptable_mangle 12536 1 iptable_filter 12536 1 ip_gre 22164 0 gre 12531 1 ip_gre 8021q 19291 0 garp 13193 1 8021q stp 12392 1 garp nf_nat_pptp 12603 0 nf_conntrack_pptp 12769 1 nf_nat_pptp nf_conntrack_proto_gre 12974 1 nf_conntrack_pptp nf_nat_h323 12918 0 nf_conntrack_h323 42413 1 nf_nat_h323 nf_nat_sip 12923 0 nf_conntrack_sip 26054 1 nf_nat_sip nf_nat_proto_gre 12517 1 nf_nat_pptp nf_nat_tftp 12422 0 nf_nat_ftp 12460 0 nf_conntrack_tftp 12433 1 nf_nat_tftp nf_conntrack_ftp 12605 1 nf_nat_ftp ipt_MASQUERADE 12594 0 iptable_nat 12928 1 nf_nat 18242 8 iptable_nat,ipt_MASQUERADE,nf_nat_ftp,nf_nat_tftp,nf_nat_proto_gre,nf_nat_sip,nf_nat_h323,nf_nat_pptp nf_conntrack_ipv4 14078 3 nf_nat,iptable_nat nf_defrag_ipv4 12483 1 nf_conntrack_ipv4 nf_conntrack 52720 16 nf_conntrack_ipv4,nf_nat,iptable_nat,ipt_MASQUERADE,nf_conntrack_ftp,nf_conntrack_tftp,nf_nat_ftp,nf_nat_tftp,nf_conntrack_sip,nf_nat_sip,nf_conntrack_h323,nf_nat_h323,nf_conntrack_proto_gre,nf_conntrack_pptp,nf_nat_pptp,nf_conntrack_netlink ip_tables 22042 3 iptable_nat,iptable_filter,iptable_mangle x_tables 19073 12 ip_tables,iptable_nat,ipt_MASQUERADE,iptable_filter,iptable_mangle,xt_CLASSIFY,xt_tcpudp,xt_TCPMSS,xt_multiport,xt_mark,xt_length,xt_limit nfnetlink_log 17212 0 nfnetlink 12906 3 nfnetlink_log,nf_conntrack_netlink,ip_set w83793 38665 0 w83627hf 26486 0 hwmon_vid 12430 2 w83627hf,w83793 ipmi_msghandler 35965 0 loop 22641 0 radeon 639136 1 ttm 48725 1 radeon drm_kms_helper 27227 1 radeon snd_pcm 63900 0 snd_page_alloc 13003 1 snd_pcm drm 167670 3 drm_kms_helper,ttm,radeon power_supply 13475 1 radeon i2c_algo_bit 12841 1 radeon snd_timer 22917 1 snd_pcm i3200_edac 12598 0 parport_pc 22364 0 snd 52850 2 snd_timer,snd_pcm iTCO_wdt 17081 0 iTCO_vendor_support 12704 1 iTCO_wdt edac_core 35258 2 i3200_edac parport 31858 1 parport_pc acpi_cpufreq 12935 3 mperf 12453 1 acpi_cpufreq i2c_i801 16870 0 i2c_core 23876 6 i2c_i801,i2c_algo_bit,drm,drm_kms_helper,radeon,w83793 coretemp 12898 0 shpchp 31293 0 soundcore 13065 1 snd video 17628 0 processor 28157 1 acpi_cpufreq button 12937 0 container 12581 0 thermal_sys 18040 2 processor,video evdev 17562 3 pcspkr 12579 0 ext4 350548 1 crc16 12343 1 ext4 jbd2 62015 1 ext4 mbcache 13065 1 ext4 sg 25874 0 sd_mod 36136 3 crc_t10dif 12348 1 sd_mod ata_generic 12479 0 uhci_hcd 26865 0 floppy 53129 0 ata_piix 29535 3 libata 140589 2 ata_piix,ata_generic ehci_hcd 40215 0 scsi_mod 162222 3 libata,sd_mod,sg usbcore 128640 3 ehci_hcd,uhci_hcd usb_common 12354 1 usbcore e1000e 124918 0 |
19. lspci
lspci е помощна програма за показване на информация за PCI шината и устройства, свързани с нея.
core2:~# lspci 00:00.0 Host bridge: Intel Corporation 3200/3210 Chipset DRAM Controller (rev 01) 00:01.0 PCI bridge: Intel Corporation 3200/3210 Chipset Host-Primary PCI Express Bridge (rev 01) 00:1a.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 02) 00:1a.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 (rev 02) 00:1a.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 (rev 02) 00:1a.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 02) 00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 (rev 02) 00:1c.4 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 5 (rev 02) 00:1c.5 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 6 (rev 02) 00:1d.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 02) 00:1d.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 02) 00:1d.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 02) 00:1d.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 02) 00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 92) 00:1f.0 ISA bridge: Intel Corporation 82801IR (ICH9R) LPC Interface Controller (rev 02) 00:1f.2 IDE interface: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (rev 02) 00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 02) 00:1f.5 IDE interface: Intel Corporation 82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (rev 02) 00:1f.6 Signal processing controller: Intel Corporation 82801I (ICH9 Family) Thermal Subsystem (rev 02) 01:00.0 PCI bridge: Intel Corporation 6700PXH PCI Express-to-PCI Bridge A (rev 09) 01:00.1 PIC: Intel Corporation 6700/6702PXH I/OxAPIC Interrupt Controller A (rev 09) 01:00.2 PCI bridge: Intel Corporation 6700PXH PCI Express-to-PCI Bridge B (rev 09) 01:00.3 PIC: Intel Corporation 6700PXH I/OxAPIC Interrupt Controller B (rev 09) 05:00.0 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (rev 06) 05:00.1 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (rev 06) 0d:00.0 Ethernet controller: Intel Corporation 82573E Gigabit Ethernet Controller (Copper) (rev 03) 0f:00.0 Ethernet controller: Intel Corporation 82573L Gigabit Ethernet Controller 11:04.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI ES1000 (rev 02) |
20. iptraf
iptraf е IP LAN монитор който генерира различни статистики в мрежата, включително информация за TCP, UDP, ICMP и OSPF протоколи. Ethernet натоварване, IP грешки и други статистики.
sudo apt-get install iptraf |
21. dmesg
dmesg се използва, за да разгледа или контролира съобщенията от буфера на ядрото. Действието по подразбиране е да прочетете всички съобщения от ядрото при стартирани и по време на работа.
dmesg |
core2:~# cat /var/log/dmesg | grep e1000 [ 1.066729] e1000e: Intel(R) PRO/1000 Network Driver - 1.5.1-k [ 1.066731] e1000e: Copyright(c) 1999 - 2011 Intel Corporation. [ 1.066763] e1000e 0000:05:00.0: Disabling ASPM L1 [ 1.066793] e1000e 0000:05:00.0: setting latency timer to 64 [ 1.066914] e1000e 0000:05:00.0: irq 92 for MSI/MSI-X [ 1.240348] e1000e 0000:05:00.0: eth0: (PCI Express:2.5GT/s:Width x4) 00:15:17:96:77:62 [ 1.240351] e1000e 0000:05:00.0: eth0: Intel(R) PRO/1000 Network Connection [ 1.240431] e1000e 0000:05:00.0: eth0: MAC: 0, PHY: 4, PBA No: D50868-003 [ 1.240440] e1000e 0000:05:00.1: Disabling ASPM L1 [ 1.240462] e1000e 0000:05:00.1: setting latency timer to 64 [ 1.240575] e1000e 0000:05:00.1: irq 93 for MSI/MSI-X [ 1.412709] e1000e 0000:05:00.1: eth1: (PCI Express:2.5GT/s:Width x4) 00:15:17:96:77:63 [ 1.412712] e1000e 0000:05:00.1: eth1: Intel(R) PRO/1000 Network Connection [ 1.412792] e1000e 0000:05:00.1: eth1: MAC: 0, PHY: 4, PBA No: D50868-003 [ 1.412799] e1000e 0000:0d:00.0: Disabling ASPM L0s L1 [ 1.412818] e1000e 0000:0d:00.0: setting latency timer to 64 [ 1.412955] e1000e 0000:0d:00.0: irq 94 for MSI/MSI-X [ 1.523967] e1000e 0000:0d:00.0: eth2: (PCI Express:2.5GT/s:Width x1) 00:30:48:d3:ee:38 [ 1.523970] e1000e 0000:0d:00.0: eth2: Intel(R) PRO/1000 Network Connection [ 1.524152] e1000e 0000:0d:00.0: eth2: MAC: 2, PHY: 2, PBA No: 0100FF-0FF [ 1.524160] e1000e 0000:0f:00.0: Disabling ASPM L0s L1 [ 1.524181] e1000e 0000:0f:00.0: setting latency timer to 64 [ 1.524320] e1000e 0000:0f:00.0: irq 95 for MSI/MSI-X [ 1.636273] e1000e 0000:0f:00.0: eth3: (PCI Express:2.5GT/s:Width x1) 00:30:48:d3:ee:39 [ 1.636275] e1000e 0000:0f:00.0: eth3: Intel(R) PRO/1000 Network Connection [ 1.636344] e1000e 0000:0f:00.0: eth3: MAC: 2, PHY: 2, PBA No: FFFFFF-0FF |
22. iptables
iptables mini howto
23. powertop
Консумация на енергия и инструмент за диагностика на захранването.
sudo apt-get install powertop |
Summary: 6112.7 wakeups/second, 0.0 GPU ops/second, 0.0 VFS ops/sec and 84.8% CPU use Usage Events/s Category Description 216.7 ms/s 4281.1 Interrupt [3] net_rx(softirq) 13.4 ms/s 1407.2 Interrupt [2] net tx(softirq) 559.7 ms/s 2.0 Process /usr/lib/quagga/bgpd --daemon -A 127.0.0.1 4.9 ms/s 212.2 Timer death_by_timeout 6.3 ms/s 156.5 Interrupt [1] timer(softirq) 1.7 ms/s 22.5 Timer neigh_timer_handler 2.4 ms/s 15.6 Process /usr/sbin/dnsmasq -x /var/run/dnsmasq/dnsmasq.pid -u dnsmasq -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg- 10.6 ms/s 2.0 Process powertop 9.4 ms/s 0.00 Interrupt [93] eth1 5.5 ms/s 0.00 kWork do_dbs_timer 5.4 ms/s 0.00 Interrupt [92] eth0 21.9 µs/s 2.0 Process [ksoftirqd/2] 15.8 µs/s 2.0 Process [ksoftirqd/3] 1.8 ms/s 1.0 Process [ksoftirqd/0] 3.1 ms/s 0.00 Interrupt [94] eth2 466.8 µs/s 1.0 Interrupt [7] sched(softirq) 274.0 µs/s 1.0 Interrupt [8] hrtimer(softirq) 97.2 µs/s 1.0 Process sshd: root@pts/2 30.6 µs/s 1.0 kWork cache_reap 16.8 µs/s 1.0 Timer ghes_poll_func 5.1 µs/s 1.0 Timer clocksource_watchdog 3.5 µs/s 1.0 kWork flush_to_ldisc 1.8 µs/s 1.0 Timer ipmi_timeout 1.6 µs/s 1.0 Timer tcp_write_timer 2.0 ms/s 0.00 Interrupt [9] RCU(softirq) 1.9 ms/s 0.00 Process [kworker/0:2] 0.9 ms/s 0.00 Timer delayed_work_timer_fn 398.4 µs/s 0.00 Process [kworker/2:2] 299.1 µs/s 0.00 Process init [2] 124.8 µs/s 0.00 Process [kworker/u:3] 88.3 µs/s 0.00 Process [kworker/3:1] 57.6 µs/s 0.00 Process /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 105:108 34.4 µs/s 0.00 Process (squid) -YC -f /etc/squid3/squid.conf 21.6 µs/s 0.00 kWork vmstat_update |
24. ethstats
ethstats – удобна статистика на мрежовите интерфейси.
sudo apt-get install ethstats |
core2:~# ethstats total: 609.21 Mb/s In 547.54 Mb/s Out - 87822.0 p/s In 85902.0 p/s Out eth0: 328.68 Mb/s In 166.57 Mb/s Out - 41369.0 p/s In 33745.0 p/s Out eth1: 121.18 Mb/s In 340.98 Mb/s Out - 29921.0 p/s In 40033.0 p/s Out eth2: 76.94 Mb/s In 17.69 Mb/s Out - 8333.0 p/s In 5633.0 p/s Out eth2.104: 8.90 Mb/s In 2.19 Mb/s Out - 1064.0 p/s In 808.0 p/s Out eth2.523: 66.16 Mb/s In 15.12 Mb/s Out - 6101.0 p/s In 4826.0 p/s Out eth3: 0.00 Mb/s In 0.00 Mb/s Out - 0.0 p/s In 0.0 p/s Out gre0: 0.00 Mb/s In 0.00 Mb/s Out - 0.0 p/s In 0.0 p/s Out tun1: 0.00 Mb/s In 0.03 Mb/s Out - 3.0 p/s In 3.0 p/s Out tun2: 7.12 Mb/s In 0.23 Mb/s Out - 733.0 p/s In 430.0 p/s Out tun3: 0.01 Mb/s In 0.01 Mb/s Out - 7.0 p/s In 6.0 p/s Out tun4: 0.22 Mb/s In 4.72 Mb/s Out - 291.0 p/s In 418.0 p/s Out tun5: 0.00 Mb/s In 0.00 Mb/s Out - 0.0 p/s In 0.0 p/s Out |
25. taskset
taskset – асоцииране на процес към определено ядро на процесора.
С командата ps axf преглеждаме процесите (може и с htop)
core2:~# ps axf PID TTY STAT TIME COMMAND 2 ? S 0:00 [kthreadd] 3 ? S 236:54 \_ [ksoftirqd/0] 6 ? S 0:00 \_ [migration/0] 7 ? S 2:29 \_ [watchdog/0] 8 ? S 0:00 \_ [migration/1] 10 ? S 0:36 \_ [ksoftirqd/1] 12 ? S 0:02 \_ [watchdog/1] 13 ? S 0:00 \_ [migration/2] 15 ? S 9:46 \_ [ksoftirqd/2] 16 ? S 0:08 \_ [watchdog/2] 17 ? S 0:00 \_ [migration/3] 18 ? S 0:02 \_ [kworker/3:0] 19 ? S 10:27 \_ [ksoftirqd/3] 20 ? S 0:40 \_ [watchdog/3] 21 ? S< 0:00 \_ [cpuset] 22 ? S< 0:00 \_ [khelper] 23 ? S 0:00 \_ [kdevtmpfs] 24 ? S< 0:00 \_ [netns] 25 ? S 0:19 \_ [sync_supers] 26 ? S 0:00 \_ [bdi-default] 27 ? S< 0:00 \_ [kintegrityd] 28 ? S< 0:00 \_ [kblockd] 31 ? S 2:46 \_ [kworker/3:1] 32 ? S 0:00 \_ [khungtaskd] 33 ? S 0:00 \_ [kswapd0] 34 ? SN 0:00 \_ [ksmd] 35 ? SN 0:00 \_ [khugepaged] 36 ? S 0:00 \_ [fsnotify_mark] 37 ? S< 0:00 \_ [crypto] 138 ? S 0:00 \_ [khubd] 173 ? S< 0:00 \_ [ata_sff] 184 ? S 0:00 \_ [scsi_eh_0] 185 ? S 0:00 \_ [scsi_eh_1] 187 ? S 0:00 \_ [kworker/u:2] 188 ? S 0:00 \_ [scsi_eh_2] 189 ? S 0:00 \_ [scsi_eh_3] 190 ? S 0:48 \_ [kworker/u:3] 207 ? S 4:49 \_ [kworker/2:2] 208 ? S 265:55 \_ [kworker/0:2] 221 ? S 0:14 \_ [jbd2/sda1-8] 222 ? S< 0:00 \_ [ext4-dio-unwrit] 503 ? S< 0:00 \_ [edac-poller] 1899 ? S 0:17 \_ [flush-8:0] 16485 ? S 6:08 \_ [kworker/0:1] 322190 ? S 0:02 \_ [kworker/1:0] 322295 ? S 0:02 \_ [kworker/1:2] 324623 ? S 0:00 \_ [kworker/2:1] 1 ? Ss 0:31 init [2] 348 ? Ss 0:00 udevd --daemon 474 ? S 0:00 \_ udevd --daemon 2289 ? S 0:00 \_ udevd --daemon 1858 ? Sl 1:30 /usr/sbin/rsyslogd -c5 1914 ? Ss 0:00 /usr/sbin/atd 1979 ? Ss 0:00 /usr/sbin/acpid 2054 ? S 0:00 /usr/sbin/hddtemp -d -l 127.0.0.1 -p 7634 -s | /dev/sda 2075 ? Ss 1:06 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 105:108 2130 ? S 5:23 /usr/sbin/snmpd -LS6d -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid 2143 ? Ss 0:00 /usr/bin/dbus-daemon --system 2162 ? Ss 0:00 /usr/sbin/cron 2203 ? Ss 0:01 /usr/sbin/sshd 322988 ? Ss 0:00 \_ sshd: root@pts/1 322993 pts/1 Ss+ 0:00 | \_ -bash 324651 ? Ss 0:00 \_ sshd: root@pts/2 324656 pts/2 Ss 0:00 \_ -bash 325167 pts/2 R+ 0:00 \_ ps axf 2221 ? Ss 0:00 /usr/sbin/squid3 -YC -f /etc/squid3/squid.conf 2223 ? S 2:58 \_ (squid) -YC -f /etc/squid3/squid.conf 2248 ? S 0:00 \_ (unlinkd) 15995 tty1 Ss+ 0:00 /sbin/getty 38400 tty1 15996 tty2 Ss+ 0:00 /sbin/getty 38400 tty2 15997 tty3 Ss+ 0:00 /sbin/getty 38400 tty3 15998 tty4 Ss+ 0:00 /sbin/getty 38400 tty4 15999 tty5 Ss+ 0:00 /sbin/getty 38400 tty5 16000 tty6 Ss+ 0:00 /sbin/getty 38400 tty6 16005 ? Sl 0:01 /usr/sbin/console-kit-daemon --no-daemon 52128 ? S 37:13 /usr/sbin/dnsmasq -x /var/run/dnsmasq/dnsmasq.pid -u dnsmasq -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new 185550 ? Ss 2:12 /usr/lib/quagga/zebra --daemon -A 127.0.0.1 185554 ? Ss 21:57 /usr/lib/quagga/bgpd --daemon -A 127.0.0.1 185558 ? Ss 0:02 /usr/lib/quagga/watchquagga --daemon zebra bgpd |
А по долу асоциираме процеса.
taskset -cp 1 185550 |
В случая имаме 4 ядра:
0 = първо ядро
1 = второ ядро
2 = трето ядро
3 = четвърто ядро
26. smp_affinity
Асоцииране на устройство към ядро на процесор
Първо трябва да прегледаме номерата на устройствата с cat /proc/interrupts
core2:~# cat /proc/interrupts CPU0 CPU1 CPU2 CPU3 0: 1870 1310 338 50 IO-APIC-edge timer 1: 1 0 1 1 IO-APIC-edge i8042 6: 1 1 0 1 IO-APIC-edge floppy 7: 1 0 0 0 IO-APIC-edge parport0 8: 0 0 1 0 IO-APIC-edge rtc0 9: 0 0 0 0 IO-APIC-fasteoi acpi 14: 520 328056 520 19037 IO-APIC-edge ata_piix 15: 0 0 0 0 IO-APIC-edge ata_piix 16: 0 0 0 0 IO-APIC-fasteoi uhci_hcd:usb3 17: 0 0 0 0 IO-APIC-fasteoi uhci_hcd:usb4 18: 0 0 0 0 IO-APIC-fasteoi ehci_hcd:usb1, ata_piix, uhci_hcd:usb5, uhci_hcd:usb8 22: 0 0 0 0 IO-APIC-fasteoi uhci_hcd:usb7 23: 0 0 0 0 IO-APIC-fasteoi ehci_hcd:usb2, uhci_hcd:usb6 92: 2544239156 44008373 2 1 PCI-MSI-edge eth0 93: 2 3 161935823 3988820087 PCI-MSI-edge eth1 94: 1 828139906 4127077 39015258 PCI-MSI-edge eth2 NMI: 766215 61908 41672 578597 Non-maskable interrupts LOC: 2047505432 1299479813 531116521 1813348140 Local timer interrupts SPU: 0 0 0 0 Spurious interrupts PMI: 766215 61908 41672 578597 Performance monitoring interrupts IWI: 33 6 22 34 IRQ work interrupts RES: 612444 2008260 42005167 2011006 Rescheduling interrupts CAL: 5633 93413552 141842 50985616 Function call interrupts TLB: 6154 5446 4202 3254 TLB shootdowns TRM: 0 0 0 0 Thermal event interrupts THR: 0 0 0 0 Threshold APIC interrupts MCE: 0 0 0 0 Machine check exceptions MCP: 3526 3526 3526 3526 Machine check polls ERR: 0 MIS: 0 |
и да асоциираме определено устройство например лан интерфейса eth0 към първото ядро от четириядрен процесор.
echo 1 > /proc/irq/92/smp_affinity |
параметъра след echo е както следва:
1 = първо ядро
2 = второ ядро
4 = трето ядро
8 = четвърто ядро
f = всички ядра
27. mii-tool
Тази програма проверява или определя статута на мрежовия интерфейс.
core2:~# mii-tool eth0: negotiated, link ok eth1: negotiated flow-control, link ok eth2: negotiated 100baseTx-FD, link ok eth3: no link |