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 配置
- 流控模块
- ✅ 允许使用 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 优化, 将网卡压力负载到不同的核心, 提升整体吞吐
其他还在继续更新中...