【转】 LINUX中IPTABLES和TC对端口的带宽限制 端口限速
1.使用命令ifconfig查看服务器上的网卡信息,比如网卡eth0是用来对外的网络,也就是用户通过该网卡连接到系统,那么我们就对这个网卡进行带宽的限制
ifconfig
2.建立eth0队列
tc qdisc add dev eth0 root handle 1: htb default 20
命令解释:将一个htb队列绑定在eth0上,编号为1:0,默认归类是 20
3.建立跟分类
tc class add dev eth0 parent 1:0 classid 1:1 htb rate 3Mbit
命令解释:在队列1:0上创建根分类1:1 限速,类别htb,限速3Mbit
4.创建分类
tc class add dev eth0 parent 1:1 classid 1:20 htb rate 2Mbit ceil 3Mbit
以根分类1:1为父类创建分类1:20 ,类别为htb 限速 1Mbit 最大3Mbit(htb可借用其它类带宽)
5.添加公平队列
tc qdisc add dev eth0 parent 1:20 handle 20: sfq perturb 10
命令解释:sfq是公平队列 ,防止一个会话占用全部带宽
6.创建分类过滤器
tc filter add dev eth0 parent 1:20 protocol ip u32 match ip sport 8080 0xffff classid 1:20
命令解释:以分类1:20为父类创建编号为1:20的过滤器 ,加载u32模块,指定端口为8080
到此为止带宽就限制住了,最大带宽为3Mbit,也就是200多k的下载速度。
7.删除tc队列
tc qdisc del dev eth0 root
把建立好的队列删除,带宽不再限制。
以上只是使用tc进行对带宽的限制,当然也可以结合iptables使用,那么以上的第六步就不太一样了
6.创建过滤器并制定handle
tc filter add dev em2 parent 1:0 protocol ip prio 1 handle 1000 fw classid 1:20
7.使用iptable对端口绑定tc队列
iptables -t mangle -I POSTROUTING -o eth0 -sport 8080 -j MARK --set-mark 1000
iptables -t mangle -I POSTROUTING -o eth0 -sport 8080 -j RETURN
以上就是iptables与tc结合的结果,这里限制的是端口,当然也可以制定某个目标ip只限制制定ip的带宽。
总结
这里提到限制的是带宽,而且下载根据连接数进行平均分配,对TC而言,限制200k的话,一个连接那速度就是200k,如果两个连接就变成100k一个,而iptables的话,如果一个连接占满了200k的带宽,那么第二个连接就直接被拒绝了。
最终如果只是想对应用系统的下载的所有连接每个连接都限制在200k的下载速度的话,最好还是应用服务器自己进行限制。
本文转载自:http://www.fullstacks.cn/archives/423
【转】 LINUX中IPTABLES和TC对端口的带宽限制 端口限速的更多相关文章
- LINUX中IPTABLES防火墙使用
对于有公网IP的生产环境VPS,仅仅开放需要的端口,即采用ACL来控制IP和端口(Access Control List). 这里可以使用Linux防火墙netfilter的用户态工具 iptable ...
- linux中iptables配置文件及命令详解详解
iptables配置文件 直接改iptables配置就可以了:vim /etc/sysconfig/iptables. 1.关闭所有的 INPUT FORWARD OUTPUT 只对某些端口开放. 下 ...
- linux中iptables配置文件及命令详解
转自:https://www.cnblogs.com/itxiongwei/p/5871075.html iptables配置文件 直接改iptables配置就可以了:vim /etc/sysconf ...
- Linux中iptables设置详细(转)
无论如何,iptables是一个需要特别谨慎设置的东西,万一服务器不在你身边,而你贸然设置导致无法SSH,那就等着被老板骂吧,呵呵... 以下内容是为了防止这种情况发生而写的,当然很初级,不过一般服务 ...
- linux中Iptables限制同一IP连接数防CC/DDOS攻击方法
1.限制与80端口连接的IP最大连接数为10,可自定义修改. 代码如下 复制代码 iptables -I INPUT -p tcp --dport 80 -m connlimit --connlim ...
- Linux中iptables设置详细
无论如何,iptables是一个需要特别谨慎设置的东西,万一服务器不在你身边,而你贸然设置导致无法SSH,那就等着被老板骂吧,呵呵... 一下内容是为了防止这种情况发生而写的,当然很初级,不过一般服务 ...
- linux中iptables的用法
iptables基本操作笔记 一.基本操作 #启动防火墙 service iptables start #停止防火墙 service iptables stop #重启防火墙 service ipta ...
- Linux中iptables防火墙指定端口范围
我需要700至800之间的端口都能tcp访问 代码如下 复制代码 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 7 ...
- Linux中iptables学习
防火墙:是一种位于内部网络与外部网络之间安全的防护系统,依照特定的规则,允许或是限制传输的数据通过.iptables通常被用作类UNIX系统中的防火墙,更准确的说,可以称为iptables/netfi ...
随机推荐
- windows下静态编译pthread
1. Building the library as a statically linkable library-------------------------------------------- ...
- C语言程序设计50例(经典收藏)
本篇文章是对C语言程序设计的50个小案例进行了详细的分析介绍,需要的朋友参考下 [程序1]题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位.十 ...
- 支持iis高并发
支持高并发的IIS Web服务器常用设置 适用的IIS版本:IIS 7.0, IIS 7.5, IIS 8.0 适用的Windows版本:Windows Server 2008, Windows ...
- ShareRepository
文件共享下载链接: 1:关于模拟器的配置附件http://pan.baidu.com/s/1jGFqfh8 原文地址:http://www.cnblogs.com/killerlegend/p/382 ...
- 终于把5GB的Cygwin安装完成了
From:http://www.cnblogs.com/killerlegend/p/3904478.html Author:KillerLegend Date:2014.8.11 首先,只想说一句, ...
- 七、Kafka 用户日志上报实时统计之编码实践
一.数据生产实现 1.配置数据生产模块 项目基础配置所包含的内容,如下所示: •项目工程的文件配置 •集群连接信息配置 •开发演示 2.实现 Flume 到 Kafka 模块 实现 Flume 到 K ...
- nginx反向代理下没有获取到正确的clientIP问题发散
问题背景: 在使用nginx服务器NginxA 来反向代理服务 WebAPIA,WebAPIA中要获取ClientIP,结果获取到的IP为NginxA的, 于是引出了以下的一连串概念... 首先使用X ...
- Postgresql获取所有schema
Postgresql 连接方式_连接五要素_psql: https://blog.csdn.net/u011402596/article/details/38510547 postgresql的sho ...
- c# net 使用反射为对象赋值
public T Bson2T(MongoDB.Bson.BsonDocument bson) { T t = default(T); //获取T类中的所有属性 PropertyInfo[] Tpro ...
- SpringBoot与异步任务、定时任务、邮件任务
异步任务 在需要开启异步的服务加上注解:@Async @Service public class AsyncService { //告诉SpringBoot这是一个异步任务,SpringBoot会自动 ...