家里有一些设置需要固定ip, 并且需要修改其它网关和DNS, 这样可以把其流量路由到固定的设备上。还有一些设置是不能主动设置网关和DNS,也需要通过路由器来设置.
但是家里的路由器一般只能改全部设备的dns和网关,而做不到只改某些设备,更加做不到某些设备指定某个网关,其它设备又指定另外一个网关。
红米AX6000的官方固件是不支持这个功能,但是其本质是openwrt,这就可以通过修改dhcp的配置来实现了。
开启ssh
首先需要通过 ssh 进入路由器,还没解开ssh可以参考这篇文章:红米AX6000开启ssh
配置DHCP
使用vim打开dhcp配置文件
vim /etc/config/dhcp
将下面的配置添加到文件末尾.
# 主路由网关 192.168.50.1, 主路由 DNS 192.168.50.1
# 旁路由网关 192.168.50.8, 旁路由 DNS 192.168.1.7
config dhcp 'lan'
list dhcp_option '3,192.168.50.1'
list dhcp_option '6,192.168.50.1'
config tag 'clash'
option dhcp_option '3,192.168.50.8 6,192.168.1.7'
option force '1'
config host
option ip '192.168.50.100'
option mac 'xx:yy:xx:yy:xx:yy'
option tag 'clash'
tag 为自定义的标签,可以自定义dns和网关,名称可以自己定义,这里我定义为 clash
然后定义host,ip可以自己定义同网段里面的某一个,mac为设备的mac地址,tag为上面定义的标签3,192.168.50.8 6,192.168.1.7
3为网关,6为DNS
重启 DHCP 服务
/etc/init.d/dnsmasq restart
如果出现下面的报错,可以忽略。
root@XiaoQiang:~# /etc/init.d/dnsmasq restart
cp: can't stat '/etc/dnsmasq.d/*': No such file or directory
sh: out of range
sh: out of range
验证配置
- 指定的终端上面重新连接下wifi,看下配置是否生效
- 通过确认 dnsmasq 的配置是否生效,如下
root@XiaoQiang:~# ps | grep dnsmasq
2101 root 1404 S /usr/sbin/dnsmasq --user=root -C /var/etc/dnsmasq.conf.cfg01411c -k -x /var/run/dnsmasq/dnsmasq.cfg01411c.pid
2447 root 1464 S grep dnsmasq
- 查看对应的配置
cat /var/etc/dnsmasq.conf.cfg01411c
可以看到刚刚我们在 /etc/config/dhcp 里配置的已经生成在这个配置里
dhcp-option=lan,3,192.168.50.1
dhcp-option=lan,6,192.168.50.1
dhcp-host=xx:yy:xx:yy:xx:yy,set:clash,192.168.50.100
dhcp-option-force=tag:clash,3,192.168.50.8
dhcp-option-force=tag:clash,6,192.168.50.7