testerzhang-Linuxtester-technology

netstat与ss命令

2019-02-19  本文已影响0人  testerzhang

1. netstat命令

netstat命令用来打印Linux网络系统的状态信息。

语法:

#  netstat  -h
usage: netstat [-veenNcCF] [<Af>] -r         netstat {-V|--version|-h|--help}
       netstat [-vnNcaeol] [<Socket> ...]
       netstat { [-veenNac] -I[<Iface>] | [-veenNac] -i | [-cnNe] -M | -s } [delay]

        -r, --route                display routing table
        -I, --interfaces=[<Iface>] display interface table for <Iface>
        -i, --interfaces           display interface table
        -g, --groups               display multicast group memberships
        -s, --statistics           display networking statistics (like SNMP)
        -M, --masquerade           display masqueraded connections

        -v, --verbose              be verbose
        -n, --numeric              don't resolve names
        --numeric-hosts            don't resolve host names
        --numeric-ports            don't resolve port names
        --numeric-users            don't resolve user names
        -N, --symbolic             resolve hardware names
        -e, --extend               display other/more information
        -p, --programs             display PID/Program name for sockets
        -c, --continuous           continuous listing

        -l, --listening            display listening server sockets
        -a, --all, --listening     display all sockets (default: connected)
        -o, --timers               display timers
        -F, --fib                  display Forwarding Information Base (default)
        -C, --cache                display routing cache instead of FIB
        -T, --notrim               stop trimming long addresses
        -Z, --context              display SELinux security context for sockets

  <Iface>: Name of interface to monitor/list.
  <Socket>={-t|--tcp} {-u|--udp} {-S|--sctp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom
  <AF>=Use '-A <af>' or '--<af>'; default: inet
  List of possible address families (which support routing):
    inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25) 
    netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP) 
    x25 (CCITT X.25) 

具体参数:

-n或--numeric:直接使用ip地址,而不通过域名服务器;
-p或--programs:显示正在使用Socket的程序识别码和程序名称
-t或--tcp:显示TCP传输协议的连线状态
-u或--udp:显示UDP传输协议的连线状况
-a或--all:显示所有连线中的Socket;
-s或--statistics:显示网络工作信息统计表

1.1 常用命令

# 列出所有端口
# netstat -a    

#列出所有TCP端口
# netstat -at  

#列出所有UDP端口 
# netstat -au   
#只显示监听端口
# netstat -l    

#只列出所有监听TCP端口
# netstat -lt   

#只列出所有监听UDP端口
# netstat -lu  

#只列出所有监听UNIX端口
# netstat -lx  
# netstat  -pt
# netstat  -an
# netstat -r

使用netstat -rn 显示数字格式,不显示主机名称

1.2 经常使用的命令

# netstat -nap |grep 具体端口号
# netstat -na | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 

2. ss命令

ss命令用于查看本机的端口连接状态

语法:

$ ss -h
Usage: ss [ OPTIONS ]
       ss [ OPTIONS ] [ FILTER ]
   -h, --help           this message
   -V, --version        output version information
   -n, --numeric        don't resolve service names
   -r, --resolve       resolve host names
   -a, --all            display all sockets
   -l, --listening      display listening sockets
   -o, --options       show timer information
   -e, --extended      show detailed socket information
   -m, --memory        show socket memory usage
   -p, --processes      show process using socket
   -i, --info           show internal TCP information
   -s, --summary        show socket usage summary

   -4, --ipv4          display only IP version 4 sockets
   -6, --ipv6          display only IP version 6 sockets
   -0, --packet display PACKET sockets
   -t, --tcp            display only TCP sockets
   -u, --udp            display only UDP sockets
   -d, --dccp           display only DCCP sockets
   -w, --raw            display only RAW sockets
   -x, --unix           display only Unix domain sockets
   -f, --family=FAMILY display sockets of type FAMILY

   -A, --query=QUERY
       QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]

   -F, --filter=FILE   read filter information from FILE
       FILTER := [ state TCP-STATE ] [ EXPRESSION ]

具体的参数:

参数  作用
-a  显示所有的套接字
-l  显示所有连接状态的套接字
-e  显示详细的套接字信息
-m  显示套接字的内存使用情况
-p  显示套接字的进程信息
-4  显示ipv4的套接字信息
-6  显示ipv6的套接字信息
-t  仅显示tcp的套接字信息
-u  仅显示udp的套接字信息
-n  不解析主机名(提升速度)
-r, --resolve 把 IP 解释为域名,把端口号解释为协议名称 
-x, --unix 显示 unix domain sockets,与 -f 选项相同
-s  查看概述

2.1 常用命令

$ ss -tnl
$ ss -tlr
$ ss -tlp

Recv-Q Send-Q           Local Address:Port               Peer Address:Port   
0      0                    127.0.0.1:2208                          *:*        users:(("hpiod",2841,0))
0      0                            *:9090                          *:*        users:(("redis-server",17961,5))
0      0                            *:hello-port                       *:*        users:(("rpc.statd",2590,7))
0      0                            *:sunrpc                        *:*        users:(("portmap",2536,4))
0      0                            *:ssh                           *:*        users:(("sshd",4372,4))
0      0                            *:telnet                        *:*        users:(("xinetd",19846,5))
0      0                    127.0.0.1:ipp                           *:*        users:(("cupsd",2869,4))
0      0                            *:postgres                       *:*        users:(("python",26279,3),("python",26282,3),("python",26282,5))
$ ss -tna
# ss dst 192.168.111.3

# ss dst 192.168.111.3:48926
# ss src 192.168.119.103:80

(注意下面命令中的转义符和空格,都是必须的。如果不用转义符,可以使用单引号)

显示established状态的源端口是8356或者目标端口是10021,且目的地址是192.168.59.37所有 TCP 套接字:

# ss state established \( sport = :8356 or dport = :10021 \) dst 192.168.59.37

# ss state established '( sport = :8356 or dport = :10021 )'  dst 192.168.59.37  

2.2 经常使用的命令

# ss -nap|grep 端口号
上一篇下一篇

猜你喜欢

热点阅读