Linux怎么使用ss命令查看系统的socket状态

Linux怎么使用ss命令查看系统的socket状态,第1张

ss是Socket Statistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。可能你不会有切身的感受,但请相信我,当服务器维持的连接达到上万个的时候,使用netstat等于浪费 生命,而用ss才是节省时间。天下武功唯快不破。ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效。当然,如果你的系统中没有tcp_diag,ss也可以正常运行,只是效率会变得稍慢。(但仍然比 netstat要快。)命令格式:ss [参数]ss [参数] [过滤] 2.命令功能:ss(Socket Statistics的缩写)命令可以用来获取 socket统计信息,此命令输出的结果类似于 netstat输出的内容,但它能显示更多更详细的 TCP连接状态的信息,且比 netstat 更快速高效。它使用了 TCP协议栈中 tcp_diag(是一个用于分析统计的模块),能直接从获得第一手内核信息,这就使得 ss命令快捷高效。在没有 tcp_diag,ss也可以正常运行。   3.命令参数:-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=QUERYQUERY := {allinettcpudprawunixpacketnetlink}[,QUERY]-D, --diag=FILE 将原始TCP套接字(sockets)信息转储到文件-F, --filter=FILE 从文件中都去过滤器信息FILTER := [ state TCP-STATE ] [ EXPRESSION ]4.使用实例:实例1:显示TCP连接命令:ss -t -a输出:代码如下:[root@localhost ~]# ss -t -aState Recv-Q Send-Q Local Address:Port Peer Address:PortLISTEN 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[root@localhost ~]#实例2:显示 Sockets 摘要命令:ss -s输出: 代码如下:[root@localhost ~]# ss -sTotal: 34 (kernel 48)TCP: 4 (estab 1, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 3《/p》 《p》Transport Total IP IPv6* 48 - -RAW 0 0 0UDP 5 5 0TCP 4 4 0INET 9 9 0FRAG 0 0 0[root@localhost ~]#说明:列出当前的established, closed, orphaned and waiting TCP sockets实例3:列出所有打开的网络连接端口命令:ss -l输出:代码如下:[root@localhost ~]# ss -lRecv-Q Send-Q Local Address:Port Peer Address:Port0 0 127.0.0.1:smux *:*0 0 *:3690 *:*0 0 *:ssh *:*[root@localhost ~]#实例4:查看进程使用的socket命令:ss -pl输出:代码如下:[root@localhost ~]# ss -plRecv-Q Send-Q Local Address:Port Peer Address:Port0 0 127.0.0.1:smux *:* users:((“snmpd”,2716,8))0 0 *:3690 *:* users:((“svnserve”,3590,3))0 0 *:ssh *:* users:((“sshd”,2735,3))[root@localhost ~]#实例5:找出打开套接字/端口应用程序命令:ss -lp grep 3306输出:代码如下:[root@localhost ~]# ss -lpgrep 19350 0 *:1935 *:* users:((“fmsedge”,2913,18))0 0 127.0.0.1:19350 *:* users:((“fmsedge”,2913,17))[root@localhost ~]# ss -lpgrep 33060 0 *:3306 *:* users:((“mysqld”,2871,10))[root@localhost ~]#实例6:显示所有UDP Sockets命令:ss -u -a输出:代码如下:[root@localhost ~]# ss -u -aState Recv-Q Send-Q Local Address:Port Peer Address:PortUNCONN 0 0 127.0.0.1:syslog *:*UNCONN 0 0 *:snmp *:*ESTAB 0 0 192.168.120.203:39641 10.58.119.119:domain[root@localhost ~]#实例7:显示所有状态为established的SMTP连接命令:ss -o state established ‘( dport = :smtp or sport = :smtp )’输出:代码如下:[root@localhost ~]# ss -o state established ‘( dport = :smtp or sport = :smtp )’Recv-Q Send-Q Local Address:Port Peer Address:Port[root@localhost ~]#实例8:显示所有状态为Established的HTTP连接命令:ss -o state established ‘( dport = :http or sport = :http )’输出:代码如下:[root@localhost ~]# ss -o state established ‘( dport = :http or sport = :http )’Recv-Q Send-Q Local Address:Port Peer Address:Port0 0 75.126.153.214:2164 192.168.10.42:http[root@localhost ~]# 实例9:列举出处于 FIN-WAIT-1状态的源端口为 80或者 443,目标网络为 193.233.7/24所有 tcp套接字命令:ss -o state fin-wait-1 ‘( sport = :http or sport = :https )’ dst 193.233.7/24实例10:用TCP 状态过滤Sockets:命令:代码如下:ss -4 state FILTER-NAME-HEREss -6 state FILTER-NAME-HERE输出:代码如下:[root@localhost ~]#ss -4 state closingRecv-Q Send-Q Local Address:Port Peer Address:Port1 11094 75.126.153.214:http 192.168.10.42:4669说明:FILTER-NAME-HERE 可以代表以下任何一个:代码如下:establishedsyn-sentsyn-recvfin-wait-1fin-wait-2time-waitclosedclose-waitlast-acklistenclosingall : 所有以上状态connected : 除了listen and closed的所有状态synchronized :所有已连接的状态除了syn-sentbucket : 显示状态为maintained as minisockets,如:time-wait和syn-recv.big : 和bucket相反。实例11:匹配远程地址和端口号命令:代码如下:ss dst ADDRESS_PATTERNss dst 192.168.1.5ss dst 192.168.119.113:httpss dst 192.168.119.113:smtpss dst 192.168.119.113:443输出:代码如下:[root@localhost ~]# ss dst 192.168.119.113State Recv-Q Send-Q Local Address:Port Peer Address:PortESTAB 0 0 192.168.119.103:16014 192.168.119.113:20229ESTAB 0 0 192.168.119.103:16014 192.168.119.113:61056ESTAB 0 0 192.168.119.103:16014 192.168.119.113:61623ESTAB 0 0 192.168.119.103:16014 192.168.119.113:60924ESTAB 0 0 192.168.119.103:16050 192.168.119.113:43701ESTAB 0 0 192.168.119.103:16073 192.168.119.113:32930ESTAB 0 0 192.168.119.103:16073 192.168.119.113:49318ESTAB 0 0 192.168.119.103:16014 192.168.119.113:3844[root@localhost ~]# ss dst 192.168.119.113:httpState Recv-Q Send-Q Local Address:Port Peer Address:Port[root@localhost ~]# ss dst 192.168.119.113:3844State Recv-Q Send-Q Local Address:Port Peer Address:PortESTAB 0 0 192.168.119.103:16014 192.168.119.113:3844[root@localhost ~]#实例12:匹配本地地址和端口号命令:代码如下:ss src ADDRESS_PATTERNss src 192.168.119.103ss src 192.168.119.103:httpss src 192.168.119.103:80ss src 192.168.119.103:smtpss src 192.168.119.103:25输出:代码如下:[root@localhost ~]# ss src 192.168.119.103:16021State Recv-Q Send-Q Local Address:Port Peer Address:PortESTAB 0 0 192.168.119.103:16021 192.168.119.201:63054ESTAB 0 0 192.168.119.103:16021 192.168.119.201:62894ESTAB 0 0 192.168.119.103:16021 192.168.119.201:63055ESTAB 0 0 192.168.119.103:16021 192.168.119.201:2274ESTAB 0 0 192.168.119.103:16021 192.168.119.201:44784ESTAB 0 0 192.168.119.103:16021 192.168.119.201:7233ESTAB 0 0 192.168.119.103:16021 192.168.119.103:58660ESTAB 0 0 192.168.119.103:16021 192.168.119.201:44822ESTAB 0 0 192.168.119.103:16021 10.2.1.206:56737ESTAB 0 0 192.168.119.103:16021 10.2.1.206:57487ESTAB 0 0 192.168.119.103:16021 10.2.1.206:56736ESTAB 0 0 192.168.119.103:16021 10.2.1.206:64652ESTAB 0 0 192.168.119.103:16021 10.2.1.206:56586ESTAB 0 0 192.168.119.103:16021 10.2.1.206:64653ESTAB 0 0 192.168.119.103:16021 10.2.1.206:56587[root@localhost ~]#实例13:将本地或者远程端口和一个数比较命令:代码如下:ss dport OP PORTss sport OP PORT输出:代码如下:[root@localhost ~]# ss sport = :http[root@localhost ~]# ss dport = :http[root@localhost ~]# ss dport \》 :1024[root@localhost ~]# ss sport \》 :1024[root@localhost ~]# ss sport \《 :32000[root@localhost ~]# ss sport eq :22[root@localhost ~]# ss dport != :22[root@localhost ~]# ss state connected sport = :http[root@localhost ~]# ss \( sport = :http or sport = :https \)[root@localhost ~]# ss -o state fin-wait-1 \( sport = :http or sport = :https \) dst 192.168.1/24说明:ss dport OP PORT 远程端口和一个数比较;ss sport OP PORT 本地端口和一个数比较。OP 可以代表以下任意一个:《= or le : 小于或等于端口号》= or ge : 大于或等于端口号== or eq : 等于端口号!= or ne : 不等于端口号《 or gt : 小于端口号》 or lt : 大于端口号实例14:ss 和 netstat 效率对比命令:代码如下:time netstat -attime ss输出:代码如下:[root@localhost ~]# time ssreal 0m0.739suser 0m0.019ssys 0m0.013s[root@localhost ~]#[root@localhost ~]# time netstat -atreal 2m45.907suser 0m0.063ssys 0m0.067s[root@localhost ~]#说明:用time 命令分别获取通过netstat和ss命令获取程序和概要占用资源所使用的时间。在服务器连接数比较多的时候,netstat的效率完全没法和ss比。

