我曾经在 Windows 中使用 selfishnet 来限制其他人的互联网连接,但现在在 Ubuntu 中找不到任何替代方案。
我试过 tuxcut,但它在 14.04 中无法显示所有已连接的设备,在 16.04 中甚至无法使用。我还用 bash 编写了一个小脚本,使用 获取已连接的设备,arp
然后使用 发送 DeAuth aireplay-ng
。这个脚本可以工作,但速度很慢,所以当很多设备连接到 wifi 时,它实际上不起作用。
我现在正在使用 Ubuntu 16.04,但我不是路由器管理员,所以我无法使用 QOS
答案1
ethtool
您可以使用 更改 NIC 端口的聚合速度ethtool
。
$ sudo ethtool -s eth0 speed 10
例如,这将把端口设置为 10MB。
奇迹塑造者
您也可以使用该工具wondershaper
来执行此操作。注意:速度应以千比特每秒为单位。
$ sudo wondershaper eth1 downspeed upspeed
例如:
$ sudo wondershaper eth0 10000 280
涓涓细流
第三个选项是trickle
。用户可以按程序使用 Trickle,也可以将其作为完全限制 NIC 的守护进程使用。
用户模式 -trickle 手册页
$ sudo trickle -d 20 -u 20 wget http://www.google.com/bigfile
仅为了这一点,将上行和下行流量限制为 20K/s wget
,其他一切都不会受到限制。
守护进程模式 -trickled 手册页
在守护进程模式下,trickled 可以将一组程序限制在固定的带宽限制内。要启动守护进程,请运行 trickled 命令:
$ sudo trickled -d 20 -u 20
pyshaper
第四个选项是pyshaper
。它是所有选项中独一无二的一个,因为它包含 GUI,并且可以随时间动态监控和设置带宽。您可以查看pyshaper 手册页更多细节。
以上内容摘自这个答案:StackExchange - 限制特定接口上的传出带宽