openwrt网络设置
本文基于immortalwrt24.10固件整理,其他openwrt固件可以参考。
网络
设备 通常指物理或虚拟的网络硬件,管理硬件的底层属性(如 MAC 地址、MTU、速率等),支持 VLAN 划分、桥接、无线射频等底层功能。
接口 代表一个可用的网络服务或连接,通常配置网络相关信息,是逻辑上的网络配置。定义 IP 地址(IPv4/IPv6)、子网掩码、网关、DNS 等,关联防火墙区域(如 lan 或 wan),提供用户实际使用的网络服务(如 DHCP、端口转发等)。
接口
接口
常规设置
DHCP客户端:通过dhcp服务获取ipv4地址等网络配置。
DHCPv6客户端:通过dhcp服务获取ipv6地址等网络配置。
不配置协议:并不对加入的设备配置网络信息,但是可以分配防火墙区域等(防火墙区域也可以在防火墙高级设置中单独添加非uci托管的网络设备)。
PPP:传统电话拨号上网、 串行线路(如路由器之间的专线连接)协议,常用于3G/4G USB调制解调器拨号、串行接口(如GSM模块)的拨号连接。
PPPoE:宽带拨号
静态地址:手动配置网络。
@
符号可以给同一个设备配置不同协议,例如 wan6
设置设备 @wan
来配置ipv6。
.
符号可以直接指定vlan ID,例如"eth0.122
"
子网掩码 决定ip地址归属相同的网段。例如 255.255.255.0
或者192.168.1.1/24 后面这个 /24
(含义相同的不同写法),代表ip地址192.168.1.x之间可以相互通信。255.255.0.0
和/16
代表192.168.x.x可以相互通信。
网关是指没有被明确配置的网络信息都会发往网关,交由网关处理。例如网关为 192.168.1.1 ,上网连接外网ip,或者连接不在相同网段的信息,都会发送给192.168.1.1。如何192.168.1.1可以转发就会返回信息给用户设备。
广播地址是指发往该地址的信息会发往相同网段的所有设备。
ipv6获取等的设置决定本接口的信息。
高级设置
强制链路:网线的插拔和wifi的关闭不影响接口的配置,比如宽带拨号等。
使用默认网关:不采用通过dhcp或者宽带拨号的方式获取到的默认网关。就是不配置0.0.0.0任意地址的路由到网关地址。
DNS搜索域名:相当于默认补全。比如设置为lan
,输入openwrt
主机名就可以访问openwrt.lan
。
ipv6的相关设置项影响的是该端口的上下游的设置。
IPv6 源路由:多个上行ipv6开启该选项时:如果一个数据包的源IPv6地址来自ISP A分配的前缀,那么就强制它使用ISP A对应的路由表进行转发。确保流量对称。
委托 IPv6 前缀:决定PD前缀是否下发,wan口需要开启才能往lan口分配。lan口下游还有路由器需要分配pd就也需要开启。
IPv6 分配长度:PD,有点像ipv4的子网掩码,但是它再决定分配地址的范围,并不划分网段(就是相互间都可以通信)。64基本就是决定前4段是相同的,后4段可以分配。
IPv6 前缀过滤器:有说明。
IPv6 后缀:有说明。
IPv6 优先级:
PPPoE设置里面获取ipv6地址有个手动和自动,自动就是系统自动为你创建一个灰色的wan6接口,手动就是需要你通过设备选@wan的方式自己创建DHCPv6客户端。
防火墙设置
分配接口所属的防火墙区域。也可以在防火墙中涵盖的网络中选择接口来设置。
DHCP服务器
为下游设备分配ip地址,网关,DNS等
常规设置
忽略此接口:不在这个接口的提供IPv4的DHCP服务。
启动:比如填100,下面分配的ip就是192.168.1.100开始。
客户数:就是最多分配的ip数量。
高级设置
动态 DHCP:勾选之后才会对没有 DHCP/dns 设置中 静态地址绑定的设备分配ipv4。
DHCP 选项:tag:direct,6,192.168.1.1
tag可以在 DHCP/dns 设置中 静态地址绑定的设备时设置,值根据自己需求定义;tag:direct,3,192.168.1.1
,6表示设置dns地址,3表示设置网关地址。
IPv6设置
IPv6主要包括RA服务,DHCPv6服务,NDP代理服务。
RA消息包含了:路由器(网关)的链路本地地址,前缀信息,其他如DNS服务器地址。
DHCPv6服务包含信息:IPv6地址,DNS服务器地址,域名,身份关联,前缀代理,SNTP时间同步服务器的IPv6地址,SIP服务器地址,NISP服务器地址和域名,BCMCS服务器地址,客户端主机名,厂商特定信息,信息刷新时间,DHCPv6 认证信息。
NDP代理服务是邻居发现协议,就是找有哪些内网设备可以通过IPv6通信。
无论是v4还是v6的DNS服务器,都可以查询到完整的ip记录,所以有v4的dns可以关闭v6的dns服务器通告。
指定的主接口:IPv6设置项。RA广播仅主接口发送路由器通告,DHCPv6请求优先通过主接口处理,NDP代理在主接口响应邻居请求,确保跨子网设备可互相发现(如主路由和AP下的设备)。需要勾选场景:多LAN接口时,例如:你有lan和guest两个内网接口,但希望仅lan管理IPv6地址分配。防止多个接口同时广播RA,导致客户端收到混乱的IPv6配置。NDP代理需求时,当设备跨子网通信时(如主路由和二级路由之间),需主接口协助邻居发现。
IPv6 RA 设置
默认路由器:本地地址来自 全局网络选项 的 IPv6 ULA 前缀设置。只能本地内网中使用。运营商分配是公共PD前缀。
启用 SLAAC:客户端获取到前缀信息通过SLAAC(无状态地址自动配置)生成自己的全局IPv6地址(RA服务内容)。A标志。
RA 标记:RA消息中的M(Managed)标志被设置,客户端会使用DHCPv6来获取全局IPv6地址以及其他配置信息(如DNS服务器)。
如果RA消息中的O(Other)标志被设置,客户端会通过SLAAC获取地址,但会使用DHCPv6来获取其他配置信息(如DNS服务器),但不包括默认网关。
安卓设备不支持DHCPv6,只能通过SLAAC获取v6地址。
所以需要手机ipv6的用户最省事的设置是只开启RA、启用SLAAC,DHCPv6和NDP都关掉。
设备
设备通常是程序或系统在管理。
网桥设备相当于交换机,作用是把接入的设备拉平(比如接入多个网口的br-lan都通过192.168.1.1访问)以及同网段内转发。
宽带多账号可能会用到macvlan,或者vlan。vlan是信号带标签传输,可以对等不同的vlan是不同的虚拟的网线理解。macvlan是虚拟mac地址,可以对等不同网卡理解。通常macvlan虚拟的接口无法与原物理口通信,即使在相同网段,就是这么设计的。
iptv也可能用到vlan。
网桥vlan的设置原则:
VLAN ID 就是标记号,需要跟其他地方的设置对应比如(iptv的vlan号)。
Windows的vlan在网络属性的配置中设置。
全局网络选项
IPv6 ULA 前缀:有说明
数据包引导:
效果:数据包引导开启后,可以将处理网络数据包中断和软中断的工作分散到路由器的多个 CPU 核心上,而不是集中在一个核心(通常是 CPU 0)。 提升吞吐量(Throughput): 在高负载网络流量下(尤其是高速网络连接,如千兆或以上),可以更有效地利用多核 CPU 的性能,从而提升路由器的整体数据包转发速度。 降低单个 CPU 核心负载: 避免单个 CPU 核心(特别是 CPU 0)在高流量时达到 100% 负载而成为瓶颈。 改善延迟和缓冲膨胀(Bufferbloat): 当与 SQM (Smart Queue Management) 智能队列管理等流量控制功能配合使用时,数据包引导能够确保 SQM 的计算工作也能被均匀分配,从而更有效地抑制缓冲膨胀,改善网络延迟,尤其是在上传或下载满速时。
何时启用: 多核 CPU 路由器, 如果你的路由器有双核或更多核心的 CPU,开启此选项通常推荐,尤其是在高速网络环境下。 配合 SQM 使用: 强烈建议在启用 SQM QoS(如 Cake 或 fq_codel)时同时开启数据包引导,这样可以确保 SQM 的计算密集型工作能够充分利用所有 CPU 核心,以达到最佳的低延迟性能。
注意: 数据包引导是软件层面的优化。如果你的路由器芯片支持硬件流卸载 (Hardware Flow Offloading, HFO),并且你开启了 HFO,那么 HFO 会接管大部分数据包处理工作,此时数据包引导的效果可能会不明显,因为流量已经被硬件处理而绕过了 CPU。通常情况下,数据包引导和 HFO 是二选一的优化方向。
流量导向(RPS):
流量导向(RPS)就是 OpenWrt 数据包引导功能背后的软件技术,它的价值在于:在多核 CPU 路由器上,通过智能地将网络数据包分配给不同的 CPU 核心处理,来提高整体的网络性能和响应速度。只针对运行在openwrt上的服务。
路由
静态路由
手动配置目标地址的流量从哪个网口(接口)出,发往下一跳的网关ip地址,并指定优先级度量值和规则保存的路由表。源地址(类似nat),影响网关路由的选择。
路由/通信类型 | 寻址的目标 | 路由器行为 | 主要用途 |
---|---|---|---|
Unicast (单播) | 单个目标主机 | 转发数据包到下一跳 | 互联网和局域网的大多数通信 |
Local (本地) | 路由器自身的 IP 地址 | 导向本地内核处理 | 自身服务(如 SSH, Web UI)和管理流 |
Broadcast (广播) | 同一网络中的所有主机 | 发送到相应接口的所有主机 | 发现服务、地址解析 (ARP)、获取 IP (DHCP) |
Multicast (组播) | 一个感兴趣的主机群组 | 遵循组播路由协议,选择性复制和转发 | 实时流媒体、路由协议(如 OSPF) |
Anycast (任播) | 一组目标中最近的一个 | 遵循最短路径转发到任何一个相同 | IP 的节点 DNS、CDN 的负载均衡和高可用性 |
ip规则
定义了内核在进行路由查找之前,应该根据什么条件去选择使用哪一张路由表。
静态路由定义了路径,而 IP 规则定义了何时、何种流量应该使用这条路径。
DHCP/DNS
常规
DNS 重定向:强制将所有DNS查询重定向到本地DNS服务器,防止客户端使用外部DNS。开启后,即使客户端手动设置DNS也会被重定向到路由器。原理是所有发往53端口的数据都转往本机,所以也只影响53端口查询dns。
唯一授权:作用是拒绝无效或过期的 IP 租约。如果网络中的客户端(设备)发送一个请求,尝试续订一个在 OpenWrt 路由器看来是无效或已过期的 IP 地址租约时,DHCP 服务器会立即发送一个 DHCPNAK(Negative Acknowledgment)消息给客户端。
本地解析这些项目:指定哪些域名应该在本地解析,不向上游DNS服务器查询。
本地域名:设置本地域名后缀,如设置为"lan",则访问"hostname"会自动解析为"hostname.lan"。
扩展 HOSTS 文件中的主机后缀:自动为HOSTS文件中的主机名添加域名后缀。
地址:直接指定域名查询结果。address=/domain/IP,匹配domain及其子域名。
IP 集:将查询结果ip存储为ip集。ipset=/example.com/<www.example.net/blocked_ips>(/example.com/ 和 /<www.example.net/> 是要监控的域名。 blocked_ips 是预先创建好的 IP 集名称。)
顺序分配 IP:dhcp按顺序分配IP地址,而不是随机分配。
所有服务器:向上游所有DNS服务器并行发送查询,使用最先返回的结果。默认未勾选,(通常是轮询或偏爱已知响应速度快的服务器)只向其中一个上游服务器发送查询,如果查询失败(例如超时或收到特定错误),才会尝试下一个服务器。
缓存
缓存任意的资源记录:选择要缓存的DNS记录类型。
设置及端口
非全部地址:勾选只响应监听端口。
监听接口:指定DNS服务器监听的网络接口。
排除接口:指定不监听的网络接口。
DNS 服务器端口:DNS服务监听的端口,默认为53。
DNS 查询端口:发起DNS查询时使用的源端口范围。
最小源端口 # :DNS查询使用的最小源端口号。
最大源端口 # :DNS查询使用的最大源端口号。
DNS记录
主机名映射
A记录、AAAA记录。设置本地主机名到IP地址的映射,相当于本地HOSTS文件功能。
SRV
服务记录,用于指定提供特定服务的服务器地址和端口。
MX
邮件交换记录,指定处理邮件的邮件服务器。
CNAME
规范名称记录,设置域名别名。
DNS资源记录
自定义DNS记录,支持各种记录类型。
DNSSEC
DNSSEC 为 DNS 记录(例如 A 记录、MX 记录等)添加了加密的数字签名。但它并不提供隐私保护(DNS 查询和响应本身仍是明文的)。
DNSSEC 检查未签名:启用DNSSEC验证,拒绝未签名的DNS响应,提高DNS安全性。
过滤器
忽略空域名解析:忽略对空域名(缺少点或域名部分)的解析请求。
重绑定保护:防止DNS重绑定攻击,限制域名解析到私有IP地址。路由器向上游查询时,丢弃 RFC1918 (私有 IPv4) 地址,丢弃 RFC4193 (唯一本地 IPv6) 地址,丢弃链路本地地址,丢弃私有 IPv4 映射 IPv6 地址 (RFC4291)。
仅本地服务:只响应本地网络的DNS查询。
过滤本地包:拒绝反向查询不在 /etc/hosts 中的 RFC6303 IP 段 (.IN-ADDR.ARPA, .IP6.ARPA)。
过滤 SRV/SOA 服务发现:过滤服务发现相关的DNS记录。
过滤 IPv6 AAAA 记录:过滤IPv6地址记录。
过滤 IPv4 A 记录:过滤IPv4地址记录。
过滤任意的资源记录:过滤特定类型的DNS记录。
本地化查询:将查询结果落在查询网口所在的网段。
禁用无效信息缓存:不缓存无效的DNS响应。
忽略虚假空域名解析:指定地址结果作为空域名NXDOMAIN解析。
转发
DNS 转发:设置上游DNS服务器,本地无法解析的查询会转发到这些服务器。
no-resolv:告诉 DNSmasq 不要读取系统的 /etc/resolv.conf 文件来获取上游 DNS。
server=A.B.C.D:手动指定一个上游 DNS 服务器。
server=/local/192.168.1.1:条件转发。表示所有 .local 域名的查询都转发给 192.168.1.1,。
额外的 SERVERS 文件:从指定文件加载额外的DNS服务器配置。
添加请求者 MAC 地址:在DNS查询中添加客户端的MAC地址信息。
在转发查询之前移除 MAC 地址:转发前移除MAC地址信息以保护隐私。
在转发请求时添加子网地址:添加客户端子网信息帮助CDN优化。
在转发查询之前移除子网地址:转发前移除子网地址信息。
限制
最大 DHCP 租期:DHCP租约的最长时间,单位为秒。
最大 EDNS0 数据包大小:DNS查询的最大数据包大小。
最大并发查询数:同时处理的最大DNS查询数量。
DNS 查询缓存的大小:DNS缓存的最大条目数。
最小缓存 TTL:DNS记录缓存的最小生存时间。
最大缓存 TTL:DNS记录缓存的最大生存时间。
日志
记录查询日志:记录所有DNS查询请求,用于调试和分析。
额外 DHCP 记录:记录额外的DHCP相关信息。
记录设施:选择日志记录的方式和级别。
Resolv和Host文件
使用 /etc/ethers 配置:使用/etc/ethers文件进行静态MAC地址绑定。
租约文件:DHCP租约文件的存储路径。
忽略解析文件:忽略指定文件resolv.conf配置。
严谨查序:严格遵循DNS查询顺序。
忽略主机文件目录:忽略主机文件目录中的配置。
忽略 /etc/hosts 文件:忽略系统的hosts文件配置。
额外的 HOSTS 文件:加载额外的hosts文件。
静态地址分配
为特定MAC地址分配固定的IP地址。
标签
为DHCP客户端设置标签,用于分组管理。
IP集
定义IP地址集合,用于防火墙规则。
中继
DHCP中继代理功能,转发DHCP请求到其他网络。
PXE/TFTP
预启动执行环境相关设置,用于网络启动。
网络诊断
分ipv4和ipv6,可以直接填域名,ipv6不用带中括号。
ping 测试网络连通性、延迟和丢包情况。
traceroute 追踪网络路由情况。
nslookup 查询域名对应的ip地址。
防火墙
常规设置
启用 SYN-flood 防御:保护系统免受SYN泛洪攻击(DoS/DDoS),限制半开连接数量。
丢弃无效数据包:自动丢弃无效的网络数据包。无效连接状态的数据包(INVALID State),无法转发或路由的数据包,违反安全策略的数据包(例如 SYN Flood 保护)。
入站数据:目标地址是openwrt。
出站数据:从openwrt发出的。
转发:控制经过openwrt转发的数据包处理策略。
启用 FullCone-NAT:完全锥形NAT,允许外部主机主动连接内网主机。
流量卸载类型:选择流量处理方式(软件/硬件卸载)。
特性 | 混杂模式 (Promiscuous Mode) | IP 转发 (IP Forwarding) | IP 路由 (IP Routing) |
---|---|---|---|
作用层次 | 数据链路层 (L2) - 针对网卡/物理接口 | 网络层 (L3) - 针对 IP 协议栈 | 网络层 (L3) - 针对 IP 协议栈 |
核心功能 | 接收所有数据包,即使 MAC 地址不是本机。 | 转发非本机目标 IP 的数据包到其他网络。 | 决定数据包路径,依据路由表将数据包发送到正确的下一跳。 |
是否转发 | 仅影响接收行为,不涉及转发。 | 允许跨子网转发数据包。 | 查找和使用路由表来转发或本地投递数据包。 |
默认状态 | 关闭 (网卡只接收目标为本机 MAC 的包)。 | 关闭 (非路由器默认不转发)。 | 启用 (是 IP 协议栈的固有功能)。 |
主要用途 | 网络嗅探、抓包 (如 Wireshark)、虚拟化桥接 (如 KVM/VirtualBox)。 | 将 Linux 主机用作路由器或网关。 | IP 网络通信的基础;决定数据包的下一跳。 |
给vpn的tun设备由程序控制ip等网络设置,可以把tun设备添加到接口不配置协议但是分配防火墙区域,再利用防火墙控制转发内网网段和控制nat。
同网段不需要转发。
常规设置影响的是非防火墙区域内的设备。
端口转发 :-t nat -A PREROUTING
将外部端口的访问请求转发到内网特定设备的端口。
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:8080
源端口 -i eth0
协议 -p tcp
外部端口 --dport 80
内部 IP 地址 内部端口 --to-destination 192.168.1.100:8080
解决BT端口映射
设置了端口转发的不用再配置通信规则,会自动放行外部端口。
通信规则
常规设置
名称:规则的描述性名称。
协议:选择适用的网络协议(TCP/UDP/ICMP等)。
源区域:数据包来源的防火墙区域。通常WAN区域
源地址:数据包来源的IP地址或网段。
源端口:数据包来源的端口号。
目标区域:数据包目标的防火墙区域。
目标地址:数据包目标的IP地址或网段。
目标端口:数据包目标的端口号。
操作:对匹配数据包的操作(接受/拒绝/丢弃)。
高级设置
匹配设备:指定匹配的网络接口设备。
地址族限制:限制匹配的地址类型(IPv4/IPv6)。
使用 ip 集:使用预定义的IP地址集合进行匹配。
源 MAC 地址:基于源MAC地址进行匹配。
匹配助手:匹配特定的连接跟踪助手。
匹配标记:匹配数据包的标记。
匹配 DSCP:基于DSCP(差分服务代码点)进行匹配。
限制匹配:限制规则匹配的频率或条件。
时间限制:设置规则生效的时间段
NAT规则
常规设置
名称:NAT规则的描述性名称。
地址族限制: 限制NAT规则适用的地址类型(IPv4/IPv6)。
协议:选择适用的网络协议。
出站区域:数据包出站的防火墙区域。
源地址:需要进行NAT转换的源地址。
目标地址:需要进行NAT转换的目标地址。
操作:NAT操作类型(SNAT/DNAT/MASQUERADE等)。
重写 IP 地址: 重写数据包的IP地址。
高级设置
出站设备:指定出站的网络接口设备。
匹配标记:匹配特定的数据包标记。
限制匹配:限制NAT规则匹配的条件。