Closed fscarmen closed 5 months ago
请问在容器里能有这个功能吗?宿主机需要处理什么吗?
对于虚拟容器(如 docker、 lxc、 lxd、 systemd-nspawn), 容器内的程序是直接使用宿主机的内核的, 因此你需要在宿主机安装并载入内核模块, 然后容器内的程序就可以使用它。
宿主机debian12安装了,容器是alpine也行吗?因为我试过直接在kvm的 alpine系统安装脚本不行
alpine 运行不了脚本的原因是, alpine 没有 dkms, 但是 tcp-brutal 的安装脚本需要 dkms 才能正常运行。 利用 dkms, 我们可以确保在每次内核更新时为新内核编译 tcp-brutal 模块。
然而, 对于容器来说, 你不需要(也不能)在容器里运行安装脚本, 只需要宿主机支持 dkms, 并把内核模块安装到宿主机即可, 容器内使用的是哪个 Linux 发行版基本上不会成为问题。
此外, 对于希望在 kvm 里运行的 alpine 上使用 tcp-brutal 的情况。 如果你不打算后续对 alpine (的内核)进行更新, 我认为安装一套完整的编译环境外加 kernel headers 和 modprobe, 把 tcp-brutal 仓库 clone 或者复制到虚拟机内再 make && make load
是最简单的方法。 如果你希望频繁对 alpine 进行更新, 那么你可能需要另外编写一套 akms 配置来实现类似于 dkms 的效果。
谢谢大佬,学习了。
我们更新完安装脚本之后会 close 这个 issue 。
判断一下是alpine等没dkms的系统,就前置报不支持并退出,这样高效!
判断一下是alpine等没dkms的系统,就前置报不支持并退出,这样高效!
没有已安装 dkms 并且没有支持的包管理器本来就会直接退出。
2.我想做个sing-box的容器版本,请问在容器里能有这个功能吗?宿主机需要处理什么吗?