溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux下怎么查看TCP連接數

發布時間:2022-01-26 09:24:20 來源:億速云 閱讀:619 作者:小新 欄目:開發技術
# Linux下怎么查看TCP連接數

## 引言

在Linux系統管理和網絡故障排查中,監控TCP連接數是一項基礎但至關重要的任務。無論是排查高負載問題、分析網絡攻擊,還是優化服務器性能,了解如何查看和分析TCP連接狀態都必不可少。本文將詳細介紹多種查看TCP連接數的方法及其應用場景。

---

## 一、基礎命令工具

### 1. `netstat`命令

`netstat`是傳統的網絡統計工具,可以顯示網絡連接、路由表、接口統計等信息。

```bash
netstat -ant | grep -v "LISTEN" | wc -l

參數說明: - -a:顯示所有連接 - -n:以數字形式顯示地址 - -t:僅顯示TCP連接

輸出示例

ESTABLISHED 42
TIME_WT   18

優缺點: - ? 兼容性好,多數Linux發行版預裝 - ? 性能較差(大數據量時可能卡頓)

2. ss命令

ss(Socket Statistics)是netstat的現代替代品,性能更優。

ss -s  # 查看匯總統計
ss -tan | awk '{print $1}' | sort | uniq -c

典型輸出

Netid  State      Recv-Q Send-Q Local Address:Port  Peer Address:Port
tcp    ESTAB      0      0      192.168.1.10:ssh    203.0.113.5:59234

優勢: - 比netstat快10倍以上 - 支持更詳細的過濾條件


二、高級監控方法

1. /proc/net/tcp分析

Linux內核通過虛擬文件系統暴露網絡信息:

cat /proc/net/tcp | wc -l  # 原始TCP連接數
awk '{print $4}' /proc/net/tcp | sort | uniq -c  # 按狀態統計

狀態碼解讀: - 0A:LISTEN - 01:ESTABLISHED - 06:TIME_WT

2. conntrack工具(適用于NAT環境)

conntrack -L -p tcp | wc -l

適用場景: - 經過NAT轉發的連接 - 防火墻規則分析


三、按狀態分類統計

TCP連接的常見狀態及統計方法:

狀態 含義 統計命令示例
ESTABLISHED 已建立連接 ss -tan state established
TIME_WT 等待關閉 netstat -ant | grep TIME_WT
SYN_SENT 主動發起連接 ss -tan state syn-sent
CLOSE_WT 等待本地關閉 ss -tan state close-wait

關鍵指標關注: - 大量TIME_WT:可能需調整tcp_tw_reuse - 持續SYN_RECV:可能是SYN Flood攻擊


四、按端口/IP細分

1. 查看特定端口連接數

ss -tan 'sport = :80' | wc -l

2. 統計客戶端IP連接數

ss -tn | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr

輸出示例

   45 203.0.113.12
   22 198.51.100.34

五、實時監控工具

1. iftop(帶寬監控)

iftop -P -n -N

2. nethogs(進程級監控)

nethogs eth0

3. tcptrack(可視化工具)

tcptrack -i eth0

六、自動化監控腳本

1. 基礎統計腳本

#!/bin/bash
DATE=$(date +%F-%T)
COUNT=$(ss -tan | wc -l)
echo "$DATE $COUNT" >> /var/log/tcp_connections.log

2. 異常報警腳本

#!/bin/bash
THRESHOLD=1000
COUNT=$(ss -tan | wc -l)

if [ $COUNT -gt $THRESHOLD ]; then
    echo "警報:TCP連接數過高 ($COUNT)" | mail -s "連接數警報" admin@example.com
fi

七、性能調優建議

1. 內核參數調整

# 查看當前配置
sysctl net.ipv4.tcp_tw_reuse
sysctl net.ipv4.tcp_max_tw_buckets

# 臨時修改
sysctl -w net.ipv4.tcp_max_syn_backlog=4096

2. 連接數限制優化

# 查看文件描述符限制
ulimit -n

# 修改limits.conf
* soft nofile 65535
* hard nofile 65535

八、安全防護應用

1. 檢測異常連接

# 統計每個IP的連接數
netstat -ant | awk '{print $5}' | cut -d: -f1 | grep -v '^$' | sort | uniq -c | sort -nr

2. 封禁高頻連接IP

# 使用iptables自動封禁
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j DROP

九、容器環境特殊處理

1. Docker容器連接數查看

# 查看所有容器的連接數
for id in $(docker ps -q); do
    echo "Container $id:"
    docker exec $id ss -tan | wc -l
done

2. Kubernetes Pod統計

kubectl get pods -o wide | awk '{print $1}' | xargs -I{} kubectl exec {} -- ss -tan | wc -l

十、總結對比表

工具/方法 優點 缺點 適用場景
netstat 兼容性好 性能差 老系統兼容
ss 性能極佳 新系統才完整支持 現代Linux服務器
/proc/net/tcp 無額外依賴 需要解析十六進制 嵌入式設備等精簡環境
conntrack 支持NAT連接跟蹤 需要root權限 防火墻/NAT服務器

結語

掌握TCP連接數監控是Linux系統管理的必備技能。建議: 1. 日常使用ss命令作為首選工具 2. 關鍵業務系統設置自動化監控 3. 定期分析連接數趨勢圖 4. 根據業務特點調整內核參數

通過本文介紹的多維度分析方法,您可以全面掌握服務器的TCP連接狀況,為性能優化和安全防護提供數據支撐。 “`

注:實際字數為約1800字,您可以通過以下方式擴展: 1. 增加具體案例解析 2. 補充各命令的詳細參數說明 3. 添加性能測試對比數據 4. 深入講解TCP狀態機原理

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女