文件名称区分大小写

文件名最长255个字符

包括路径在内文件名称最长4095个字节

蓝色-->目录:绿色-->可执行文件:红色-->压缩文件:浅蓝色-->链接文件:灰色-->其它文件

除了斜杠和NUL,所有字符都有效,使用特殊字符的目录名和文件不推荐使用,有些字符需要加引号来引用

标准Linux文件系统,文件名称大小写敏感

/boot: 内核引导文件存放目录

/bin: 所有用户使用的基本命令不能关联至独立分区,系统启动会用到的程序

/sbin: 管理类的基本命令不能关联至独立分区,系统启动会用到的程序

/lib: 系统启动时程序依赖的基本共享库文件及内核模块文件(/lib/modules)

/etc: 配置文件目录

/home: 普通用户家目录

/root: 管理员家目录

/media: 便携式移动设备挂载点

/mnt: 临时文件系统挂载点

/dev: 设备文件及特殊文件存储位置

/opt: 第三方应用程序安装位置,同/usr/local

/srv: 系统服务用到的数据

/tmp: 存储临时文件

/usr: 系统软件资源存放目录

/var: 系统运行时的可变动数据:/var/tmp:系统两次重启产生的临时数据

/proc: 内核与进程信息相关的虚拟文件系统

/sys: 硬件设备相关信息的虚拟文件系统

