Dae安装及配置指南
“Dae”或“DAE”一词在不同技术领域代表着不同的概念。本指南将基于来源信息,介绍两种主要的“DAE”配置:DAE代理配置(Dynamic Authorization Extensions Proxy,用于网络设备安全授权)和 dae 透明代理(基于 eBPF 的 Linux 代理工具)的安装与配置步骤。
一、DAE代理配置(动态授权扩展代理)
DAE(Dynamic Authorization Extensions,动态授权扩展)代理用于在DAE客户端(DAC)和DAE服务器(DAS)之间转发DAE请求和DAE响应报文。DAE是RADIUS(远程认证拨号用户服务)协议的一个扩展,用于强制认证用户下线或更改在线用户授权信息。
DAE代理主要应用于转发控制分离组网中。在这种组网中,DAE代理统一接收DAE客户端的请求报文并分发给对应的DAE服务器处理,从而使DAE客户端只需管理一个NAS IP(即DAE代理的IP地址),降低了管理复杂度。
DAE请求报文包括DMs(Disconnect Messages,用于强制用户下线)和COA(Change of Authorization Messages,用于更改用户授权信息)。
1. 配置准备
- 在连接DAE客户端的接口上,需要配置出方向地址转换(NAT),以确保转换后的IP地址与DAE客户端上管理该CP的NAS IP保持一致。
- 在DAE服务器上,需要配置DAE客户端信息,并(可选)配置DAE服务器监听DAE报文的端口(须与DAE代理转发端口一致),以及配置免校验的RADIUS DAE客户端IP。
2. 配置步骤
以下是在设备上配置DAE代理功能的步骤:
-
进入系统视图:
system-view -
开启DAE代理功能并进入视图:
radius dynamic-author proxy -
配置DAE客户端:指定DAE代理只接收本命令指定的DAE客户端发送的DAE报文。
client { ip ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ] [ key { cipher | simple } string ]例如配置IP地址为5.5.5.2的客户端,共享密钥为明文的
radius:client ip 5.5.5.2 key simple radius -
指定DAE代理监听端口:指定DAE代理监听DAE客户端报文的UDP端口号。缺省端口号为3799。
listen-port port-number例如配置监听端口为2000:
listen-port 2000警告:在DAE代理功能处于开启状态时更改此配置可能会造成部分DAE请求报文丢失。
-
配置DAE服务器:指定DAE代理只向本命令指定的DAE服务器发送DAE请求报文。
server { ip ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ]例如配置IP地址分别为4.4.4.1和6.6.6.1的DAE服务器:
server ip 4.4.4.1 server ip 6.6.6.1 -
指定远端DAE服务器监听端口:缺省端口号为3799。
server port dest-port例如配置目的端口为3798:
server port 3798
3. 显示与维护
- 显示DAE代理的相关信息:
display radius dynamic-author proxy。 - 清除DAE代理的统计信息:
reset radius dynamic-author proxy statistics。
二、dae 透明代理(基于 eBPF 的 Linux 代理)
dae(大鹅)是一款基于eBPF技术的Linux高性能透明代理工具。它能实现网卡级全局代理,并支持代理Docker容器。
1. 安装环境要求
- 内核版本: Linux内核版本需要大于等于 5.8。可以通过
uname -r命令查询。 - 内核选项: 需要检查是否包含特定的内核选项,如
CONFIG_BPF=y,CONFIG_BPF_SYSCALL=y,CONFIG_BPF_JIT=y等。 - 启用IP转发: 需要启用IPv4和IPv6的IP转发功能,例如通过在
/etc/sysctl.conf中设置net.ipv4.ip_forward = 1和net.ipv6.conf.all.forwarding = 1,并运行sysctl -p。 - 启用BPF JIT编译器: 建议开启BPF JIT(Just-In-Time)编译器。可以通过
cat /proc/sys/net/core/bpf_jit_enable查询状态,如果返回值为0,需手动开启,例如在/etc/sysctl.conf中加入net.core.bpf_jit_enable = 1并运行sysctl -p。
2. 下载与配置
-
下载与解压: 从官方地址下载设备对应CPU架构的安装包(例如,v0.5.1正式版)并解压。
# 下载 v0.5.1 正式版 wget https://mirror.ghproxy.com/https://github.com/daeuniverse/dae/releases/download/v0.5.1/dae-linux-armv7.zip unzip -d dae dae-linux-armv7.zip cd dae -
配置文件与权限:
-
创建配置目录
/etc/dae。 -
创建最小配置文件
/etc/dae/config.dae,并设置权限:chmod 0640 /etc/dae/config.dae -
创建数据目录
/usr/local/share/dae/,并将 Geo 数据库文件geoip.dat和geosite.dat移动到该目录。
-
-
安装主程序和系统服务:
- 为主程序添加可执行权限,并安装到
/usr/bin/dae。 - 将服务文件下载到
/etc/systemd/system/dae.service,并刷新配置。
systemctl daemon-reload - 为主程序添加可执行权限,并安装到
3. dae 配置详解(config.dae)
config.dae 文件用于定义代理逻辑和网络接口。以下为关键配置项:
字段
描述
示例
来源
log_level
日志级别。
log_level: info
wan_interface
WAN(广域网)接口,用于本机流量绑定,需填写服务器的网卡名称(如 eth0, ens160),或使用 auto。
wan_interface: ens160
lan_interface
LAN(局域网)接口,用于为局域网或容器转发代理流量。如果需要代理Docker容器,应填写 docker0。若想代理局域网流量,必须同时填写 wan_interface 和 lan_interface。
lan_interface: docker0
auto_config_kernel_parameter
自动配置内核参数。
auto_config_kernel_parameter: true
node
配置代理节点URI,通常指向本地运行的Clash等代理软件。
local: 'socks5://127.0.0.1:7890'
routing
定义流量路由规则。
pname(...) -> must_direct
指定特定进程(Process Name)的流量必须走直连,避免回环。
pname(clash.meta-...) -> must_direct
fallback
默认出站分组。
fallback: my_group
ip(geoip:cn) -> direct
基于IP地理信息(例如中国IP)直连。
domain(geosite:cn) -> direct
基于域名地理信息(例如中国域名)直连。
4. UFW 防火墙配置
如果使用ufw作为防火墙,需要配置放行相关端口和标记的转发流量:
-
放行TProxy端口: 需要放行TProxy的默认端口 12345。
ufw allow 12345 -
编辑规则文件: 在
/etc/ufw/before.rules中,在# End required lines和# allow all on loopback这两行注释之间,加入允许特定标记(0x8000000)流量通过的规则。-A ufw-before-input -m mark --mark 0x8000000 -j ACCEPT -
配置IPv6规则: 同样需要在
/etc/ufw/before6.rules中加入IPv6的相应规则。-A ufw6-before-input -m mark --mark 0x8000000 -j ACCEPT -
重启UFW和dae服务:
ufw disable && ufw enable service dae restart
5. 服务管理
- 设置开机自启动:
systemctl enable dae - 启动服务:
systemctl start dae - 查询服务状态:
systemctl status dae - 重载配置:
systemctl reload dae
提示:dae v.0.7.0 版本开始支持 hysteria2 协议,在 Armbian 旁路由上使用时,如果需要用到混淆和端口跳跃功能,目前需要多运行一个 hysteria 进程。如果选择运行本地Hysteria客户端,需要在dae的路由配置中,将Hysteria进程的流量强制直连:pname(hysteria) -> must_direct。