回收闲置网络带宽的本质是识别并限制占用带宽的进程/连接,释放未被有效利用的带宽资源。以下是Ubuntu系统中常用的工具和方法:
在回收带宽前,需先明确哪些进程/连接占用了大量闲置带宽。常用工具如下:
sudo apt install iftop # 安装iftop
sudo iftop -i eth0 # 监控eth0接口(替换为你的网卡名,如ens33)
sudo apt install nethogs # 安装nethogs
sudo nethogs eth0 # 监控eth0接口
sudo apt install nload # 安装nload
nload eth0 # 监控eth0接口
通过这些工具,可快速找到占用闲置带宽的进程或连接(如长期空闲的下载任务、未关闭的P2P软件)。
定位到闲置带宽占用者后,可通过以下工具限制其带宽,释放资源:
sudo apt install wondershaper # 安装wondershaper
sudo wondershaper eth0 1024 512 # 限制eth0下载1Mbps(1024kbit/s)、上传512Kbps(512kbit/s)
sudo wondershaper clear eth0 # 清除限速规则
sudo tc qdisc add dev eth0 root handle 1: htb default 30 # 创建HTB队列
sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit ceil 1mbit # 设置总带宽上限
sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dst 0.0.0.0/0 flowid 1:1 # 应用过滤规则
注:tc命令较复杂,需参考man tc学习语法。闲置的网络连接(如未关闭的SSH会话、僵尸TCP连接)会占用带宽资源,可通过以下命令清理:
TIME_WAIT状态的TCP连接)。netstat -tulnp | grep TIME_WAIT # 查看TIME_WAIT状态的连接
ss -tulnp | grep TIME_WAIT # 更高效的替代命令(推荐)
sudo kill -9 <PID> # 替换<PID>为占用带宽的进程ID(通过nethogs/iftop获取)
若频繁出现闲置带宽占用,可通过修改系统配置优化:
sudo systemctl stop ftp # 停止FTP服务
sudo systemctl disable ftp # 禁止开机启动
/etc/sysctl.conf文件,优化TCP连接的重传、超时设置(如减少TIME_WAIT状态的持续时间)。echo "net.ipv4.tcp_fin_timeout = 30" | sudo tee -a /etc/sysctl.conf # 缩短TIME_WAIT时间(默认60秒)
sudo sysctl -p # 生效配置
通过以上方法,可有效回收Ubuntu系统中的闲置网络带宽,提升网络资源利用率。需注意:操作前需确认目标进程/连接的合法性,避免误操作影响正常业务。