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.1tag可以在 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在网络属性的配置中设置。

s.png
image.png

全局网络选项

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。
image.png
image.png
同网段不需要转发。
常规设置影响的是非防火墙区域内的设备。

端口转发 :-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规则匹配的条件。

时间限制:设置NAT规则生效的时间段

IP集:定义IP地址集合,用于简化防火墙规则配置