如何使用 iptables 识别下载流量

Sup*_*tik 2 iptables

如何识别下载流量并设置标记,以便我可以通过另一个链接使用 fwmark 路由这些数据包?

Gan*_*ell 6

iptables模块connbytes、connlimit 和 length 可用于识别下载。这里的设置是使用:

#Mark downloads
$IPT -t mangle -N BULKCONN   
#Small packet is probably interactive or flow control
$IPT -t mangle -A BULKCONN -m length --length 0:500 -j RETURN
#Small packet connections: multi purpose (don't harm since not maxed out)
$IPT -t mangle -A BULKCONN -m connbytes --connbytes 0:250 --connbytes-dir both --connbytes-mode avgpkt -j RETURN

#After one megabyte a connection is considered a download
$IPT -t mangle -A BULKCONN -m connbytes --connbytes 1048576: --connbytes-dir both --connbytes-mode bytes -j MARK --set-mark 6
$IPT -t mangle -A BULKCONN -j RETURN

$IPT -t mangle -A PREROUTING -i eth1 -j BULKCONN
Run Code Online (Sandbox Code Playgroud)

我使用排队规则来确定下载和其他流量的优先级。

关于通过另一个链接发送:我还没有准备好回答这个问题,但可以通过 iproute2 来完成(假设您指的是另一个 IP 链接)。但是,它只能在下游工作,因为您无法控制上游流量到达您的位置。