我的家庭网络
启
这段时间升级了家庭网络,鼓捣了x86软路由,给部分设备配置自动分流以及配套的的DNS分流。
由于自己使用,直接使用主路由的形式。
下面是本次使用到的相关组件:
- immortalwrt:更适合国内的
OpenWRT,内核直接支持dae - dae:性能超高的内核透明代理方案
- daed:提供
dae的web控制面 luci-app-daed:daed对应的OpenWRTUI插件- smartdns: 提供基于规则的
DNS请求分流 luci-app-smartdns:smartdns对应的OpenWRTUI插件- AdGuardHome:广告屏蔽,以及查看
DNS解析IP adguardhome:adguardhome对应的OpenWRTUI插件- wireguard:最好用的VPN!
luci-proto-wireguard:Wireguard对应的OpenWRTUI插件
流量示意图
DNS查询请求
网络传输
配置
Immortalwrt 配置
安装教程很多,我使用的immortalwrt-23.05.4-x86-64-generic-ext4-combined-efi.img,安装在 N100 的 ESXi 中。
在 ESXi 载入后使用 gparted 扩盘到2G
smartdns
上游服务器
两组或更多组的服务器,根据域名进行分类。
一般规则默认是命中gfw.list中的域名专门走海外DNS,剩余使用国内DNS查询
| 名称 | IP | 类型 | 服务器组 |
|---|---|---|---|
| CN-阿里-DOH | https://223.5.5.5/dns-query | https | 无 |
| CN-阿里-DOH2 | https://223.6.6.6/dns-query | https | 无 |
| CN-腾讯-DOH | https://1.12.12.12/dns-query | https | 无 |
| CN-腾讯-DOH2 | https://120.53.53.53/dns-query | https | 无 |
| GW-谷歌-DOH | https://8.8.8.8/dns-query | https | fq_dns |
| GW-谷歌-DOH2 | https://8.8.4.4/dns-query | https | fq_dns |
| GW-CF-DOH | https://1.1.1.1/dns-query | https | fq_dns |
| GW-CF-DOH2 | https://1.0.0.1/dns-query | https | fq_dns |
第二DNS服务器配置
第二服务器是不会进行分流的,都会通过服务器组配置走流量
- 开启配置
停用IPV6地址解析 - 修改
服务器组为fq_dns
下载文件配置
这里用来下载远端配置文件,并且定时更新
主要来自 V2Ray 路由规则加强版
这里额外下载了geosite和geoip在dae中会用到
域名规则配置
这里可以基于上面下载的域名文件来进行分流
无其实是走默认,可以不配置
| 规则名称 | 服务器组 | 域名列表文件 |
|---|---|---|
| gfw.txt | fq_dns | /etc/smartdns/domain-set/gfw.txt |
| proxy-list.txt | fq_dns | /etc/smartdns/domain-set/proxy-list.txt |
| china-list.txt | 无 | /etc/smartdns/domain-set/china-list.txt |
| win-update.txt | 无 | /etc/smartdns/domain-set/win-update.txt |
| google-cn.txt | 无 | /etc/smartdns/domain-set/google-cn.txt |
| apple-cn.txt | 无 | /etc/smartdns/domain-set/apple-cn.txt |
AdGuardHome
上游DNS服务器->udp://127.0.0.1:6053监听端口->53
Dnsmasq
由于更改 AdGuardHome 在 53 监听,需要将 Dnsmasp 的DNS服务器端口设置0。才能启动
DHCP
由于关闭 Dnsmasq 的 DNS Server,在默认的 DHCP 不会下发默认 DNS Server
需要在 接口|DHCP|高级设置|DHCP选项 加上 6, + DNS Server IP;如 6,10.0.0.0 通告额外 DNS Server
DAED 配置
geoip & geosite 自动更新
使用 ln -s, 将 SmartDNS下载的 dat 文件,软链到 /etc/daed 中
1 | ln -s /etc/smartdns/download/geoip.dat /etc/daed/geoip.dat |
Global
连接选项 | 拨号模式->domain+连接选项 | TLS实现->utls连接选项 | uTLS模仿->chrome_auto
DNS
1 | upstream { |
路由
路由由以下几个部分组成,优先配置直连的规则,最后使用分流兜底。
DNS相关配置
dae 默认会劫持DNS请求,使用 must_direct 代表请求不会被劫持
这里 pname 指的是 Openwrt 中跑的进程,可以用 ps 找到
1 | # 进程级的豁免 |
客户机直连设置
我的网段为 30.1.0.0/22,普通设备没有分流需求,所以做额外指定
1 | # Client |
内网地址直连
1 | # LOCAL |
分流规则
1 | # 国内网段直连 |
WireGuard Client 配置
- 新增一个
Interface,协议选择WireGuard VPN。配置好相关参数。 - 新增防火墙
WG,开启MSS 钳制。参考 OpenWrt 中的 MSS 钳制是干什么用的 - 新增
LAN->WG转发,参考LAN->WAN的规则
详细配置如下
1 | # /etc/config/network |
1 | # /etc/config/firewall |