1
billlee 265 天前 via Android
tc 命令
|
2
tool2d OP @billlee 感谢,google 查了一下,似乎 tc 是采取随机丢包机制。UDP 协议设计问题,没有 tcp window 窗口的概念,不丢包似乎没办法减少客户端主动发送流量。
但还不能丢太少或太少,有些 UDP 设计上( KCP),就是为了抵抗网络丢包。你丢越多,它重发越多。 好像 iptables 也能随机丢包,用用还是挺方便的。 |
3
datocp 265 天前 via Android 1
平时不知道怎么生成 udp 流量,很多文档说 tc 只控制 tcp ,但是确实能命中 udp ,这么多年真不知道怎么验证 udp 流量控制是否有效。
tc 根据 htb 的 prio 优先级对不同的 dstport 进行优先级分级效果还是非常明显的, udp_6060_0x10/0xff tcp_992,1992,26241_0x10/0xff udp_53,123_0x20/0xff tcp_22,23,3389,8123_0x20/0xff tcp_80,443,1080,1863,8080:8081,12000,14000,16285_0x30/0xff udp_500,1701,4000:4030,4500,5989,8000:8001,16285_0x30/0xff tcp_20,21,25,143,465,993,1024:65535_0x40/0xff udp_1:65535_0x40/0xff 而且确实可以用 tc 来控制 30+40 分组上行流量到 95%,而且因为 prio 的存在,可以很好的让 p2p 流量避让常用的端口。 其它的针对单机不同端口像迅雷可以用这种 ddwrt 提供的方法 https://wiki.dd-wrt.com/wiki/index.php/Preventing_Brute_Force_Attacks iptables -N rate_limit iptables -F rate_limit iptables -A rate_limit -p tcp --dport 22 -m limit --limit 3/min --limit-burst 3 -j ACCEPT iptables -A rate_limit -p udp --dport 1194 -m limit --limit 3/min --limit-burst 3 -j ACCEPT iptables -A rate_limit -p ICMP --icmp-type echo-request -m limit --limit 3/sec -j ACCEPT iptables -A rate_limit -p <protocol> --dport <port> -m limit --limit <x/sec/min/hr> --limit-burst X -j ACCEPT iptables -A rate_limit -p ! ICMP -j LOG --log-prefix " Connection dropped!! " iptables -A rate_limit -p tcp -j REJECT --reject-with tcp-reset iptables -A rate_limit -p udp -j REJECT --reject-with icmp-port-unreachable iptables -A rate_limit -j DROP |
4
ysc3839 265 天前 via Android
中间路由器一般不会去改 TCP 数据吧,一般是直接在 IP 层面丢包的,不分 TCP UDP 等
|