首页 > 编程语言 >如何用ulimit限制网络带宽

如何用ulimit限制网络带宽

来源:互联网 2026-07-11 08:06:06

ulimit无法限制网络带宽,需要使用Linux自带的tc工具进行精准限速。tc通过创建队列规则、定义限速类及过滤器来实现带宽控制。nethogs则可以按进程实时监控带宽占用,并辅助定位异常的流量来源。上述所有操作均需要root用户权限。

很多人以为 ulimit 是万能的资源限制工具,看到网速跑满就想让它来限制网络带宽。但事实上,ulimit 主要用于管理文件描述符、进程数这类系统资源,与网络带宽控制完全是两回事。不过 Linux 下确实有专门的工具可以精准控制带宽,操作也并不复杂。

如何用ulimit限制网络带宽

长期稳定更新的攒劲资源: >>>点此立即查看<<<

下面介绍两个经典工具:一个用于限速,一个用于监控。

使用 tc 实现精准限速

tc(Traffic Control)是 Linux 内核自带的流量控制工具,功能强大,可以像路由器一样精细化管理带宽。例如,要将 eth0 网卡的下载速度限制为 1Mbps,只需执行以下三条命令:

sudo tc qdisc add dev eth0 root handle 1: htb default 30
sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 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

看起来稍显复杂,但逻辑清晰:先创建队列规则(qdisc),再定义限速类(class),最后通过过滤器将目标流量引导至该类。如需恢复,一条命令即可清空:

sudo tc qdisc del dev eth0 root

需要注意的是,tc 默认影响整个接口的流量。如果只想限制某个特定进程或用户的带宽,需结合 cgroups 或 iptables 标记来实现,此处不作展开。

使用 nethogs 实时监控带宽占用

限速之前,需要先了解究竟哪个进程在占用带宽。nethogs 是一个按进程显示实时网络带宽占用的小工具,比 iftop 更直观。安装命令如下:

# Debian/Ubuntu
sudo apt-get install nethogs

# RHEL/CentOS
sudo yum install nethogs

安装完成后,直接运行即可查看 eth0 上每个进程的实时上下行速度:

sudo nethogs eth0

界面会动态刷新,直观显示哪个进程占用了大量带宽。此时再结合 tccgroups 进行限制,目标明确。

最后提醒:上述操作通常需要 root 权限,普通用户无法直接调用。如需按用户粒度管理带宽,cgroups 是更可靠的方向——这属于另一个话题。

侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述

热游推荐

更多
湘ICP备14008430号-1 湘公网安备 43070302000280号
All Rights Reserved
本站为非盈利网站,不接受任何广告。本站所有软件,都由网友
上传,如有侵犯你的版权,请发邮件给xiayx666@163.com
抵制不良色情、反动、暴力游戏。注意自我保护,谨防受骗上当。
适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。