/selinux: selinux安全策略

meta data: 

    文件类型,权限,UID,GID

    链接数(指向这个文件名路径名称个数)

    该文件的大小和不同的时间戳

    指向磁盘上文件的数据块指针

    有关文件的其他数据

        文件类型:

            -: 普通文件

            d: 目录文件

            b: 块设备

            c: 字符设备

            l: 符号链接文件

            p: 管道文件pipe

            s: 套接字文件socket

        查看方式:

            使用ll,ls -l: 看第一个字符,链接数,

            ls -lih:

                inode编号,文件类型,文件权限,硬链接个数,文件属主,文件属组,文件大小,文件修改时间

            file命令,type命令,

            stat命令: 文件详细信息,修改时间mtime,改变时间ctime,访问时间atime

            du -sm filename: 查看文件大小

            文件扩展名:

                源码.tar、.tar.gz、.tgz、.zip、.tar.bz表示压缩文件,创建命令一般为tar,gzip,zip等。

                .sh表示shell脚本文件,通过shell语言开发的程序。

                .pl表示perl语言文件,通过perl语言开发的程序。

                .py表示python语言文件,通过python语言开发的程序。

                .html、.htm、.php、.jsp、.do表示网页语言的文件。

                .conf表示系统服务的配置文件。

                .rpm表示rpm安装包文件。

        touch: 创建空文件和刷新时间戳

            touch [OPTION]... FILE...

                -a: 改变atime和ctime

                -m: 改变mtime和ctime

                -t: [[CC[YY[MMDDhhmm[.ss]]]]]

                    指定atime和mtime的时间戳

                -c: 如果文件不存在,则不予创建 

硬链接:

    同一个文件多个名字

    不支持跨分区,不支持目录

    平级关系,删除原始文件不影响打开

    iNode相同,链接数增长

    创建语法,原始文件路径,相对于工作目录的路径

    文件类型,普通文件

    创建方式ln filename [linkname]

软链接:

    与原始文件,不同的文件

    支持跨分区,支持目录

    依赖关系,删除原始文件即失效

    iNode不同,链接数不会增长

    创建语法,原始文件路径,相对于软链接的路径

    文件类型显示l

    创建方式ln -s filename [linkname]

实例说明:

    cd ../data

    mkdir -pv d1/d2

    touch linux.txt

    ln linux.txt d1/d2/linux.hlink

    ln -s ../../linux.txt d1/d2/linux.slink

    ln -s ../d2 d1/d2/d2.slink

    tree

    执行如图:

stat: 查看文件状态

    示例: stat /etc/issue

        stat/etc/motd

