怎樣優化CentOS上的Sniffer
根據需求選擇工具:tcpdump(命令行,輕量高效,適合自動化抓包或資源有限場景)、Wireshark(圖形界面,支持豐富協議解析,適合詳細分析)、Tshark(Wireshark命令行版,兼顧功能與性能,適合遠程或腳本處理)。優先選擇輕量級工具以減少系統負載。
通過過濾條件減少無關數據捕獲,降低CPU和內存消耗。常用過濾語法:
host 192.168.1.100
(僅捕獲該IP的流量);port 80
(僅捕獲HTTP流量);tcp
(僅捕獲TCP流量);src 192.168.1.100 and port 443
(捕獲指定IP的HTTPS流量)。tcpdump -i eth0 src 10.0.0.5 and tcp port 22 -w ssh.pcap
(僅捕獲eth0接口上來自10.0.0.5的SSH流量并保存到文件)。修改/etc/sysctl.conf
優化網絡性能,關鍵參數如下:
net.ipv4.tcp_tw_reuse = 1
(允許復用TIME_WAIT狀態的連接,減少連接建立開銷);net.ipv4.tcp_max_syn_backlog = 8192
(增大SYN隊列容量,應對高并發連接請求);net.ipv4.ip_local_port_range = "1024 65535"
(擴大可用端口范圍,避免端口耗盡);net.core.rmem_max = 67108864
(接收緩沖區最大值)、net.core.wmem_max = 67108864
(發送緩沖區最大值)、net.ipv4.tcp_rmem = 4096 87380 67108864
(TCP接收緩沖區分段)、net.ipv4.tcp_wmem = 4096 65536 67108864
(TCP發送緩沖區分段)(優化緩沖區大小,提升數據傳輸效率)。sudo sysctl -p
使配置生效。/etc/security/limits.conf
,添加* soft nofile 65535
、* hard nofile 65535
(允許單個用戶打開最多65535個文件描述符,避免抓包時因文件句柄不足導致中斷);systemctl list-unit-files --type=service
查看運行中的服務,禁用不需要的服務(如firewalld
、NetworkManager
,若不需要其功能),減少系統資源消耗。ethtool
命令調整網卡接收/發送隊列大小,減少數據包丟失。示例:ethtool -G ens33 rx 2048 tx 1024
(將ens33網卡的接收隊列設為2048、發送隊列設為1024),可通過ethtool -g ens33
查看當前值;/etc/fstab
,為系統盤添加noatime,nodiratime
選項(如/dev/sda1 / ext4 defaults,noatime,nodiratime 0 0
),減少文件訪問時間記錄帶來的磁盤I/O開銷,修改后執行sudo mount -a
生效。使用性能監控工具實時跟蹤系統狀態,定位瓶頸: