Skip to content

tekintian/padavan

 
 

Repository files navigation

padavan 固件

mac过滤模块重构, 完美支持mac地址组模式; 修复mac过滤时区等一系列问题; 网址过滤模块, 修复了网址过滤模块在某些情况下无法正常工作的问题; 新增https域名过滤支持模块SNI, 完美解决了https域名过滤的问题;

Padavan 固件版本功能模块列表与适用场景说明

本固件支持多种基于MT7621等平台的路由器设备,包括但不限于:K2(测试中)、K2P、K2P-USB、MI-R3G、R2100、XY-C1等多款路由器。

K2P系列固件版本对比

1. K2P(标准版)

适用场景

  • 需要完整功能的普通家庭用户
  • 对广告拦截、网络代理、网络工具等有全面需求的用户
  • 不需要USB存储功能的K2P用户

核心功能模块

  • 广告管理:集成Adbyby Open开源广告拦截
  • 网络代理:支持Shadowsocks、Trojan、simple-obfs等
  • DNS服务:内置SmartDNS智能解析
  • 安全通信:完整的OpenSSH服务
  • 网络工具:包含curl、ttyd、htop、iperf3、mtr、msd_lite等
  • 网络优化:支持SQM智能队列管理和WireGuard VPN
  • 安全认证:支持EAP-PEAP企业级认证
  • 高级功能:IPSet、完整OpenSSL支持

2. K2P-NANO(精简版)

适用场景

  • 需要广告拦截但不需要代理工具的用户
  • 对固件稳定性有较高要求的用户
  • 希望平衡功能和性能的用户

核心功能模块

  • 广告管理:保留Adbyby Open开源广告拦截功能
  • 系统监控:包含htop进程监控工具
  • 网络测试:保留iperf3、mtr等基础网络诊断工具
  • 网络优化:支持SQM和轻量级WireGuard
  • 安全管理:使用功能完整的OpenSSH
  • 精简设计:移除了Shadowsocks、Trojan等代理工具和SmartDNS

3. K2P-TINY(超精简版)

适用场景

  • 对固件大小要求极高的场景(如固件空间受限)
  • 仅需要基本路由功能的用户
  • 追求极致稳定性和性能的用户
  • 作为二级路由或专用设备使用

核心功能模块

  • 轻量级设计:移除几乎所有可选功能,最小化固件体积
  • SSH管理:使用更轻量级的dropbear替代OpenSSH
  • 网络加速:保留SFE硬件加速功能
  • 基础诊断:保留htop、iperf3、mtr等核心网络工具
  • 基础功能:支持IPv6、IPSet、EAP-PEAP认证
  • 轻量VPN:支持WireGuard轻量级VPN协议
  • 移除的功能:无广告管理、无代理工具、无DNS增强服务, 无EAP-PEAP认证

4. K2P-USB(增强版, 注意这个版本需要改造过支持USB的K2P才可用)

适用场景

  • 使用K2P-USB硬件版本的用户
  • 需要USB存储功能的用户
  • 需要文件共享和媒体服务器的用户
  • 需要VPN服务器功能的用户

核心功能模块

  • USB支持:完整的USB功能和设备驱动支持
  • 文件系统:支持FAT/FAT32、exFAT、EXT2/3/4、FUSE等多种文件系统
  • 存储服务:包含SMB3.6文件共享服务器、FTP服务器
  • 打印服务:支持LPR打印守护进程、U2EC打印共享
  • 网络工具:丰富的网络工具集,包括tcpdump、parted等
  • VPN服务:包含OpenVPN完整支持
  • 代理工具:支持Shadowsocks、Trojan、Xray等多种代理
  • 专业诊断:完整的网络诊断和维护工具

Padavan路由器固件可选插件列表

根据README.md和配置文件,以下是Padavan固件支持的可选插件列表,按功能类别整理:

1. 网络代理与加速工具

  • Shadowsocks - 代理工具,支持科学上网
  • Trojan (~1.2M) - 代理协议工具
  • Xray (~4.5M) - 代理工具
  • V2ray - 代理工具
  • Sing-box - 代理工具
  • Simple-obfs - 代理混淆工具
  • Naiveproxy - 基于Chrome浏览器的代理工具
  • Srelay - 简易Socks5代理服务器
  • Redsocks - 重定向TCP连接的工具

2. 广告拦截

  • Adbyby Open - 广告拦截工具
  • AdGuardHome (~8M) - 广告拦截与DNS过滤
  • SmartDNS - 智能DNS解析器,可减少DNS污染
  • DNS-Forwarder - DNS转发工具

3. 网络工具与诊断

  • TCPDump (~0.6MB) - 网络数据包捕获工具
  • IPerf3 - 网络性能测试工具
  • MTR - 网络路由追踪与丢包分析工具
  • Socat - 网络工具,可以在不同的协议之间转发数据
  • SQM-QoS - 智能队列管理与服务质量控制
  • MSD_Lite - 替代udpxy的IPTV工具
  • XUPNPd (~0.3MB) - IPTV媒体服务器

