zoukankan      html  css  js  c++  java
  • 【转】 LINUX中IPTABLES和TC对端口的带宽限制 端口限速

    不管是iptables还是tc(traffic control)功能都很强大,都是与网络相关的工具,那么我们就利用这两个工具来对端口进行带宽的限制.

    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

  • 相关阅读:
    基于Karma和Jasmine的angular自动化单元测试
    【转】使用SVG中的Symbol元素制作Icon
    【转】整理分析:Before 和 :After及其实例
    【转载】CSS中强大的EM
    【转】提升说服力!UI设计的心理学
    解决IE8不支持数组的indexOf方法
    KISSY Slide 组件应用遇到的一个放大缩小问题
    jQuery.extend 函数详解(转载)
    事件冒泡分析及return false、preventDefault、stopPropagation的区别
    jquery学习(一)-选择器
  • 原文地址:https://www.cnblogs.com/guohong-hu/p/8763140.html
Copyright © 2011-2022 走看看