دستور netstat برای دیدن اطلاعات شبکه لینوکس مانند کانکشن ها , جدول روتینگ , برخی از اطلاعات هر یک از اینترفیس ها و ... مورد استفاده قرار می گیرد .
اپشن های دستور netstat
a-
: برای نشون دادن تمام پورت های باز (listening) و غیر باز (none listening) که اگر با اپشن i
ترکیب بشه (پایین تر توضیح دادم) اینترفیس هایی که up نیستن رو هم نشون میده
# netstat -a Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:ssh *:* LISTEN tcp 0 0 172.16.134.164:ssh 172.16.134.1:57131 ESTABLISHED tcp6 0 0 [::]:http [::]:* LISTEN tcp6 0 0 [::]:ssh [::]:* LISTEN udp 0 0 *:bootpc *:* udp 0 0 *:50110 *:* udp6 0 0 [::]:44704 [::]:* Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 6 [ ] DGRAM 5944 /dev/log unix 2 [ ACC ] SEQPACKET LISTENING 4208 /run/udev/control unix 2 [ ACC ] STREAM LISTENING 7625 /var/run/acpid.socket unix 2 [ ] DGRAM 9520 unix 2 [ ] DGRAM 8252 unix 2 [ ] DGRAM 4529 unix 2 [ ] DGRAM 6573 unix 3 [ ] DGRAM 5497 unix 3 [ ] DGRAM 5496
معمولا اپشن a
رو همراه با اپشن n
به کار می برن . اپشن n
باعث میشه تا نوع عددی اطلاعات نشون داده بشه یعنی مثلا بجای این که بنویسه ssh می نویسه 22 که شماره پرت ssh هست انجام این کار به صورت بسزایی در سرعت گرفتن خروجی از netstat تاثیر داره چون دیگه لازم نیست که اعداد رو به صورت نامشون در بیاره.
این خروجی همون خروجی دستور بالاست ولی همراه با اپشن n-
:
# netstat -na Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 172.16.134.164:22 172.16.134.1:57131 ESTABLISHED tcp6 0 0 :::80 :::* LISTEN tcp6 0 0 :::22 :::* LISTEN udp 0 0 0.0.0.0:68 0.0.0.0:* udp 0 0 0.0.0.0:50110 0.0.0.0:* udp6 0 0 :::44704 :::* Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 6 [ ] DGRAM 5944 /dev/log unix 2 [ ACC ] SEQPACKET LISTENING 4208 /run/udev/control unix 2 [ ACC ] STREAM LISTENING 7625 /var/run/acpid.socket unix 2 [ ] DGRAM 9520 unix 2 [ ] DGRAM 8252 unix 2 [ ] DGRAM 4529 unix 2 [ ] DGRAM 6573 unix 3 [ ] DGRAM 5497 unix 3 [ ] DGRAM 5496
i-
: برای نشون دادن جدول اینترفیس های شبکمون (فقط اینترفیس هایی که up هستن رو نشون می ده)
aliabry@lp:~$ 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 1500 0 190803 0 0 0 190091 0 0 0 BMRU lo 16436 0 441 0 0 0 441 0 0 0 LRU pan1 1500 0 0 0 0 0 901 0 0 0 BMRU ppp0 1492 0 15505 0 0 0 17393 0 0 0 MOPRU vmnet1 1500 0 0 0 0 0 206 0 0 0 BMRU vmnet8 1500 0 27 0 0 0 206 0 0 0 BMRU
اگر اپشن i
و a
رو باهم ترکیب کنین اینترفیس هایی که down هستن رو هم نشون می ده .
aliabry@lp:~$ netstat -ia Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 194700 0 0 0 194268 0 0 0 BMRU lo 16436 0 441 0 0 0 441 0 0 0 LRU pan1 1500 0 0 0 0 0 940 0 0 0 BMRU ppp0 1492 0 19344 0 0 0 21492 0 0 0 MOPRU vmnet1 1500 0 0 0 0 0 226 0 0 0 BMRU vmnet8 1500 0 110 0 0 0 335 0 0 0 BMRU wlan0 1500 0 0 0 0 0 0 0 0 0 BM
اگر دو خروجی بالا رو با هم مقایسه کنین می بینین که اینترفیس wlan0 داون بوده.
r-
: برای نشون دادن جدول روتینگ . خروجی این اپشن دقیقا خروجی هست که دستور route نشون می ده .
aliabry@lp:~$ netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface default * 0.0.0.0 U 0 0 0 ppp0 44.210.11.23 * 255.255.255.255 UH 0 0 0 ppp0 172.16.134.0 * 255.255.255.0 U 0 0 0 vmnet8 172.16.179.0 * 255.255.255.0 U 0 0 0 vmnet1 192.168.1.0 * 255.255.255.0 U 0 0 0 pan1 192.168.64.0 * 255.255.255.0 U 0 0 0 eth0
l-
: برای نشون دادن سوکت هایی که در حال listening هستن
aliabry@lp:~$ netstat -l Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:56873 *:* LISTEN tcp 0 0 *:netbios-ssn *:* LISTEN tcp 0 0 *:54508 *:* LISTEN tcp 0 0 *:38575 *:* LISTEN tcp 0 0 *:sunrpc *:* LISTEN tcp 0 0 lp.local:domain *:* LISTEN tcp 0 0 *:51285 *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 localhost:ipp *:* LISTEN tcp 0 0 *:microsoft-ds *:* LISTEN tcp 0 0 *:nfs *:* LISTEN tcp 0 0 *:39299 *:* LISTEN tcp 0 0 *:902 *:* LISTEN tcp6 0 0 [::]:57802 [::]:* LISTEN tcp6 0 0 [::]:55850 [::]:* LISTEN tcp6 0 0 [::]:netbios-ssn [::]:* LISTEN tcp6 0 0 [::]:sunrpc [::]:* LISTEN tcp6 0 0 [::]:51761 [::]:* LISTEN tcp6 0 0 fe80::d811:56ff::domain [::]:* LISTEN tcp6 0 0 [::]:ssh [::]:* LISTEN tcp6 0 0 ip6-localhost:ipp [::]:* LISTEN tcp6 0 0 [::]:51929 [::]:* LISTEN tcp6 0 0 [::]:37757 [::]:* LISTEN tcp6 0 0 [::]:microsoft-ds [::]:* LISTEN tcp6 0 0 [::]:nfs [::]:* LISTEN udp 0 0 *:sunrpc *:* udp 0 0 192.168.64.2:netbios-ns *:* udp 0 0 lp.local:netbios-ns *:* udp 0 0 172.16.134.2:netbios-ns *:* udp 0 0 lp.local:netbios-ns *:* udp 0 0 172.16.179.2:netbios-ns *:* udp 0 0 lp.local:netbios-ns *:*
p-
: برای نشون دان PID و اسم نرم افزار در خروجی netstat .
در زیر پرت های مربوط به firefox رو لیست میکنیم :
aliabry@lp:~$ sudo netstat -nap | grep firefox tcp 1 0 8.180.28.136:49384 74.125.232.145:443 CLOSE_WAIT 7974/firefox tcp 1 0 8.180.28.136:49364 74.125.232.145:443 CLOSE_WAIT 7974/firefox tcp 1 0 8.180.28.136:46306 173.194.40.19:443 CLOSE_WAIT 7974/firefox tcp 1 0 8.180.28.136:46324 173.194.40.19:443 CLOSE_WAIT 7974/firefox
u-
: برای این که فقط پرتکل udp رو نشون بده . (در زیر قسمتی از خروجی قرار گرفته)
aliabry@lp:~$ netstat -au Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 *:sunrpc *:* udp 0 0 192.168.65.2:netbios-ns *:* udp 0 0 lp.local:netbios-ns *:* udp 0 0 172.16.134.2:netbios-ns *:* udp 0 0 lp.local:netbios-ns *:*
t-
: برای نشون دادن فقط پرتکل tcp (در زیر قسمتی از خروجی قرار گرفته)
aliabry@lp:~$ netstat -at Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:netbios-ssn *:* LISTEN tcp 0 0 *:sunrpc *:* LISTEN tcp 0 0 lp.local:domain *:* LISTEN tcp 0 0 *:39094 *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 lp.local:46649 grape.canonical.c:https ESTABLISHED tcp 1 0 lp.local:44669 vip1.G-anycast1.ca:http CLOSE_WAIT tcp 1 0 lp.local:47142 198.78.208.254:http CLOSE_WAIT tcp 1 0 lp.local:47145 198.78.208.254:http CLOSE_WAIT
s-
: برای نشون دادن اطلاعات هر پرتکل استفاده میشود مثلا TCP,UDP,ICMP,IPو... .
مثلا برای دیدن فقط اطلاعات tcp :
aliabry@lp:~$ netstat -st IcmpMsg: InType0: 1303 InType3: 186 OutType3: 72 OutType8: 1400 Tcp: 8917 active connections openings 2 passive connection openings 69 failed connection attempts 177 connection resets received 1 connections established 505388 segments received 506139 segments send out 4774 segments retransmited 818 bad segments received. 1685 resets sent UdpLite: TcpExt: 6490 TCP sockets finished time wait in fast timer 3719 delayed acks sent 1 delayed acks further delayed because of locked socket Quick ack mode was activated 6392 times 7 packets directly queued to recvmsg prequeue. 156 bytes directly in process context from backlog 5 bytes directly received in process context from prequeue 186959 packet headers predicted 1 packets header predicted and directly queued to user 10074 acknowledgments not containing data payload received 4184 predicted acknowledgments 3 times recovered from packet loss by selective acknowledgements 7 congestion windows recovered without slow start by DSACK 2304 congestion windows recovered without slow start after partial ack 1 TCP data loss events 156 timeouts after SACK recovery 9 timeouts in loss state 3 fast retransmits 53 retransmits in slow start 3437 other TCP timeouts 1 SACK retransmits failed 6378 DSACKs sent for old packets 3134 DSACKs sent for out of order packets 329 DSACKs received 604 connections reset due to unexpected data 152 connections reset due to early user close 97 connections aborted due to timeout TCPDSACKIgnoredNoUndo: 33 TCPSackMerged: 4 TCPSackShiftFallback: 520 IPReversePathFilter: 4 TCPChallengeACK: 827 TCPSYNChallenge: 824 IpExt: InMcastPkts: 940 OutMcastPkts: 649 InBcastPkts: 709 OutBcastPkts: 700 InOctets: 630978953 OutOctets: 39405273 InMcastOctets: 56545 OutMcastOctets: 47393 InBcastOctets: 139093 OutBcastOctets: 136078
c-
: برای دیدن خروجی به صورت ادامه دار که هر یک ثانیه یک خروجی نشون می ده.
اگر با دستور زیر اپشن n-
رو هم به کار ببرین , خیلی بهتر اپدیت شدن خروجی رو احساس می کنین .
aliabry@lp:~$ netstat -c Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 lp.local:46649 grape.canonical.c:https ESTABLISHED tcp 1 0 lp.local:44669 vip1.G-anycast1.ca:http CLOSE_WAIT tcp 1 0 lp.local:47142 198.78.208.254:http CLOSE_WAIT
v-
: برای دیدن اطلاعات بیشتر در مورد وقایعی که درحال رخ دادن هست که البته در اخر خروجی این اپشن از ادرس هایی (address families) که سیستممون پشتیبانی نمیکنه رو هم نشون میده
aliabry@lp:~$ netstat -vn ... netstat: no support for `AF IPX' on this system. netstat: no support for `AF AX25' on this system. netstat: no support for `AF X25' on this system. netstat: no support for `AF NETROM' on this system.
دراین جا خورجی های این دستور رو تشریح یا توضیح ندادیم (مثل Tcp states) که در صفحه man این دستور توضیحاتی در مورد قسمت های مختلف خروجی این دستور امده که از ادرس زیر در دست رس هست :
http://manpages.ubuntu.com/manpages/raring/en/man8/netstat.8.html