touch: 创建空文件和刷新时间

    touch [OPTION]... FILE...

        -a: 仅改变atime和ctime

        -m: 仅改变mtime和ctime

        -t: 指定atime和mtime时间戳

        -c: 如果文件不存在,则不予创建

    示例: touch /data/f1

cp: 复制文件和目录

    cp [OPTION]... SOURCE... DIRECTORY

        -i: 覆盖前提示

        -n: 不覆盖

        -r,-R: 递归复制目录及内部的所有内容

        -a: 归档,相当于-dR --preserv=all

        -p: 等同--preserv=mode,ownership,timestamp

        -u: 只复制源比目标更新或目标不存在

        -b: 目标存在,覆盖前先备份filename~

        --backup=numbered: 目标存在,覆盖前先备份并加数字后缀

    cp SRC DEST

        SRC是文件:

            如果目标不存在: 新建DEST,并将SRC中内容填充至DEST中

            如果目标存在:

                如果DEST是文件: 将SRC中内容覆盖至DEST中

                如果DEST是目录: 在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中

        SRC是多个文件:

            DEST必须存在,且为目录

        SRC是目录: 使用选项-r

            如果DEST不存在: 则创建指定目录,复制SRC目录中所有文件至DEST中

            如果DEST存在:

                如果DEST是文件: 报错

                如果DEST是目录:在DEST下新建与原目录同名的目录,并将SRC中内容复制至新目录中

    示例: mkdir -p /data/backup

        cp -ab /etc/issue /etc/passwd /etc/group /data/backup

mv: 移动和重命名文件

    mv [OPTION]... SOURCE... DIRECTORY

        -f: 强制

        -b: 目标存在,覆盖前先备份

    示例: mv /etc/issue /data

        mv /etc/issue /data/issue.bak

rm: 删除

    rm [OPTION]... FILE...

        -f: 强制删除

        -r: 递归

        --no-preserve-root 删除/

    示例: rm -rf /data/d1/d2

tree: 显示目录树

    -d:只显示目录

    -L level: 指定显示的层级数目

    -P pattern: 只显示由指定pattern匹配到的路径

    示例: tree /data

ls:列出指定目录下的内容

    ls [OPTION]... [FILE]...

 -a:显示所有文件包括隐藏文件

 -A:显示除.和..之外的所有文件

 -l,--long:显示文件的详细属性信息

 -h:对文件大小进行单位换算,可能影响精度

 -d:查看目录本身而非其内部的文件

 -r:逆序显示文件

 -R:递归显示文件

    示例:ls -lah / 详细显示/目录下的所有文件(包括隐藏文件)

mkdir:创建目录

    mkdir [OPTION]... DIRECTORY...

 -p:自动按需创建父目录

 -m:创建目录时给定权限

    示例: mkdir -p /data/test/A/B

cat:正向查看文本内容

    cat [OPTION]... [FILE]...

 -n:给显示的文本行编号

 -E:显示行结束符号$

    示例: cat -n /etc/fstab

tail:显示文本内容,默认显示后10行

    tail [OPTION]... [FILE]...

 -n #:显示文本后#行内容

 -f:查看文件尾部内容结束后不退出,跟随显示新增的行

    示例: tail -8 /etc/passwd

head:显示文本内容,默认显示头10行

    head [OPTION]... [FILE]...

  -n #:显示文本头#行内容

    示例: head -5 /etc/passwd

less:分屏显示文本内容,不主动退出

    less [options] file [...]

 Space键:显示文本下一屏内容

 Enter键:只显示文本下一行内容

 b键:显示文本上一屏内容

 q键:退出

cp /etc/profile /tmp

vim /tmp/profile

    :%s/^\s\+//

如图:

命令模式下输入:

    :set tabstop=4

或写入用户配置文件~/.vimrc

您的位置: Linux系统教程 >Linux技巧 >

cenots下从官网安装composer无法安装的解决办法

时间:2016-01-04来源:linux网站 作者:路过暴风

composer官网下的安装方法如下:

curl -sS https://getcomposer.org/installer | php

mv composer.phar /usr/local/bin/composer

然而,有时官网会连接不上,造成这一步卡住,失败,此时可以去官网(一般可以访问)查看下载地址,直接使用wget下载composer.phar:

wget https://getcomposer.org/download/1.0.0-alpha11/composer.phar

然而有时,这一步也不好使,此时可以在windows下使用迅雷下载链接,然后上传到服务器,然后执行mv语句,之后需要使用chmod修改文件权限为可执行,不然执行时会报错:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7619047.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存