A Linux high-performance transparent proxy solution based on eBPF.
git clone https://github.com/sbwml/luci-app-daed package/daed
git clone https://github.com/sbwml/v2ray-geodata package/daed/v2ray-geodata
2. Install clang-13, refer to https://apt.llvm.org
apt-get update
apt-get install -y clang-13
-
Enable eBPF support, add content to:
.config
CONFIG_DEVEL=y CONFIG_BPF_TOOLCHAIN_HOST=y # CONFIG_BPF_TOOLCHAIN_NONE is not set CONFIG_KERNEL_BPF_EVENTS=y CONFIG_KERNEL_CGROUP_BPF=y CONFIG_KERNEL_DEBUG_INFO=y CONFIG_KERNEL_DEBUG_INFO_BTF=y # CONFIG_KERNEL_DEBUG_INFO_REDUCED is not set
-
Add
xdp-sockets-diag
kernel module, add content to:package/kernel/linux/modules/netsupport.mk
define KernelPackage/xdp-sockets-diag SUBMENU:=$(NETWORK_SUPPORT_MENU) TITLE:=PF_XDP sockets monitoring interface support for ss utility KCONFIG:= \ CONFIG_XDP_SOCKETS=y \ CONFIG_XDP_SOCKETS_DIAG FILES:=$(LINUX_DIR)/net/xdp/xsk_diag.ko AUTOLOAD:=$(call AutoLoad,31,xsk_diag) endef define KernelPackage/xdp-sockets-diag/description Support for PF_XDP sockets monitoring interface used by the ss tool endef $(eval $(call KernelPackage,xdp-sockets-diag))
-
Patch cgroupfs-mount: use cgroupfs2
# fix unmount hierarchical mount pushd feeds/packages curl -s https://raw.githubusercontent.com/sbwml/luci-app-dae/main/.cgroupfs/cgroupfs-mount.init.patch | patch -p1 popd # cgroupfs v2 mkdir -p feeds/packages/utils/cgroupfs-mount/patches curl -s https://raw.githubusercontent.com/sbwml/luci-app-dae/main/.cgroupfs/900-add-cgroupfs2.patch > feeds/packages/utils/cgroupfs-mount/patches/900-add-cgroupfs2.patch
make menuconfig # choose LUCI -> Applications -> luci-app-daed
make package/daed/luci-app-daed/compile V=s # build luci-app-daed