eBPF 测试

install

参考 bpftrace, 安装 ubuntu 19.04 以上。

小问题

  • 打不开终端的情况
    • 打开系统设置 - 语言和地区 - 设置其他的地区的英文 - 重启即可
    • 参考 https://superuser.com/questions/1749837/cant-open-a-terminal-in-ubuntu-22-04-running-in-virtualbox-7-0-on-a-windows-11
  • 无法 sudo
    • 用 root 账号,修改 /etc/sudoers
    • su 进入 root
    • vi /etc/sudoers 即可
      • 比如 zkk ALL=(ALL:ALL) ALL
    • 参考 https://stackoverflow.com/questions/47806576/username-is-not-in-the-sudoers-file-this-incident-will-be-reported

apt-get 源配置

参考 https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/

  • sudo apt-get update
  • sudo apt-get install -y bpftrace

eBPF beginner

https://www.brendangregg.com/blog/2019-01-01/learn-ebpf-tracing.html

bcc

查看当前系统是否支持

$ cat /boot/config-$(uname -r) | grep "BPF"

安装命令

# https://github.com/iovisor/bcc/blob/master/INSTALL.md
$ sudo apt-get install bpfcc-tools linux-headers-$(uname -r)


# 安装完成后
# 就会有很多 bpfcc 结尾的命令
$ ls /sbin | grep "bpfcc"

测试


# http 监听
$ sudo apt-get install net-tools
$ ifconfig -a
enp0s3 ...
$ sudo python3 examples/http-parse-complete.py -i enp0s3


# https 监听
$ sudo python3 tools/sslsniff.py

# 测试
$ wget https://www.baidu.com

# firefox 和 chrome 浏览器,都监听不了,待后续测试
$ sudo apt install ./google-chrome.deb

Gnome Terminal

# https://askubuntu.com/questions/792934/i-dont-seem-to-have-the-gnome-terminal
$ sudo apt-get install gnome-terminal