常用的几个分析问题会用到的指令

1. 查看tcp连接状态
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

2. 让TIME_WAIT状态可以重用,这样即使TIME_WAIT占满了所有端口,也不会拒绝新的请求造成障碍. tcp_tw_reuse 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭
echo "1" > /proc/sys/net/ipv4/tcp_tw_reuse

3. 让TIME_WAIT尽快回收,我也不知是多久,观察大概是一秒钟. 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭.
echo "1" > /proc/sys/net/ipv4/tcp_tw_recycle

4. 查看系统本地可用端口极限值
cat /proc/sys/net/ipv4/ip_local_port_range

5. 查看timestamps参数是否开启(boolean类型, 默认1,表示开启)
vim /proc/sys/net/ipv4/tcp_timestamps

6. 查看系统控制文件
vi /etc/sysctl.conf

7. 查看影响connect timeout根源的三个参数。默认情况这三个值应该是1,0,0
sysctl -a |grep -E 'timestamp|reuse|recycle'

8. tcpdump指令
sudo tcpdump tcp -vv -i eth1 and src 10.90.9.20

这里,有另外一个需要了解的知识点,就是TCP协议的基本三次握手建立连接和四次握手拜拜的逻辑示意图。

原文地址:https://www.cnblogs.com/shihuc/p/9622293.html