![](https://private-user-images.githubusercontent.com/20874963/289858789-1e3d7ef1-ee3a-4d1c-80c7-4b1086b42048.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAwMzQ1NTMsIm5iZiI6MTcyMDAzNDI1MywicGF0aCI6Ii8yMDg3NDk2My8yODk4NTg3ODktMWUzZDdlZjEtZWUzYS00ZDFjLTgwYzctNGIxMDg2YjQyMDQ4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAzVDE5MTczM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTMwZGYwMjMwZTczZmQ0NGY0NjJmNTE0ZDNkMmM3MGMwM2Y3YzAyOWI5Mzg5NGVmYTVjYmYxYTcyY2UwYTY4MTUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.LOrZiGvgVcXhdDtHb5B0mfS4VIXk5i1npVd8q32vFww)
用来执行
toast.py
系统环境(这里只列举我自己的环境用作参考,其他系统和内核需要自行匹配)
- os:
ubuntu 23
- 内核版本:
6.5.0-14-generic
(需要 >=5.10
) - python:
3.11.6
(最好 >=3.10
,ubuntu 23 自带 3.11.6)
安装依赖
sudo apt-get install bpfcc-tools linux-headers-$(uname -r)
执行 toast.py
- 挂到根 cgroup:
sudo python3 toast.py --ip 12.23.34.45
,至此,本机所有 TCP 请求均会携带TOA
- 如果你只想影响限定的进程,可以创建一个 cgroup,然后用
--cg
来指定:- 运行:
sudo python3 toast.py --ip 12.23.34.45 --cg toast
- 再另外打开一个终端
- 新建一个名叫
toast
的 cgroup:sudo mkdir /sys/fs/cgroup/toast
- 将当前的 bash 挂到新建的 cgroup 里:
sudo sh -c "echo $$ > /sys/fs/cgroup/toast/cgroup.procs"
- 至此,新建的终端内执行的任意命令会受到
toast.py
的影响;当然,你也可以选择将其他进程放到新建的 cgroup 里
- 运行:
用来验证 TOA 插入成功
注意toa.ko
模块,因此在 toast 执行时需要修改 to 类型为 200
:
sudo python3 toast.py --ip 12.23.34.45 --tot 200
- 安装
toa.ko
:bash -c "$(curl -fsSL https://thunder-pro-mainland-1258348367.cos.ap-guangzhou.myqcloud.com/TOA/compile_install_toa.sh)
,或者见 tencentyun 的教程 - 确认
toa.ko
载入成功:lsmod | grep toa
- 安装 nginx:
sudo apt install nginx -y
- 确认已启动:
sudo systemctl status nginx
- 查看 nginx 日志:
tail -f /var/log/nginx/access.log
- 发起测试请求:
curl 127.0.0.1
Copyright © 2023 Macr0phag3.
This project is MIT licensed.