1. tcp的11种状态ss -ant -a 表示看所有状态 -n 表示不将ip解析为主机名 -t 表示tcp1.1. closed状态客户端、服务端客户端发起建立连接前的状态服务端启动服务前的状态1.2. listen状态服务端服务端软件运行的时候状态监听状态服务端等待建立连接1.3. syn_sent状态客户端客户端发送SYN请求连接后由closed状态--syn_sent状态1.4. syn_rcvd状态服务端服务端收到客户端SYN请求回复了ACK服务端状态listen--syn_rcvdrecevide1.5. established状态客户端、服务端客户端收到了ACKSYN后发出ACK客户端状态由syn_sent--established建立连接服务端收到客户端的ACK后服务端状态变化为established状态1.6. fin_wait1状态客户端客户端先向服务端发送FIN报文请求断开连接状态由established状态--fin_wait1状态1.7. close_wait状态服务端服务端收到FIN后向客户端发送ACK服务端状态由established状态--close_wat状态1.8. fin_wait2状态客户端客户端收到ACK后就由fin_wait1状态--fin_wait2状态此时连接已经断开了一半如果服务器还有数据要发送给客户端就会继续发送1.9. last_ack状态服务端数据传完后服务端就发送FIN报文请求断开连接此时服务器就由close_wait状态--last_ack状态1.10. time_wait状态客户端、服务端客户端收到服务端的FIN后给服务器发送ACK此时客户端进入time_wait状态再过2MSL的时间MSL最大生存时间一般是1分钟后进入closed状态服务端收到ACK后也进入closed状态1.11. 特殊状态closing客户端发送FIN请求断开连接后由于网络故障原因没有收到服务端发送的ACK直接收到了服务端发送来的FIN断开连接请求此时客户端进入closing状态2. 查看tcp状态ss -ant -a 查看所有状态 -n 不反向解析 -t TCP ss -lntup netstat -lntup -l 查看处于监听状态的服务 -n 不反向解析 -t TCP -u UDP -p 进程 #统计TCP状态 ss -ant | awk {print $1} | sort | uniq -c | sort -rnk13. 面试题查看端口是否存在ss -lntup netstat -lntup telnet 10.0.0.210 80 nmap -p 22,80 10.0.0.210 filtered 过滤防火墙拦截 lsof -i:22 lsof 查看所有打开的文件信息4. 查看网络速度iftop -nNBP -i ens33 -n不将ip解析为主机名字 -P显示端口 -N不将端口解析为服务名字 -B将bit转换为Byte -i指定网卡 -ts 1非交互模式每隔1S5. 链路带宽测试工具ipref测试2点之间速度#服务端开启测试等待客户端连接 ipres -s #客户端连接服务端测试带宽速度 ipres -c 10.0.0.2106. mtr命令mtr www.baidu.com mtr --tcp -r -c 2 www.baidu.com --tcp表示使用tcp协议 -r表示生成报告模式非交互模式测试完显示在屏幕上 -c 2表示测试两次7. wireshark抓包过滤规则7.1. 抓取指定协议icmp #ping 数据包 tcp udp http https数据包tlshttp over tls7.2. 抓取指定端口#过滤出源端口或目的端口口是tcp/80的数据包 tcp.port 80 #过滤出源端口或目的端口口是udp/53的数据包 udp.port 53 #过滤src source 源端口是tcp/80 tcp.srcport 80 #过滤dst destitation 目标端口是tcp/80 tcp.dstport 80 #过滤src source 源端口是udp/53 udp.srcport 53 #过滤dst destitation 目标端口是udp/53 udp.dstport 53 #过滤tcp端口为80并且包含www.baidu.com tcp.port 80 and http ~ www.baidu.com7.3. 抓取指定ip的数据包#过滤源ip或目标ip为百度的数据包 ip.addr 39.156.66.10 #过滤出源ip或目标ip是10.0.0.200数据包 #ip.src表示源ip ip.src 10.0.0.200 #过滤出源ip 10.0.0.200数据包 #ip.dst表示目标ip ip.dst 10.0.0.200 #过滤出目标ip 10.0.0.200数据包7.4. 不固定内容的过滤-比较大小#过滤出端口小于等于1024的数据包 tcp.dstport 10247.5. 与或非#过滤端口号大于等于20 小于等于1024 tcp.port 20 tcp.port 1024 tcp.port 20 and tcp.port 1024 and 并且 or || 或者 ! 取反7.6. tcpdump抓包tcpdump -vvv -nnn -w all.pcap -vvv 表示显示详细的抓包信息 -nnn 表示不要做反向解析 #抓取icmp协议数据包 tcpdump -vvv -nnn icmp #抓取80端口数据包 tcpdump -vvv -nnn port 80 tcpdump -vvv -nnn src port 80 tcpdump -vvv -nnn dst port 80 #抓取指定ip的数据包 tcpdump -vvv -nnn host 10.0.0.200 tcpdump -vvv -nnn src host 10.0.0.200 tcpdump -vvv -nnn dst host 10.0.0.2008. 修改网卡名字麒麟系统1.修改/boot/grub2/grub.cfg配置在以linux开头的行有两行结尾添加 net.ifnames0 biosdevname0 sed -ri.bak /\tlinux/s#$# net.ifnames0 biosdevname0#g /boot/grub2/grub.cfg 2.修改网卡配置文件 NAMEeth0 DEVICEeth0 3.修改网卡名字 mv ifcfg-ens33 ifcfg-eth0 重启linuxcentos系统1.修改/boot/grub2/grub.cfg配置在以linux16开头的行结尾添加 net.ifnames0 biosdevname0 2.修改网卡配置文件的网卡名 NAMEeth0 DEVICEeth0 重启linuxubuntu22.04修改方法1.修改/boot/grub/grub.cfg 在第170行第189行第226行增加biosdevname0 net.ifnames0 sed -i /linux.*vmlinuz/s#$# biosdevname0 net.ifnames0#g /boot/grub2/grub.cfg 2.修改网卡配置文件的网卡名 sed -i s#ens33#eth0#g /etc/netplan/00-installer-config.yaml 重启linux