如何在iStoreOS DHCP中排除特定IP地址
通过SSH手动配置
在 dnsmasq
中,dhcp-host=...ignore
只能针对单个 IP 地址进行排除。若需排除 一段连续的 IP 地址(如 192.168.100.111-192.168.100.115
),需要通过 多次添加 dhcp-host
规则 或 调整 DHCP 地址池范围 来实现。以下是具体方法:
方法一:为每个 IP 单独添加 dhcp-host
规则(适用于少量 IP)
-
通过 SSH 登录路由器
ssh root@192.168.100.1 # 替换为你的路由器 IP
-
编辑
dnsmasq
配置文件
打开/etc/dnsmasq.conf
(或自定义配置文件如/etc/dnsmasq.d/custom.conf
),添加以下内容:# 排除 192.168.100.111-115 dhcp-host=00:00:00:00:00:00,192.168.100.111,ignore dhcp-host=00:00:00:00:00:00,192.168.100.112,ignore dhcp-host=00:00:00:00:00:00,192.168.100.113,ignore dhcp-host=00:00:00:00:00:00,192.168.100.114,ignore dhcp-host=00:00:00:00:00:00,192.168.100.115,ignore
- 每行对应一个要排除的 IP,MAC 地址可随意填写(但需保持唯一性,或重复使用同一个虚假地址)。
-
重启iStoreOS系统
reboot
方法二:调整 DHCP 地址池范围(推荐,适用于连续 IP 段)
直接修改 DHCP 地址池,跳过需要排除的 IP 段。例如:
- 假设原始 DHCP 地址池为
192.168.100.100-200
,需要排除111-115
,则将地址池分为两段:
100-110
和116-200
。
操作步骤:
-
编辑 OpenWrt/iStoreOS 的 DHCP 配置文件
vi /etc/config/dhcp
-
修改 LAN 接口的
dhcp_range
找到config dhcp 'lan'
段落,修改或添加list dhcp_range
:config dhcp 'lan'option interface 'lan'option start '100' # 起始 IP 的最后一位(192.168.100.100)option limit '11' # 第一段分配 11 个 IP(100~110)list dhcp_range '100,110' # 第一段范围list dhcp_range '116,200' # 第二段范围(跳过111~115)# 其他配置保持不变...
-
重启iStoreOS系统
reboot
验证配置
- 检查已排除的 IP 是否被分配
连接新设备(如手机或电脑),观察分配的 IP 是否避开111-115
段。
方法对比
方法 | 优点 | 缺点 |
---|---|---|
逐个 IP 排除 | 灵活,适合少量非连续 IP | 配置冗余,管理繁琐 |
调整地址池范围 | 高效,适合连续 IP 段 | 需重新规划地址池范围 |
补充说明
- 为什么不能直接写一段 IP?
dnsmasq
的dhcp-host
不支持直接排除 IP 段,需逐个配置或调整地址池。 - 升级后配置丢失?
若直接修改/etc/dnsmasq.conf
,系统升级可能覆盖配置。建议通过 OpenWrt 的 UCI 配置(/etc/config/dhcp
)持久化设置。
根据你的需求选择方法二(调整地址池)更简洁高效!
通过以上方法,即可在 DHCP 地址池中排除指定范围的 IP 地址。