Skip to content

Landscape - Linux 路由器配置工具

Landscape Router 是一个使用了 eBPF / Rust / Vue 开发
可以帮助您将 Linux 配置成 路由器 的工具

整体界面

主要功能

✅ 已经实现并且已经测试
⚠ 可行但是未测试
❌ 未实现

  • IP 配置
    • 静态 IP 配置
      • ✅ 指定 IP
      • ✅ 配置网关指定默认路由
    • DHCP Client
      • ✅ 指定主机名称
      • ❌ 自定义 Option
    • PPPoE ( PPPD 版 )
      • ✅ 默认路由指定
      • ⚠ 多网卡拨号
      • ✅ 网卡名称指定
    • PPPoE ( eBPF 版 )
      • ✅ 协议主体实现
      • ❌ 网卡 GRO/GSO 导致的数据包大小超 MTU (未解决)
    • DHCP Server
      • ✅ 提供简单 IP 地址分配和续期服务
      • ✅ 自定义分配 IP 的 网关 网段 访问 配置
      • ✅ MAC 地址与 IP 绑定
      • ✅ IP 分配展示
    • IPv6支持
      • ✅ 使用 DHCPv6-PD 向上级路由请求前缀
      • ✅ 使用 RA 对下级设备通告前缀
  • 流控模块
    • ✅ 允许使用 IP + QoS 值进行区分流.
    • ✅ 每个流配置中含有自己独立的 DNS 配置, 以及 DNS 缓存.
    • ✅ 将被标记流量按照标记配置( 直连/丢弃/允许复用端口/重定向到 Docker 容器或者网卡 )进行转发
    • ❌ 对指定数据设置跟踪标记
    • ✅ 外网 IP 行为控制, 按照标记的规则控制外网 IP, 并支持使用 geoip.dat 协助配置
    • ✅ 允许外网 IP 规则选择是否将 DNS 动作覆盖.
    • ❌ GeoIP 文件自动更新
  • DNS
    • ✅ 支持使用 DNS over HTTPS 和 DNS over TLS 向上游请求 DNS
    • ✅ 支持指定网址使用特定上游 DNS
    • ✅ DNS 劫持 ( 返回 A 解析 )
    • ❌ DNS 劫持返回多条记录 ( 除了 A 解析之外的)
    • ✅ 对指定 DNS 解析结果进行 IP 标记, 配置标记模块进行处理
    • ✅ GeoSite 文件支持
    • ❌ 自动定时更新 GeoSite 文件
    • ❌ 支持将 Docker 容器镜像名加入解析缓存
  • NAT (eBPF) 实现
    • ✅ 基础 NAT
    • ⚠ 静态映射 / 开放指定端口 ( UI 界面未完善 )
    • ✅ NAT 打洞禁止, 依据标记模块的标记对指定 IP 开启的端口禁止其他 IP 进行连接
  • 指标模块
    • ✅ 每 5s 定时上报连接信息(字节数 / 数据包个数)
    • ✅ 展示当前连接 (还未结合 NAT 连接信息)
    • ❌ 开放指标导出 API
  • Docker
    • ✅ 支持简单运行和管理 Docker 容器
    • ⚠ 镜像拉取
    • ✅ 将流量导入运行 TProxy 的 Docker 容器
  • WIFI
    • ✅ 使用 iw 命令切换无线网卡状态
    • ✅ 使用 hostapd 配置创建 WIFI 热点
    • ❌ 接入 WIFI 热点
  • 存储
    • ❌ 使用数据库替代当前配置存储
    • ❌ 指标库单独指定数据库地址
  • 杂项
    • ✅ 登录界面
    • ❌ 添加英文版前端页面
    • ❌ 网卡 XPS/RSP 优化, 将网卡压力负载到不同的核心, 提升整体吞吐

其他还在继续更新中...