4. 文件系统与存储

  • FAT/FAT32 (~0.1MB) - 文件系统支持
  • exFAT (~0.12MB) - 文件系统支持
  • EXT2 (~0.1MB) - 文件系统支持
  • EXT3 (~0.2MB) - 文件系统支持
  • EXT4 (~0.4MB) - 文件系统支持
  • XFS (~0.6MB) - 文件系统支持
  • FUSE (~0.1MB) - 用户空间文件系统支持
  • ANTFS - AVM NTFS驱动
  • NTFS-3G (~0.4MB) - NTFS文件系统支持
  • Swap (~0.05MB) - 交换分区支持
  • HDPARM (~0.1MB) - 硬盘参数设置工具
  • Parted (~0.3MB) - 分区工具

5. 远程访问与SSH

  • OpenSSH (~1.0MB) - SSH服务(功能更完整)
  • Dropbear (~0.3MB) - 轻量级SSH服务
  • TTYD - 基于浏览器的终端工具
  • HTTPS (~1.2MB) - 安全网页服务支持
  • SFTP-Server (~0.06MB) - SFTP服务

6. VPN服务

  • OpenVPN (~0.4MB) - VPN服务(需要IPv6支持)
  • StrongSwan (~0.7MB) - IPsec VPN服务
  • WireGuard (10K) - 轻量级VPN服务
  • SoftEtherVPN - VPN服务器/客户端
  • ZeroTier (~1.3M) - 虚拟局域网工具
  • FRP - 内网穿透工具(客户端/服务端)

7. 服务器功能

  • SMB3.6 (~1.5MB) - 文件共享服务器
  • WINS (~0.4MB) - WINS服务器
  • FTPD (~0.2MB) - FTP服务器
  • Minidlna (~1.6MB) - UPnP媒体服务器
  • Firefly (~1.0MB) - iTunes媒体服务器
  • FFmpeg_NEW (~0.1MB) - 新版FFmpeg,用于媒体服务器
  • VLMCSD - KMS激活服务器
  • DDNSTO (~0.5M) - 内网穿透工具

8. 下载工具

  • Transmission (~1.5MB) - BT下载客户端
  • Aria2 (~3.5MB) - 多协议下载工具
  • Aria2 WEB Control (~0.7MB) - Aria2的Web控制界面

9. USB设备支持

  • USB Support - 基础USB支持
  • UVC (~0.2MB) - USB摄像头支持
  • USB-HID (~0.2MB) - USB人机接口设备支持
  • USB-Serial (~0.03MB) - USB串口设备支持
  • USB-Audio (~0.46MB) - USB音频设备支持
  • LPRD (~0.12MB) - 打印守护进程
  • U2EC (~0.05MB) - USB转以太网打印守护进程

10. 校园网认证

  • SCUTCLIENT - 华南理工大学客户端
  • GDUT-DRCOM - 广东工业大学客户端
  • Dogcom - 校园网客户端
  • Minieap - 校园网客户端
  • NJIT-Client - 南京工程学院客户端
  • MENTOHUST - 华中科技大学客户端

11. 系统工具

  • CURL - 网络请求工具
  • NANO - 文本编辑器
  • HTOP - 进程监控工具
  • LZRSZ - 文件传输工具
  • DUMP1090 - 航空数据接收工具
  • RTL_SDR - 软件定义无线电支持
  • ALDRIVER (~3M) - 阿里驱动

12. 其他功能

  • IPv6 Support - IPv6协议支持
  • XFRM (~0.2MB) - IPsec模块
  • QoS (~0.2MB) - 服务质量控制
  • IMQ (~0.02MB) - 流量整形模块
  • IFB (~0.03MB) - 流量整形模块
  • IPSet (~0.4MB) - IP集合管理工具
  • OpenSSL_EC (~0.1MB) - OpenSSL椭圆曲线支持
  • OpenSSL_EXE (~0.4MB) - OpenSSL命令行工具
  • ALIDNS - 阿里云动态DNS
  • OC - CPU超频支持

如何启用/禁用插件

trunk/configs/templates/K2P.config 文件中,通过设置对应选项的值为 y(启用)或 n(禁用)来控制是否包含某个插件。例如:

CONFIG_FIRMWARE_INCLUDE_ADBYBY=y  # 启用Adbyby插件
CONFIG_FIRMWARE_INCLUDE_SHADOWSOCKS=n  # 禁用Shadowsocks插件

注意事项

  • K2P 128M版本构建后的.trx文件最大支持15.68MB,超过此大小的固件无法刷入
  • 启用插件会增加固件大小,需要根据设备内存和需求合理选择

新增调整功能模块说明:

1. 网络访问控制逻辑重构 (解决之前版本无法使用问题)

  • 控制架构改进:重构了防火墙相关逻辑,优化了NAT规则配置
  • 接口配置优化:完善了WAN/LAN接口管理,提升了网络通信效率
  • 访问规则管理:优化了端口转发、DMZ设置和UPnP映射功能
  • 性能提升:通过代码重构提高了网络访问控制的响应速度

2. Radius认证模块增强

  • 调试日志支持:增加了Radius调试日志控制功能,方便问题排查
  • 命令参数优化:完善了Radius相关命令参数,支持更灵活的配置
  • 日志输出改进:优化了日志格式和输出方式,提升可读性
  • 异常处理增强:改进了客户端RSSI阈值配置和异常情况处理

3. 系统构建与编译优化

  • 编译问题修复:解决了构建过程中的依赖冲突和编译错误
  • 共享库支持:改进了共享库链接机制,提高了代码复用性
  • 包含路径优化:调整了头文件包含路径,使代码结构更清晰
  • 头文件依赖:优化了头文件引用关系,减少了不必要的编译依赖

4. 版本号与构建系统

  • 生成规则优化:改进了版本号生成机制,使版本标识更准确
  • 构建工具升级:更新了构建工具链,提高了编译效率
  • K2P-TINY配置更新:将K2P-TINY版本更新至v4,优化了功能模块配置

5. Adbyby 广告过滤模块优化

  • 构建方式优化:改进了Adbyby的构建流程,提高了编译效率和稳定性
  • 规则管理改进:优化了规则更新机制,支持更灵活的规则配置
  • 配置管理:完善了服务控制脚本(adbyby.sh),增加了启动/关闭流程的健壮性
  • 过滤性能:优化了DNS配置和IP过滤控制,提升了广告过滤效果

6. 其他功能改进

  • 翻译优化:更新和完善了系统界面的翻译内容
  • 代码回滚机制:增加了关键功能的回滚支持,提高了系统稳定性
  • 性能监控工具:优化了系统诊断工具,提供更全面的性能监控

详细模块文档

SNI过滤与MAC地址组模式优化

详细介绍SNI过滤模块功能、通配符域名匹配支持、智能路径规则分流机制和MAC地址组优化特性。

网址过滤模块使用文档

完整的URL过滤解决方案说明,包含配置方法、过滤模式详解、应用场景示例和调试监控指南。

SNI模块增加详细指南

详细介绍如何在Padavan系统中添加和配置SNI过滤模块的步骤和注意事项。

Docker环境编译指南

使用Docker容器环境编译Padavan固件的详细步骤和配置说明。

Supported devices

  • CR660x
  • JCG-Q20
  • JCG-AC860M
  • JCG-836PRO
  • JCG-Y2
  • DIR-878
  • DIR-882
  • K2P
  • K2P-USB
  • NETGEAR-BZV
  • MR2600
  • MI-4
  • MI-R3G
  • MI-R3P
  • R2100
  • XY-C1

Compilation steps

  • Install dependencies
    # Debian/Ubuntu
    sudo apt install unzip libtool-bin ccache curl cmake gperf gawk flex bison nano xxd \
        fakeroot kmod cpio bc zip git python3-docutils gettext automake autopoint \
        texinfo build-essential help2man pkg-config zlib1g-dev libgmp3-dev \
        libmpc-dev libmpfr-dev libncurses5-dev libltdl-dev wget libc-dev-bin
    Optional:
    • install golang for building go programs
      sudo rm -rf /usr/local/go
      curl -fsSL https://go.dev/dl/go1.20.10.linux-amd64.tar.gz | sudo tar -C /usr/local -xz
      echo "export PATH=\$PATH:/usr/local/go/bin" | sudo tee /etc/profile.d/go.sh
      source /etc/profile.d/go.sh
      go version
    • install nodejs for building AdGuardHome
      sudo apt update
      sudo apt install -y ca-certificates curl gnupg
      sudo mkdir -p /etc/apt/keyrings
      curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
      echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
      sudo apt update
      sudo apt install -y nodejs
      node -v
  • Clone source code
    git clone https://github.com/tekintian/padavan.git
  • Modify template file and start compiling
    # (Optional) Modify template file
    # vi trunk/configs/templates/K2P.config
    
    # Start compiling with: make PRODUCT_NAME
    make K2P
    
    # To build firmware for other devices, clean the tree after previous build
    make clean

Package Development

  • Makefile examples
  • Compiling a single package (cd to trunk first)
    • build: make libs/libpcre_only
    • clean: make libs/libpcre_clean
    • romfs: make libs/libpcre_romfs

Manuals

  • Controlling GPIO and LEDs via sysfs
  • How to use NAND RWFS partition
  • How to use IPv6 NAT and fullcone NAT
  • How to add new device support with device tree

About

padavan-4.4 fork for K2P

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 96.5%
  • Assembly 1.5%
  • Makefile 0.4%
  • Shell 0.4%
  • Roff 0.3%
  • Classic ASP 0.2%
  • Other 0.7%