【问题标题】:Traffic shaping under LinuxLinux下的流量整形
【发布时间】:2009-10-10 14:24:27
【问题描述】:

在哪里可以了解如何在 Linux 下控制/询问网络接口?我想获得特定的应用程序上传/下载速度,并对特定应用程序实施速度限制。

我特别想要可以帮助我使用 Python 编写流量整形应用程序的信息。

【问题讨论】:

    标签: python linux ubuntu trafficshaping


    【解决方案1】:

    特定应用程序的带宽限制(本例中为 google-chrome):

    trickle -d 600 -u 200 google-chrome
    

    单位是千位

    以太网设备的总带宽限制:

    sudo wondershaper eth0 600 200
    

    单位再次以 kbits 为单位。将 eth0 更改为您的接口名称。它使用 tc tbf 和 htb...

    要掌握 linux 上的连接,您需要学习的命令和程序是:

    ip
    ifconfig
    route
    iptables
    netstat
    tc
    wondershaper
    trickle
    iftop
    iptraf-ng
    wget 
    curl
    nslookup
    dig
    

    您需要作为参考的文件是:

    https://www.lartc.org/howto/index.html
    

    Cookbook 在本文档中有很好的示例。

    一个易于阅读的流动博客页面是:

    https://www.cnblogs.com/zengkefu/p/5635100.html
    

    别忘了用它们来做实验;)。

    【讨论】:

      【解决方案2】:

      您需要使用tc 命令的iproute2 套件。 tc 命令看起来像

      tc class add dev eth2 parent 1: classid 1:1 htb rate 100Mbit ceil 100Mbit quantum 1600
      

      这是使用 iproute2 的 an existing Python traffic-shaping application

      【讨论】:

        【解决方案3】:

        实际上,使用 linux 内核工具对每个应用程序进行整形非常困难,除非应用程序使用您可以匹配的特定 IP 地址和/或端口。

        假设是这种情况,那么您需要阅读 iptables,尤其是 fwmarks。您还需要阅读tc。结合这两个工具可以做你想做的事。 Linux Advanced Routing & Traffic Control 是一个很好的起点。

        假设您的应用程序不使用一组可预测的端口/IP 地址,那么您将需要使用像 Trickle 这样的用户空间整形器。这会将自身插入到应用程序和内核之间,并为该应用程序在用户空间中调整流量。

        我认为这些工具中没有任何直接的 python 绑定,但是使用 python 编写脚本并直接调用可执行文件会很简单。

        【讨论】:

        • iptables 可以在 uid/gid 上匹配本地生成的流量。如果您对部署环境的用户/组设置有一定的控制权,那么这可以方便地处理特定应用程序。
        【解决方案4】:

        你有什么理由想使用 python 吗?如前所述,它可能只会移交给已为此目的开发的工具。但是,如果您环顾四周,您会发现诸如Click! modular routerXORP 之类的东西,它们为您想做的事情提供了一个插入式的东西——更不用说已经提供的所有建议了(例如iptablestc)

        【讨论】:

        • 这可能是为了可维护性。在 python 商店中,如果有 python 包装器,其他用户将更快地获得生产力。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-06
        • 1970-01-01
        • 2010-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-10
        相关资源
        最近更新 更多