我正在尝试将每个 wireguard 对等体的下载和上传速度限制为 512kbit。
问题是我的以下命令仅限制下载带宽并且不限制上传带宽。任何帮助都将不胜感激。
例如,tc 规则与 ip 10.7.0.2 和 iptables 标记 12 对等:
tc qdisc add dev eth0 root handle 1: htb
tc qdisc add dev wg0 root handle 1: htb
tc class add dev eth0 parent 1:1 classid 1:12 htb rate 512kbit ceil 512kbit
tc qdisc add dev eth0 parent 1:12 sfq perturb 10
tc filter add dev eth0 protocol ip parent 1: prio 1 handle 12 fw flowid 1:12
tc class add dev wg0 parent 1:1 classid 1:12 htb rate 512kbit ceil 512kbit
tc qdisc add dev wg0 parent 1:12 sfq perturb 10
tc filter add dev wg0 protocol ip parent 1: prio 1 handle 12 fw flowid 1:12
使用 iptables 时,我将对等点标记为数字 12,因此 tc 会对其进行限制:
iptables -I FORWARD -s 10.7.0.2 -j MARK --set-mark 12
iptables -I FORWARD -d 10.7.0.2 -j MARK --set-mark 12
谢谢!
答案1
使用此代码修复了该问题,来自:https://stackoverflow.com/a/65248666/3411911
export IF_INET=eth0
export LIMIT=300kbit
tc qdisc add dev ${IF_INET} ingress
tc filter add dev ${IF_INET} protocol ip ingress prio 2 u32 match ip dst 0.0.0.0/0 action police rate ${LIMIT} burst ${LIMIT}
tc filter add dev ${IF_INET} protocol ip ingress prio 2 u32 match ip src 0.0.0.0/0 action police rate ${LIMIT} burst ${LIMIT}