netstat与ss命令

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   
  • 列出所有处于监听状态的Sockets
#只显示监听端口
# netstat -l    

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

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

#只列出所有监听UNIX端口
# netstat -lx  
  • 在netstat输出中显示PID和进程名称
# netstat  -pt
  • 在netstat输出中不显示主机,端口和用户名(host,port or user)
# 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
  • 通过 -r 选项解析 IP 和端口号
$ ss -tlr
  • 使用 -p 选项查看监听端口的程序名称
$ 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))
  • 查看建立的 TCP 连接

    -a --all 对 TCP 协议来说,既包含监听的端口,也包含建立的连接

$ 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 端口号
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,386评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,142评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,704评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,702评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,716评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,573评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,314评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,230评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,680评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,873评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,991评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,706评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,329评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,910评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,038评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,158评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,941评论 2 355

推荐阅读更多精彩内容

  • 18.1 引言 TCP是一个面向连接的协议。无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。本章将...
    张芳涛阅读 3,383评论 0 13
  • 运行操作 CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本、文件系统版本) CM...
    小明yz阅读 2,760评论 0 8
  • 运行操作 CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本、文件系统版本) CM...
    小沐子_IT阅读 2,117评论 0 4
  • 命令简介 cmd是command的缩写.即命令行 。 虽然随着计算机产业的发展,Windows 操作系统的应用越来...
    Littleston阅读 3,319评论 0 12
  • win7 cmd管理员权限设置 net localgroup administrators 用户名 /add 把“...
    f675b1a02698阅读 5,196评论 0 11