V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
openbaby
V2EX  ›  Linux

Linux 如何实现对每 ip 限速?

  •  
  •   openbaby · 2018-12-21 23:31:31 +08:00 · 5933 次点击
    这是一个创建于 1924 天前的主题,其中的信息可能已经有所发展或是发生改变。
    看了下网上的教程都是针对特定 ip 限速的,无法像路由器的 QOS 一样对所有 ip 都均等限速,例如每 ip 限制连接速度为 128k/s 这样,请问有实现的办法吗?
    9 条回复    2020-02-18 16:14:36 +08:00
    celeron533
        1
    celeron533  
       2018-12-21 23:47:54 +08:00   ❤️ 1
    openbaby
        2
    openbaby  
    OP
       2018-12-22 00:08:33 +08:00
    @celeron533 感谢您的指点。请问这个有没有办法对某一个单独 ip 不做限制呢?
    bellchu
        3
    bellchu  
       2018-12-22 00:13:20 +08:00 via Android
    @openbaby tc 和 iptables 一起用。Google tc+iptables
    hefish
        4
    hefish  
       2018-12-22 00:17:02 +08:00
    我写过一个脚本,定期扫描 arp 列表,然后把里面的 IP 挨个设置下载速度。。
    上行速度没限,因为比较麻烦,要给每个上行包打标记,然后按照标记限速,太麻烦了,一般情况限制下行就行了。
    yanaraika
        5
    yanaraika  
       2018-12-22 03:05:08 +08:00   ❤️ 1
    iptables 加 mark 然后 tc

    强烈建议读一遍 Linux Advanced Routing & Traffic Control HOWTO 超有用
    sodora
        6
    sodora  
       2018-12-22 12:14:32 +08:00   ❤️ 5
    不用 tc,纯 iptables 的方法:
    iptables -A INPUT -i eth0 -m hashlimit --hashlimit-above 128kb/s --hashlimit-mode srcip --hashlimit-name in -j DROP
    iptables -A OUTPUT -o eth0 -m hashlimit --hashlimit-above 128kb/s --hashlimit-mode dstip --hashlimit-name out -j DROP
    openbaby
        7
    openbaby  
    OP
       2018-12-24 00:22:04 +08:00
    @sodora 请问这个规则,若要对某 IP1.2.3.4 不受此限制的话,该如何写呢?谢谢!
    sodora
        8
    sodora  
       2018-12-24 16:09:24 +08:00
    @openbaby 在我说的 DROP 的规则上面添加一条规则直接 ACCEPT 某个 IP,就可以了。
    这个是 iptables 基础的基础,连这个都要人家告诉你,最好就别用 iptables 了。
    captainsparrow
        9
    captainsparrow  
       2020-02-18 16:14:36 +08:00
    @sodora 你好,我在服务器上用你的这个 hashlimit+iptables 可以限制速度,但是有一个问题,如果是同一个局域网的两台机器连上服务器会被认为是同一个 ip,者 2 台机器速度被合并一起限速 128kb/s 了,有方法使同一局域网的 2 台机器分别限速 128kb/s 么,谢谢了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   989 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:58 · PVG 05:58 · LAX 14:58 · JFK 17:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.