首先是N1盒子刷openwrt(F大版固件)做旁路网关(非路由 )的教学
刷openwrt网关模式原贴地址:https://www.right.com.cn/forum/thread-5512947-1-1.html
找到F大主帖地址:https://www.right.com.cn/forum/thread-4076037-1-1.html
请注意,这里是旁路网关模式,和路由模式的区别以及功能测试请看原贴,本贴仅进行旁路网关教学。
推荐刷+o的版本,5内核的,6总是有一些奇奇怪怪的问题
使用 balenaEtcher刷入镜像到U盘
(U盘先用Diskgenius删除所有分区,再一键新建1个分区,格式选 fat32,默认大小)
刷入后插入离HDMI口最近的那个USB槽,然后插入电源,此时默认从U盘中启动
(有些N1盒子需要降级才能使用,或者是进入系统界面,这个时候需要接上键盘进行设定,具体方法可以自行搜索)
启动后默认地址是( 192.168.1.1 ,账号 root密码 password)
打开服务-ttyd终端,账户和密码与后台密码相同
1.输入 ./in后按 tab自动补全
2.选 11
3.选 1
(出现 read-only的报错,证明U盘有问题,换个U盘重新来)
N1启动后连接WIFI或者网线,浏览器输入 192.168.1.1进入后台
找到
网络-接口-LAN——基本设置
协议=静态协议
IPv4地址=你的本机地址
IPv4网关=你的主路由IP
IPv4广播=不填写
使用自定义的DNS服务器=你的主路由IP
往下滑动,找到 基本设置-忽略此接口,打上勾
IPv6设置=全部选已禁用(IPv6代理容易出现问题)
网络-防火墙-防火墙区域设置-关掉启用SYN-flood防御
网络-防火墙-防火墙区域设置-入站数据、出站数据、转发-全部改成接受
至此,它已经是一个合格的旁路网关了
接下来我们开始给不同设备设置不同网关
dnsmasq 设置给不同设备使用不同网关
这个配置解决了传统旁路网关造成的代理问题以及设置麻烦问题
传统的旁路网关有两个模式,第一个是在主路由的wan口-高级设置-DHCP 选项里添加
3,x.x.x.x
6,x.x.x.x
这样DHCP下的所有机器都会使用x.x.x.x为网关和DNS,这就造成了家里有些设备本不需要代理的(例如小米音箱,小米净化器等一众智能设备),博主家里有人在银行上班,类似的国企企业有些程序或者软件使用会影响延迟和网速,甚至有些不允许打开,造成不必要的麻烦。
第二个就是直接在终端设备上手动修改dns和网关,但是这样太麻烦了win和手机都还好,但是一些类似xbox手柄,switch等设备,添加起来特别麻烦,需要一个个的去设置。
而采用dnsmasq的设置,则能够在一个地方,同时修改多台设备,设置完成后添加设备时只需要添加一串命令就好了。
在主路由!在主路由!在主路由!(重要的事情说三遍)
#/etc/dnsmasq.conf 增加下面三行
log-dhcp
log-queries
log-facility=/tmp/dnsmasq.log
openwrt 上 dnsmasq 配置文件是 /var/etc/dnsmasq.conf.cfg01411c
vim /var/etc/dnsmasq.conf.cfg01411c
#更改conf-file=/etc/dnsmasq.conf
vim /etc/dnsmasq.conf
#添加/更改为
resolv-file=/etc/resolv.dnsmasq.conf
vim /etc/config/dhcp
#观察其中配置项 resolvfile 我这里是/tmp/resolv.conf.auto(每个人的不一样)
vim /tmp/resolv.conf.auto
#复制全部内容
vim /etc/resolv.dnsmasq.conf
#将刚刚复制的东西全部粘贴进去
wq!
vim /etc/config/dhcp
#更改option resolvfile里的内容
option resolvfile '/tmp/resolv.conf.auto'
#改成
option resolvfile '/etc/resolv.dnsmasq.conf'
vim /etc/dnsmasq.conf
#添加以下下文本
dhcp-host=MAC-ADDRESS,set:Rule-name,IP,NAME,infinitedhcp-option=tag:Rule-name,option:dns-server,DNSdhcp-option=tag:Rule-name,option:router,GATEWAY
#其中 MAC-ADDRESS, IP, NAME是你要设置的上网机器的地址,ip,和名字,infinite是永久租约,当然也可以设置成12h,或者10m
#Rule-name是规则名字,每加一个设备就要换一个规则名字
#DNS和 GATEWAY都设置为旁路网关的ip
wq!
#查看是否为OK
dnsmasq --test
#启动服务
/etc/init.d/dnsmasq restart
#IF 重启 dnsmasq 服务,不报错的话
cat /tmp/dnsmasq.log
#查看日志,是否显示有如下内容
reading /etc/resolv.dnsmasq.conf
using nameserver x.x.x.x#53
using nameserver x.x.x.x#53
using nameserver x.x.x.x#53
using nameserver x.x.x.x#53
read /etc/hosts - 4 addresses
#证明dnsmasq启动成功
#IF 重启 dnsmasq服务,报错且为udhcpc: no lease, failing
/etc/init.d/dnsmasq stop
dnsmasq -C /etc/dnsmasq.conf --log-debug
#IF 继续报错
dnsmasq: failed to create listening socket for port 53: Address in use
#53端口被占用,查看dnsmasq 状态
/etc/init.d/dnsmasq status
#显示如果是
inactive
#打开你的openwrt
#在 网络-DHCP/DNS-HOSTS和解析文件,先查看是否解析文件已变成/etc/resolv.dnsmasq.conf
#然后滚轮滑下到下面,点击保存并应用
#再次查看log
cat /tmp/dnsmasq.log
/etc/init.d/dnsmasq restart
此时已正常
电脑或者手机上重连网络即可获取新网关和dns地址