【转】 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 ...
随机推荐
- noi题库(noi.openjudge.cn) 1.13编程基础之综合应用 T12 分数求和
12:分数求和 描述 输入n个分数并对他们求和,并用最简形式表示.所谓最简形式是指:分子分母的最大公约数为1:若最终结果的分母为1,则直接用整数表示. 如:5/6.10/3均是最简形式,而3/6需要化 ...
- Spyder之Object Inspector组件
Spyder之Object Inspector组件 最新版的Spyder已经把它修改为Help组件了. Quick access to documentation is a must for ever ...
- 多年前写的DataTable与实体类的转换
介绍 介绍 很多年前一直使用Ado.net,后来慢慢转型到其他的orm,在转型过程中,有意向将两者的模型结合起来,利用DataTable中的行状态完善一些mvc中的数据控制作用.现在把它放出来,留个纪 ...
- 微服务深入浅出(11)-- SpringBoot整合Docker
添加Dockerfile 在目录src/main/resources目录下店家Dockerfile文件: From java MAINTAINER "Eric"<eric.l ...
- POJ 1240 Pre-Post-erous! && East Central North America 2002 (由前序后序遍历序列推出M叉树的种类)
题目链接 问题描述 : We are all familiar with pre-order, in-order and post-order traversals of binary trees. ...
- erp前端项目总结
目录 一.项目目录(vue-cli2) 二.开发实践 (一) 权限 (二) 各组件间传递数据 (四) 路由 (七) 组织部门业务员三级联动 (八) 优化性能,手动绑定下拉框数据 (九) 验证 (十) ...
- Java并发编程(2) AbstractQueuedSynchronizer的设计与实现
一 前言 上一篇分析AQS的内部结构,其中有介绍AQS是什么,以及它的内部结构的组成,那么今天就来分析下前面说的内部结构在AQS中的具体作用(主要在具体实现中体现). 二 AQS的接口和简单示例 上篇 ...
- const与指针
C++中const与指针 1.常指针: ; int * const pInt = &x; 其中PInt是常指针,pInt的值无法改变,但其指向的内容可以改变. 2.指向常量的指针 有两种写法: ...
- JS简介——(一)
0.结构
- C# 应用程序配置文件App.Config和web.config
应用程序配置文件,对于asp.net是 web.config,对于WINFORM程序是 App.Config(ExeName.exe.config). 配置文件,对于程序本身来说,就是基础和依据,其本 ...