Thứ Tư, 3 tháng 9, 2014

Sáu netstat commands hữu dụng.

Về netstat command, tớ đã có một bài giới thiệu sơ qua tại đây:
http://swdream.familug.org/search?q=netstat

Bài này giới thiệu một số câu lệnh netstat mà tớ cho là khá hữu dụng => lưu lại phòng khi dùng đến.

1. List tất cả các port ( bao gồm cả các port đang và không được listen).
netstat -a
root@Thanhnt:~# netstat -a | more
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State     
tcp        0      0 localhost:mysql         *:*                     LISTEN    
tcp        0      0 *:8461                  *:*                     LISTEN    
tcp        0      0 *:http                  *:*                     LISTEN    
tcp        0      0 localhost:domain        *:*                     LISTEN    
tcp        0      0 localhost:ipp           *:*                     LISTEN    
tcp        1      0 Thanhnt.local:53166     10.2.20.14:http         CLOSE_WAIT
tcp


unix  2      [ ACC ]     STREAM     LISTENING     1795     /var/run/openvswitch/db.sock
unix  2      [ ACC ]     STREAM     LISTENING     1797     /var/run/openvswitch/ovsdb-server.1236.ctl

List tất cả các tcp ports.
netstat -at
List tất cả các UDP ports.
netstat -au
2. List tất cả các Sockets đang ở listenning state.
netstat -l
netstat -lt: list các TCP port đang ở trạng thái listenning.
netstart -lu: list tất cả các UDP port đang ở trạng thái listenning.
netstat -lx: list tất cả các UNIX port đang ở trạng thái listenning.

3.  Hiển thị statistics cho mỗi protocol.
Cho tất cả các port:
netstat -s
root@Thanhnt:~# netstat -s
Ip:
    898786 total packets received
    0 forwarded
    0 incoming packets discarded
    815867 incoming packets delivered
    598561 requests sent out
    4 fragments failed
Icmp:
    353 ICMP messages received
    40 input ICMP message failed.
    ICMP input histogram:
        destination unreachable: 352
     eachable: 54
        echo replies: 1
Tcp:
    11113 active connections openings
    74 passive connection openings
    121 failed connection attempts

    552537 segments send out
    2181 segments retransmited
    1528 bad segments received.
    2674 resets sent

Sử dụng cho TCP hoặc UDP port dùng:
netstat -su
netstat -st

4. Hiển thị thông tin về Kernel IP routing table.
netstat -r
root@Thanhnt:~# netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         192.168.25.1    0.0.0.0         UG        0 0          0 eth0
10.0.0.0        172.22.2.1      255.255.255.0   UG        0 0          0 tap0
10.2.0.0        172.22.2.1      255.255.0.0     UG        0 0          0 tap0
static.vdc.vn   172.22.2.1      255.255.255.255 UGH       0 0          0 tap0
static.vdc.vn   172.22.2.1      255.255.255.255 UGH       0 0          0 tap0
link-local      *               255.255.0.0     U         0 0          0 eth0
172.22.2.0      *               255.255.255.0   U         0 0          0 tap0


5. Tìm ra một chương trình đang chạy trên port nào.

netstat -ap | grep ssh

root@Thanhnt:~# netstat -ap | grep ssh
tcp        0      0 Thanhnt.local:37778     10.2.20.33:ssh          ESTABLISHED 13692/ssh      
tcp        0      0 Thanhnt.local:57091     static.vdc.vn:ssh       ESTABLISHED 10145/ssh      
tcp        0      0 Thanhnt.local:36936     10.2.20.14:ssh          ESTABLISHED 13565/ssh      
tcp        0      0 Thanhnt.local:60074     10.2.28.5:ssh           ESTABLISHED 5929/ssh       
unix  2      [ ACC ]     STREAM     LISTENING     10966    2115/ssh-agent      /tmp/ssh-mSSWnCAm2078/agent.2078
unix  2      [ ACC ]     STREAM     LISTENING     12176    2067/gnome-keyring- /tmp/keyring-rnUBR5/ssh

Tìm ra các process đang chạy trên một port nào đó:
netstat -an | grep ':80'

root@Thanhnt:~# netstat -an | grep ':80'
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN    
tcp        1      0 172.22.2.3:53166        10.2.20.14:80           CLOSE_WAIT
tcp        1      0 172.22.2.3:53164        10.2.20.14:80           CLOSE_WAIT
tcp        1      0 192.168.25.80:57606     209.20.75.76:80         CLOSE_WAIT

6. Hiển thị list các network interfaces.
netstat -i
root@Thanhnt:~# 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   1057433      0      1 0        562879      0      0      0 BMRU
lo        65536 0     29219      0      0 0         29219      0      0      0 LRU
tap0       1500 0      8528      0      0 0          8876      0      0      0 BMRU

Để hiển thị chi tiết hơn về các network interfaces:
netstart -ie

root@Thanhnt:~# netstat -ie
Kernel Interface table
eth0      Link encap:Ethernet  HWaddr 50:46:5d:50:39:ed 
          inet addr:192.168.25.80  Bcast:192.168.25.255  Mask:255.255.255.0
          inet6 addr: fe80::5246:5dff:fe50:39ed/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1057539 errors:0 dropped:1 overruns:0 frame:0
          TX packets:562891 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:813483799 (813.4 MB)  TX bytes:63295041 (63.2 MB)


bonus: sẽ rất hữu dụng nếu bạn có thể kết hợp "netstat" với một số lệnh khác như "grep"...

3 nhận xét:

  1. 4. Kernel IP routing table. routing table là từ hay được nhắc đến chứ không phải "kernel routing"

    Lệnh netstat -l được dùng nhiều hơn lệnh ở mục 5 nhưng lại không có ví dụ.

    Netstat đã cũ và dần được thay thế bởi lệnh ss (với các option tương tự). BTW, với các os khác như OS X, BSDs, lệnh netstat vẫn được sử dụng bình thường.

    Hai bài viết về ss đơn giản có ở http://www.familug.org/search/label/ss

    Trả lờiXóa
  2. Sáu netstat command lines => 6 netstat command hữu dụng,

    Trả lờiXóa
  3. ok, thank you so much!
    lần sau nhớ để lại tên tuổi để cám ơn nhé :D

    Trả lờiXóa