You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将指定cgroup流量路由至WireGuard接口(wg0)的配置失败求助

将指定cgroup流量路由至WireGuard接口(wg0)的配置失败求助

我现在想实现这样的网络配置:系统有两个接口wlan0和手动配置的WireGuard接口wg0,默认流量走wlan0,但如果进程被放入名为wgcgrp(classid为1)的cgroup,流量必须走wg0。

我完全不知道哪里出问题了,下面是我详细的操作步骤——实在有点崩溃,所以写得很啰嗦:

WireGuard配置步骤

这部分我觉得配置得还挺简单的:

  • 创建wg0接口:ip l a wg0 name wg0 type wireguard
  • 用预配置的w.conf文件加载WireGuard配置:wg setconf wg0 w.conf,这个配置里只包含私钥、公钥、允许的IP段(0.0.0.0/0和::0/0)以及端点信息,没有其他内容。
  • 给wg0设置预先确定好的IP地址:
ip ad a $ip dev wg0; ip -6 ad a $ip6 dev wg0
  • 启动接口并添加默认路由到名为wg的路由表:
ip l s wg0 up; ip r a default dev wg0 t wg

防火墙配置(nftables)

我理解应该把cgroup的流量导向wg路由表,所以打算用防火墙标记cgroup流量并做伪装。我的nftables规则如下(没有其他额外规则):

table inet t {
    chain post {
        type route hook output priority mangle; policy accept
        meta cgroup 1 counter meta mark set meta cgroup
    }
    
    chain masq {
        type nat hook postrouting priority srcnat; policy accept
        meta cgroup 1 oifname "wg0" counter masquerade
    }
}

路由规则设置

为了让标记后的流量使用wg路由表,我执行了:
ip ru a fwmark 1 lookup wg

测试结果

我用cgexec -g net_cls:wg ping 8.8.8.8测试,结果完全没响应!我都不知道该从哪里开始调试了,这看起来应该很简单,但我完全摸不着头绪。

备注:内容来源于stack exchange,提问作者EmErAJID

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 12:59:37