运维工程师秘籍:请收好 Linux 网络命令集锦
看着 kali linux 上百个网络命令,我陷入了沉思。专业的网络命令实在是太多了,如果要罗列,上千个也是有的。个人不是渗透测试工作者,大部分功能只知皮毛。所以本文是非常浅显的技术总结,仅聚焦工作中常用到的一些 Linux 命令。 由于nio的普及,ck10k的问题已经成为过去式。现在随便一台服务器,就可以支持数十万级别的连接了。那么我们来算一下,100万的连接需要多少资源。 首先,每一个连接都是文件句柄,所以需要文件描述符数量支持才行,每一个socket内存占用15k-20k之间,这样,仅维护相应 socket,就需要20G内存;而广播一个1KB的消息需要占用的带宽为1000M! 查看当前系统的连接如何看当前系统有多少连接呢?可以使用netstat结合awk进行统计。如下脚本,统计了每一种状态的tcp连接数量 # netstat -antp | awk '{a[$6]++}END{ for(x in a)print x,a[x]}'
LISTEN 41
CLOSE_WAIT 24
ESTABLISHED 150
Foreign 1
TIME_WAIT 92 但如果你在一台有上万连接的服务器上执行这个命令,你可能会等上很长时间。所以,我们有了第二代网络状态统计工具:netstat => ss。 # ss -s
Total: 191 (kernel 220)
TCP: 5056 (estab 42, closed 5000, orphaned 3, synrecv 0, timewait 5000/0), ports 3469
... netstat属于net-tools工具集,而ss属于iproute。其命令对应如下,是时候和 net-tools 说 Bye 了。 ss命令 基本使用 我们按照使用场景来看下ss的用法。 查看系统正在监听的tcp连接 ss -atr
ss -atn #仅ip 查看系统中所有连接 ss -alt 查看监听444端口的进程 pid ss -ltp | grep 444 查看进程555占用了哪些端口 ss -ltp | grep 555 显示所有 UDP 连接 ss -u -a 查看TCP sockets,使用-ta选项 查看UDP sockets,使用-ua选项 查看RAW sockets,使用-wa选项 查看UNIX sockets,使用-xa选项 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |