Commands
ss
summary
Total: 1785
TCP: 2635 (estab 1564, closed 1026, orphaned 23, timewait 1013)
Transport Total IP IPv6
RAW 0 0 0
UDP 2 1 1
TCP 1609 768 841
INET 1611 769 842
FRAG 0 0 0
字段 |
数值 |
解释 |
TCP 总数 |
2635 |
所有 TCP socket(各种状态) |
estab |
1564 |
已建立的连接 (ESTABLISHED) |
closed |
1026 |
已关闭的连接 |
orphaned |
23 |
没有归属进程的连接(进程退出但连接未完全关闭) |
timewait |
1013 |
TIME_WAIT 状态连接,表示有很多短连接被快速关闭 |
协议类型 |
总数 |
IPv4 数 |
IPv6 数 |
说明 |
RAW |
0 |
0 |
0 |
原始套接字,通常系统底层用,这里没有 |
UDP |
2 |
1 |
1 |
2 个 UDP socket(1 个 IPv4,1 个 IPv6) |
TCP |
1609 |
768 |
841 |
当前活跃的 TCP socket(不含已关闭) |
INET |
1611 |
769 |
842 |
所有基于 IP 的 socket(TCP+UDP) |
FRAG |
0 |
0 |
0 |
分片 socket,这里没有 |
state
状态名 |
说明 |
ESTABLISHED |
已建立连接,双方可以正常收发数据。 |
SYN-SENT |
客户端发送 SYN,等待服务端回应的状态。 |
SYN-RECV |
服务端收到 SYN,已发出 SYN+ACK,等待客户端 ACK。 |
FIN-WAIT-1 |
主动关闭方发送 FIN,等待对方 ACK。 |
FIN-WAIT-2 |
收到对方 ACK(确认 FIN),等待对方发送 FIN。 |
TIME-WAIT |
主动关闭方收到对方 FIN 并 ACK 后,进入等待(2×MSL,避免旧包干扰)。 |
CLOSED |
连接不存在或已完全关闭。 |
CLOSE-WAIT |
被动关闭方收到 FIN,等待本地应用调用 close() 。 |
LAST-ACK |
被动关闭方发送 FIN 后,等待对方 ACK。 |
LISTENING (LISTEN) |
监听端口,等待新连接进入。 |
CLOSING |
双方几乎同时发 FIN,等待对方 ACK。 |
ss -antp state time-wait | head -n 10
Recv-Q Send-Q Local Address:Port Peer Address:Port Process
0 0 192.168.116.2:38494 192.168.116.4:8080
0 0 192.168.116.2:57012 192.168.116.4:8081
0 0 192.168.116.2:52982 192.168.116.4:8081
字段 |
示例值 |
含义 |
Recv-Q |
0 |
接收队列:对端发过来但本地应用还没读的数据量。0=没有积压。 |
Send-Q |
0 |
发送队列:本地应用写了但还没发出去/没被确认的数据量。0=没有积压。 |
Local Address:Port |
192.168.116.2:38494 |
本地主机 IP 和端口号,这里 38494 / 57012 都是临时端口。 |
Peer Address:Port |
192.168.116.4:8080 |
对端的 IP 和端口号,说明连接到 192.168.116.4 上的服务。端口 8080/8081 。 |
sysctl
uname -a
to check kernel version.
sysctl net.ipv4.tcp_fin_timeout \
net.ipv4.tcp_tw_reuse \
net.ipv4.ip_local_port_range
sysctl net.ipv4.tcp_fin_timeout \
net.ipv4.tcp_tw_reuse \
net.ipv4.tcp_tw_recycle \
net.ipv4.ip_local_port_range
net.ipv4.tcp_fin_timeout = 60
net.ipv4.tcp_tw_reuse = 2
net.ipv4.ip_local_port_range = 32768 60999
net.ipv4.tcp_fin_timeout
- 含义:一个 TCP 连接在主动关闭时,处于 FIN-WAIT-2 / TIME_WAIT 状态的最长保持时间(秒)。
- 当前值 60:即 60 秒。
- 这是 Linux 默认值。
- 如果连接在关闭过程中没有完全结束,最多会等 60 秒才回收资源。
- 系统保持的是默认,FIN 阶段等待时间相对安全(不会太短)。
net.ipv4.tcp_tw_reuse
- 含义:是否允许重用
TIME_WAIT
状态的 socket。
0
= 关闭(默认,不复用)
1
= 开启复用(通常只对客户端连接生效,且依赖 TCP 时间戳)
2
= 新内核引入的扩展值,表示 在 loopback 本地连接上也允许复用 TIME_WAIT(127.0.0.1 场景)。
- 这里设置成
2
,表示允许在 本地回环接口 (lo) 上的连接复用 TIME_WAIT。
- 这对本地大量短连接(例如应用内访问 localhost 服务)有帮助,可以减少 TIME_WAIT 堆积。
- 对外网连接仍然只按
tcp_tw_reuse=1
的逻辑处理。
net.ipv4.ip_local_port_range
- 含义:Linux 在建立主动连接时(作为客户端),随机分配本地临时端口的范围。
- 当前值:
32768 ~ 60999
,共 28232 个端口可用。
- 例如机器主动访问别人
80
端口时,会从这个区间里挑一个源端口。
- 范围不算大,但一般够用。
- 如果有超高并发短连接(如几万 QPS 的 HTTP 短连接),可能会端口耗尽。
- 这种情况下建议调大,例如:
sysctl -w net.ipv4.ip_local_port_range="1024 65535"
Get Router IP
netstat -nr | grep default
Destination Gateway Flags Netif Expire
default 172.30.109.1 UGScg en1
default link#24 UCSIg bridge100 !
default link#26 UCSIg bridge101 !
Get Public IP
eth0 vs en0/1
- Ethernet Interface
- eth0 old name
- en0/1 modern name(macOS)
No comments to display
No comments to display