# 显示本地打开的所有端口
ss -l
# 显示每个进程具体打开的socket
ss -pl
# 显示所有tcp socket
ss -t -a
# 显示所有的UDP Socekt
ss -u -a
# 显示所有已建立的SMTP连接
ss -o state established '( dport = :smtp or sport = :smtp )'# 显示所有已建立的HTTP连接
ss -o state established '( dport = :http or sport = :http )'
找出所有连接X服务器的进程
ss -x src /tmp/.X11-unix/*
列出当前socket统计信息
ss -s
解释:netstat是遍历/proc下面每个PID目录,ss直接读/proc/net下面的统计信息。所以ss执行的时候消耗资源以及消耗的时间都比netstat少很多
netstat
# 输出每个ip的连接数,以及总的各个状态的连接数netstat -n |awk'/^tcp/ {n=split($(NF-1),array,":");if(n<=2)++S[array[(1)]];else++S[array[(4)]];++s[$NF];++N} END {for(a in S){printf("%-20s %s\n", a, S[a]);++I}printf("%-20s %s\n","TOTAL_IP",I);for(a in s) printf("%-20s %s\n",a, s[a]);printf("%-20s %s\n","TOTAL_LINK",N);}'# 统计所有连接状态, # CLOSED:无连接是活动的或正在进行# LISTEN:服务器在等待进入呼叫# SYN_RECV:一个连接请求已经到达,等待确认# SYN_SENT:应用已经开始,打开一个连接# ESTABLISHED:正常数据传输状态# FIN_WAIT1:应用说它已经完成# FIN_WAIT2:另一边已同意释放# ITMED_WAIT:等待所有分组死掉# CLOSING:两边同时尝试关闭# TIME_WAIT:主动关闭连接一端还没有等到另一端反馈期间的状态# LAST_ACK:等待所有分组死掉netstat -n |awk'/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'# 查找较多time_wait连接netstat -n|grep TIME_WAIT|awk'{print $5}'|sort|uniq -c|sort -rn|head -n20