Skip to content

Latest commit

 

History

History
157 lines (101 loc) · 4.14 KB

Linux-查看socket连接信息和端口占用.md

File metadata and controls

157 lines (101 loc) · 4.14 KB

1)查找被占用的端口

    $ netstat -tlnp
    $ netstat -tlnp | grep 8083

    $ netstat -tlnp 查看端口使用情况,而 netstat -tln | grep 8083 则是只查看端口8083的使用情况.

    $ netstat -tunlp | grep 22

    $ netstat -anp 显示系统端口使用情况

    $ netstat -lnp 较简单的参数

2)查看端口属于哪个程序?端口被哪个进程占用

    $ lsof -i:8083

    $ lsof -i:21

3)查看 TCP/IP 的具体链接情况

定时刷新 TCP/IP 的状态 (每秒刷新一次, watch -n [Interval Seconds])

    $ watch -n 1 ss -s

4)Socket Statistics

ss 是 Socket Statistics 的缩写。顾名思义,ss 命令可以用来获取 socket 统计信息,它可以显示和 netstat 类似的内容。但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快速更高效。

(CentOS 里要先安装 IPRoute2)

    $ ss -anltp

命令参数:

    -h, --help	    帮助信息
    -V, --version	程序版本信息
    -n, --numeric	不解析服务名称
    -r, --resolve   解析主机名
    -a, --all	    显示所有套接字(sockets)
    -l, --listening	显示监听状态的套接字(sockets)
    -o, --options   显示计时器信息
    -e, --extended  显示详细的套接字(sockets)信息
    -m, --memory    显示套接字(socket)的内存使用情况
    -p, --processes	显示使用套接字(socket)的进程
    -i, --info	    显示 TCP内部信息
    -s, --summary	显示套接字(socket)使用概况
    -4, --ipv4      仅显示IPv4的套接字(sockets)
    -6, --ipv6      仅显示IPv6的套接字(sockets)
    -0, --packet	显示 PACKET 套接字(socket)
    -t, --tcp	    仅显示 TCP套接字(sockets)
    -u, --udp	    仅显示 UCP套接字(sockets)
    -d, --dccp	    仅显示 DCCP套接字(sockets)
    -w, --raw	    仅显示 RAW套接字(sockets)
    -x, --unix	    仅显示 Unix套接字(sockets)
    -f, --family=FAMILY  显示 FAMILY类型的套接字(sockets),FAMILY可选,支持  unix, inet, inet6, link, netlink
    -A, --query=QUERY, --socket=QUERY
        QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
    -D, --diag=FILE     将原始TCP套接字(sockets)信息转储到文件
    -F, --filter=FILE  从文件中都去过滤器信息
        FILTER := [ state TCP-STATE ] [ EXPRESSION ]

实例1:显示TCP连接

    $ ss -t -a
    
    State      Recv-Q Send-Q       Local Address:Port          Peer Address:Port
    LISTEN     0      0                127.0.0.1:smux                     *:*
    LISTEN     0      0                        *:3690                     *:*
    LISTEN     0      0                        *:ssh                      *:*
    ESTAB      0      0          192.168.120.204:ssh              10.2.0.68:49368

实例2:显示 Sockets 摘要

    $ ss -s
    
    Total: 34 (kernel 48)
    TCP:   4 (estab 1, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 3
    
    Transport Total     IP        IPv6
    *         48        -         -
    RAW       0         0         0
    UDP       5         5         0
    TCP       4         4         0
    INET      9         9         0
    FRAG      0         0         0

实例3:列出所有打开的网络连接端口

    $ ss -l
    
    Recv-Q Send-Q       Local Address:Port           Peer Address:Port
    0      0                127.0.0.1:smux                      *:*
    0      0                        *:3690                      *:*
    0      0                        *:ssh                       *:*

实例4:查看进程使用的socket

    $ ss -pl

实例5:找出打开套接字/端口应用程序

    $ ss -lp | grep 3306

实例6:显示所有UDP Sockets

    $ ss -u -a

实例7:显示所有状态为Established的HTTP连接

    $ ss -o state established '( dport = :http or sport = :http )'

See: http://www.cnblogs.com/peida/archive/2013/03/11/2953420.html