带有 cgroups2 的 TCP 透明代理:如何仅允许 TCP 流量并阻止来自 cgroup 的所有其他流量?

带有 cgroups2 的 TCP 透明代理:如何仅允许 TCP 流量并阻止来自 cgroup 的所有其他流量?

我正在尝试使用 cgroups2 设置 TCP 透明代理:

iptables -t nat -A OUTPUT -p tcp -m cgroup --path test --syn -j DNAT --to-destination 10.0.0.1:10000
iptables -A INPUT -p tcp -m cgroup --path test --syn -j ACCEPT
iptables A INPUT -m cgroup --path test -j DROP
iptables -A OUTPUT -p tcp -m cgroup --path test --syn -j ACCEPT
iptables -A OUTPUT -m cgroup --path test -j DROP

透明代理已在 10.0.0.1:10000 启动并运行(必须是这个地址,而不是环回地址)。

当我尝试通过代理访问外部地址时,会出现超时:

echo $$ >> /sys/fs/cgroup/test/cgroup.procs
sudo -u ${SUDO_USER} w3m 1.1.1.1
w3m: Can't load 1.1.1.1.

当我删除-j 删除线条,它起作用了。

我的问题是:

我应该添加什么样的规则来阻止来自 cgroup 的所有非 TCP 流量并仅释放 TCP?

相关内容