daeuniverse / dae

eBPF-based Linux high-performance transparent proxy solution.
GNU Affero General Public License v3.0
2.62k stars 165 forks source link

[Bug Report] 无法在 wsl2 中使用 #553

Closed MuelNova closed 1 week ago

MuelNova commented 1 week ago

Checks

Current Behavior

内核选项等已经配置正确,且 bpf 功能正常。然而 dae 无法正常开启,提示

sudo dae run -c /etc/dae/config.dae
[Jun 19 14:07:05]  INFO Include config files: [/etc/dae/config.dae]
[Jun 19 14:07:05]  WARN No node found.
[Jun 19 14:07:05]  WARN No interface to bind.
[Jun 19 14:07:05]  WARN Perhaps you are in a container environment (such as lxc). If so, please use higher virtualization (kvm/qemu).
[Jun 19 14:07:05] FATAL mkdir /sys/fs/bpf/dae: no such file or directory

Expected Behavior

No response

Steps to Reproduce

WSL2 使用版本 https://github.com/yuk7/ArchWSL/releases/latest

内核重新编译后,运行 https://github.com/daeuniverse/dae/issues/468#issuecomment-1978431857 提到的脚本,提示

./test.sh
使用内核配置文件: /proc/config.gz
可以吃大鹅了

运行 dae,提示失败

Environment

Anything else?

No response

dae-prow[bot] commented 1 week ago

Thanks for opening this issue!

MuelNova commented 1 week ago
[nova@MuelNova-Laptop ~]$ cd /sys/fs/bpf
[nova@MuelNova-Laptop bpf]$ ls
[nova@MuelNova-Laptop bpf]$ ls -la
total 0
dr-xr-xr-x  2 root root 0 Jun 19 13:56 .
drwxr-xr-x 10 root root 0 Jun 19 13:56 ..
MuelNova commented 1 week ago
[nova@MuelNova-Laptop bpf]$ sudo bpftrace -e 'tracepoint:syscalls:sys_enter_execve {join(args->argv);}'
Attaching 1 probe...

-bash
tr \n
cat /dev/null /etc/debuginfod/archlinux.urls
/usr/bin/tty

因此 bpf 应该是运行正常的

MuelNova commented 1 week ago

已解决。wsl 下的 bpf fs 似乎是 fake mount,自行重新 mount 一遍即可

sudo mount -t bpf /sys/fs/bpf /sys/fs/bpf