Add complete French (fr) and Chinese (zh) translations for all documentation: - Root files: README, CHANGELOG, SECURITY, BETA-RELEASE - docs/: All 16 core documentation files - DOCS/: All 19 deep-dive documents including embedded/ and archive/ - package/secubox/: All 123+ package READMEs - Misc: secubox-tools/, scripts/, EXAMPLES/, config-backups/, streamlit-apps/ Total: 346 translation files created Each file includes language switcher links for easy navigation between English, French, and Chinese versions. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
13 KiB
13 KiB
LuCI 网络模式仪表板
版本: 0.3.6 最后更新: 2025-12-28 状态: 活跃
使用现代直观的界面为您的OpenWrt路由器配置不同的网络操作模式。
网络模式
v0.3.6 新功能
- WireGuard自动化: 从中继面板直接生成密钥对、部署
wg0接口以及推送MTU/MSS/BBR优化。 - 优化RPC: 新的后端方法向UI和自动化代理公开MTU钳制、TCP BBR和WireGuard部署。
- UI操作按钮: 中继模式现在包含一键按钮用于密钥生成、接口部署和优化运行。
- 集成代理: 路由器模式现在自动配置Squid/TinyProxy/Privoxy、透明HTTP重定向、DNS-over-HTTPS,以及带可选Let's Encrypt证书的nginx反向代理vhosts。
嗅探器桥接模式(内联/透传)
无IP地址的透明以太网桥接,用于内联流量分析。所有流量都通过设备。
网络配置:
- 透明桥接模式(br-lan)不分配IP地址
- 所有桥接接口启用混杂模式
- 无DHCP服务器 - 在网络上不可见
- 无路由 - 纯第2层转发
- 内联部署 - 设备插入流量路径
- 网关和网络设备之间的完美插入点
流量分析功能:
- Netifyd集成用于实时深度包检测(DPI)
- 应用检测(Netflix、YouTube、Zoom、torrent等)
- 协议识别(HTTP/HTTPS、DNS、QUIC、SSH等)
- 流跟踪及源/目标分析
- 按应用和协议的带宽监控
用例:
- 网络取证 - 捕获所有通过的流量
- 安全监控 - 内联检测异常和威胁
- 带宽分析 - 识别带宽消耗者
- 协议调试 - 调试网络问题
- 合规监控 - 记录所有网络活动
物理设置(内联):
互联网路由器(网关)
|
[WAN端口] OpenWrt(桥接模式)[LAN端口]
|
网络设备(交换机、AP、客户端)
优点:
- 看到100%的网络流量
- 必要时可以应用防火墙规则
- 可以进行流量整形
- 单点故障(如果设备故障,网络中断)
嗅探器被动模式(带外/仅监控)
纯被动监控,不影响网络流量。设备只监听,流量不通过它。
网络配置:
- 监控模式接口(无桥接,无转发)
- 用于数据包捕获的混杂模式
- 监控接口上无IP地址
- 只读 - 无法影响网络流量
- 通过SPAN/镜像端口或网络TAP连接
流量分析功能:
- Netifyd集成用于深度包检测
- 使用tcpdump/Wireshark的完整数据包捕获
- 应用和协议检测
- 流分析和带宽监控
- 零网络影响 - 对网络不可见
用例:
- 纯取证 - 无任何网络影响的监控
- IDS/IPS - 无内联风险的入侵检测
- 网络TAP监控 - 专用监控基础设施
- 安全环境 - 无中断生产流量的风险
- 长期监控 - 持续被动观察
物理设置选项:
选项1:交换机SPAN/镜像端口
互联网路由器
|
管理型交换机(带端口镜像)
|-- [端口1-23] 正常流量
+-- [端口24 SPAN] --> OpenWrt [eth0](监控)
选项2:网络TAP
互联网路由器 --> [TAP设备] --> 交换机
|
OpenWrt [eth0](监控)
选项3:集线器(传统)
互联网路由器 --> [集线器] --> 交换机
|
OpenWrt [eth0](监控)
优点:
- 零网络影响 - 无单点故障
- 对网络完全不可见
- 无法被检测或攻击
- 非常适合合规和安全监控
- 需要SPAN端口、TAP或集线器
- 可能根据设置漏掉部分流量
与SecuBox集成: 两种模式都可以与以下无缝协作:
- Netifyd仪表板用于DPI可视化
- CrowdSec用于威胁检测
- Netdata用于指标和图表
- Client Guardian用于访问控制决策
接入点模式
具有高级优化的WiFi接入点。
- 802.11r快速BSS过渡(漫游)
- 802.11k无线电资源管理
- 802.11vBSS过渡管理
- 频段引导(偏好5GHz)
- 波束成形支持
- 信道和发射功率配置
中继/扩展器模式
带WireGuard优化的网络中继。
- Relayd桥接用于网络扩展
- WireGuard VPN集成
- 隧道的MTU优化
- TCP的MSS钳制
- TCP BBR拥塞控制
路由器模式
带WAN、代理和HTTPS前端的完整路由器。
- WAN协议:DHCP、静态、PPPoE、L2TP
- 带防火墙的NAT/伪装
- Web代理:Squid、TinyProxy、Privoxy
- 透明代理选项
- DNS over HTTPS支持
- HTTPS反向代理:Nginx、HAProxy、Caddy
- 带Let's Encrypt的多虚拟主机
路由器 + DMZ模式
为暴露的服务器创建专用DMZ网段,同时保持LAN流量隔离。
- 独立的DMZ接口,有自己的子网/DHCP范围
- 防火墙区域隔离(DMZ -> WAN转发,除非切换否则无DMZ -> LAN)
- 使用现有备份/确认工作流快速回滚
- 设计用于与VHost管理器结合托管应用(Zigbee2MQTT、Lyrion等)
功能特性
- 一键模式切换带备份
- 实时接口和服务状态
- 每个模式的优化配置
- 安全的设置管理
- 响应式设计
- 现代深色主题
安装
先决条件
- OpenWrt 21.02或更高版本
- LuCI Web界面
从源码安装
cd ~/openwrt/feeds/luci/applications/
git clone https://github.com/gkerma/luci-app-network-modes.git
cd ~/openwrt
./scripts/feeds update -a && ./scripts/feeds install -a
make menuconfig # LuCI > Applications > luci-app-network-modes
make package/luci-app-network-modes/compile V=s
手动安装
scp luci-app-network-modes_*.ipk root@192.168.1.1:/tmp/
ssh root@192.168.1.1 "opkg install /tmp/luci-app-network-modes_*.ipk"
/etc/init.d/rpcd restart
访问
网络 -> 网络模式
模式特定依赖
嗅探器模式
opkg install netifyd
接入点模式
opkg install hostapd-openssl # 用于WPA3/802.11r
中继模式
opkg install relayd wireguard-tools
路由器模式
# 代理
opkg install squid # 或 tinyproxy、privoxy
# 反向代理
opkg install nginx-ssl # 或 haproxy
# Let's Encrypt
opkg install acme acme-dnsapi
架构
+-------------------------------------------------------------+
| LuCI JavaScript |
| (overview.js, sniffer.js, accesspoint.js, relay.js, |
| router.js) |
+----------------------------+--------------------------------+
| ubus RPC
v
+-------------------------------------------------------------+
| RPCD后端 |
| /usr/libexec/rpcd/network-modes |
+----------------------------+--------------------------------+
| UCI / Shell
v
+-------------------------------------------------------------+
| OpenWrt配置 |
| /etc/config/network, wireless, firewall, dhcp |
+-------------------------------------------------------------+
API方法
| 方法 | 描述 |
|---|---|
status |
当前模式、接口、服务状态 |
modes |
列出所有模式及配置 |
sniffer_config |
嗅探器模式设置 |
ap_config |
接入点模式设置 |
relay_config |
中继模式设置 |
router_config |
路由器模式设置 |
apply_mode |
切换到不同模式 |
update_settings |
更新模式特定设置 |
add_vhost |
添加虚拟主机(路由器模式) |
generate_config |
生成配置预览 |
配置文件
设置存储在/etc/config/network-modes:
config network-modes 'config'
option current_mode 'router'
option last_change '2024-12-19 15:30:00'
option backup_config '1'
config mode 'sniffer'
option mode_type 'bridge' # 'bridge' 或 'passive'
option bridge_interface 'br-lan'
option monitor_interface 'eth0' # 用于被动模式
option netifyd_enabled '1'
option promiscuous '1'
option pcap_capture '0'
option pcap_path '/tmp/captures'
option mirror_port ''
option capture_filter ''
option span_port_source '' # 用于带SPAN的被动模式
config mode 'accesspoint'
option wifi_channel 'auto'
option wifi_htmode 'VHT80'
option wifi_txpower '20'
option roaming_enabled '1'
config mode 'relay'
option wireguard_enabled '1'
option mtu_optimization '1'
option mss_clamping '1'
config mode 'router'
option wan_protocol 'dhcp'
option nat_enabled '1'
option firewall_enabled '1'
option proxy_enabled '0'
option https_frontend '0'
嗅探器模式示例
基本嗅探器桥接设置(内联)
-
通过LuCI启用嗅探器桥接模式:
- 导航至 网络 -> 网络模式
- 选择 嗅探器桥接模式(内联)
- 启用 Netifyd集成
- 点击 应用模式
-
物理连接:
调制解调器/ISP -> [WAN] OpenWrt [LAN1-4] -> 交换机/设备 -
验证配置:
# 检查桥接状态 brctl show br-lan # 验证桥接上无IP ip addr show br-lan # 检查混杂模式 ip link show br-lan | grep PROMISC # 验证Netifyd运行中 /etc/init.d/netifyd status
被动嗅探器设置(带外)
选项A:使用交换机SPAN端口
-
配置交换机SPAN/镜像端口:
- 访问管理型交换机配置
- 配置端口镜像:
- 源端口:要监控的端口(如上行端口)
- 目标端口:连接到OpenWrt的端口(如端口24)
- 方向:双向(入站+出站)
-
配置OpenWrt被动模式:
# 通过UCI uci set network-modes.sniffer.mode_type='passive' uci set network-modes.sniffer.monitor_interface='eth0' uci set network-modes.sniffer.netifyd_enabled='1' uci commit network-modes # 应用配置 ubus call network-modes apply_mode '{"mode":"sniffer"}'
高级捕获配置
捕获HTTP流量到PCAP:
# 通过UCI
uci set network-modes.sniffer.pcap_capture='1'
uci set network-modes.sniffer.pcap_path='/mnt/usb/captures'
uci set network-modes.sniffer.capture_filter='port 80 or port 443'
uci commit network-modes
# 手动tcpdump
tcpdump -i br-lan -w /tmp/capture.pcap port 80 or port 443
监控特定应用:
# 观察Netflix流量
tcpdump -i br-lan -n 'host nflxvideo.net or host netflix.com'
# 监控DNS查询
tcpdump -i br-lan -n 'port 53'
# 捕获BitTorrent
tcpdump -i br-lan -n 'port 6881:6889'
按IP的实时带宽:
# 使用iftop
iftop -i br-lan -P
# 使用nethogs(如果已安装)
nethogs br-lan
# 使用Netifyd API
ubus call luci.netifyd flows | jq '.flows[] | select(.bytes_total > 1000000)'
集成示例
导出到Elasticsearch:
# Netifyd可以导出到Elasticsearch用于集中日志
# 在/etc/netifyd.conf中配置
{
"sink": {
"type": "elasticsearch",
"url": "http://elastic.local:9200",
"index": "netifyd"
}
}
向Grafana提供数据:
# Netifyd导出Prometheus指标
curl http://192.168.1.1:8081/metrics
与CrowdSec集成:
# CrowdSec可以解析Netifyd日志用于威胁检测
# 在/etc/crowdsec/acquis.yaml中配置
filenames:
- /var/log/netifyd.log
labels:
type: netifyd
性能调优
优化高带宽网络(1Gbps+):
# 增加环形缓冲区大小
ethtool -G eth0 rx 4096 tx 4096
ethtool -G eth1 rx 4096 tx 4096
# 禁用硬件卸载以获得准确捕获
ethtool -K eth0 gro off gso off tso off
ethtool -K eth1 gro off gso off tso off
# 将桥接设置为转发模式
echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
USB存储用于PCAP捕获:
# 挂载USB驱动器
mkdir -p /mnt/usb
mount /dev/sda1 /mnt/usb
# 配置轮转
uci set network-modes.sniffer.pcap_path='/mnt/usb/captures'
uci set network-modes.sniffer.pcap_rotation='daily'
uci set network-modes.sniffer.pcap_retention='7'
uci commit network-modes
故障排除
看不到流量:
# 验证桥接成员
brctl show
# 检查接口状态
ip link show
# 用tcpdump测试
tcpdump -i br-lan -c 10
# 检查Netifyd日志
logread | grep netifyd
高CPU使用率:
# 如果不需要则禁用DPI
uci set network-modes.sniffer.netifyd_enabled='0'
# 使用过滤器减少捕获范围
tcpdump -i br-lan 'not port 22' -w /dev/null
# 检查硬件卸载
ethtool -k eth0 | grep offload
安全
- 模式切换自动创建备份
- 私钥永不通过API暴露
- 基于ACL的访问控制
- 防火墙自动配置
贡献
欢迎贡献!请提交issues和pull requests。
许可证
Apache License 2.0 - 见LICENSE
致谢
为灵活的网络而精心打造