路由器开启 ipv6 梯子就会出现异常,使用 smartdns 可以改善这种情况。
路由器上 ssrp、passwall 等翻墙软件对 ipv6 支持不好,有 ipv6 会导致盒子不能看 youtube、google play 下载应用下载不下来。因为盒子手机这些终端设备里应用 app 都是 ipv6 优先,路由器解析到错误的 ipv6 就会导致这些终端无法翻墙或速度缓慢。有 ipv6 会严重干扰翻墙软件的正常发挥。
Smartdns 可以将查询请求发送到多个上游 DNS 服务器,这些上游服务器可以进行分组进行设置,国内、国外可以进行不同的解析,国内正常使用 ipv6,国外禁用 ipv6 使科学上网正常工作。smartdns 还有其他特性,在此不做介绍。
本篇主要介绍简单使用 SmartDNS,效果不是很完美,记录下折腾过程。需要详细完美的使用 SmartDNS 见 官方 openwrt 软路由科学上网状态下可以完美 IPV6 及科学上网 第三部分。
一、编译含 smartdns 的 openwrt 固件
源码选择 lean 的源码
1、下载 smartdns 源码 终端里执行:
cd
git clone https://github.com/pymumu/openwrt-smartdns lede/package/smartdns/
git clone -b lede https://github.com/pymumu/luci-app-smartdns lede/package/luci-app-smartdns/
注意路径,这两个软件都放入 lede/package 目录
2、在 lede/target/linux/x86 里打开 Makefile 文件,在 DEFAULT_PACKAGES 里面加入 luci-app-smartdns ipv6helper ,这样 make menuconfig 会自动选择 luci-app-smartdns 和 ipv6helper 这两个应用。也可以不改写那 Makefile 文件,make menuconfig 后自己手工选择,ipv6helper 在 Extra packages 里;luci-app-smartdns 在 Luci-Applications 里。
3、编译固件本文来自折腾之路:
cd lede
rm -rf ./tmp && rm -rf .config
make menuconfig
make -j8
二、路由器设置
固件编译完成后刷入路由器。
注意:首先要 ssrp 要关闭,然后再进行相关设置。拨号成功后看 Wan 口有没有获取到 ipv6 地址。获取到了我们再进行下一步设置。
1、删除防火墙自定义规则
lean 的固件在这里劫持了 dns,我们要用 smartdns 作为主 dns 软件。打开 “网络”–“防火墙”–“自定义规则”,删除以下内容:
iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53
iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53
\[ -n "$(command -v ip6tables)" \] && ip6tables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53
\[ -n "$(command -v ip6tables)" \] && ip6tables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53
2、有 “Turbo ACC 网络加速” 的话还需关闭 “DNS 缓存”,不使用这里的缓存。
3、配置 ipv6
“网络”–“接口”–“LAN” 进行 lan 口设置
IPv6 分配长度:60 还是 64,不同地区不一样,根据本地实际情况填入。
[链接登录后可见]
“DHCP 服务器”–“IPV6 设置” 设置 dhcp ipv6
路由公告服务:服务器模式
DHCPv6 服务:服务器模式
NDP 代理:混合模式
DHCPv6 模式:无状态的 + 有状态的
总是通告默认路由:无需勾选
[链接登录后可见]
2、smartdns 设置
“服务”–“smartdns” 进行 smartdns 设置。
(1) 我们不设置 smartdns 为 Dnsmasq 的前置服务,直接将 smartdns 配置为主 dns。
启用 smartdns 服务,本地端口设为 53 。(SmartDNS 本地服务端口,当端口号设置为 53 时,smartdns 将会自动配置为主 dns。)
[链接登录后可见]
(2) 设置上游服务器
增加国内、国外 2 组。
国内可以设置为:114.114.114.114、阿里等 dns、ISP 服务商 dns 等,国内设为 udp 协议。
国外设置为:8.8.8.8 8.8.4.4 1.1.1.1,协议设为 tcp。
[链接登录后可见]
(3) 高级设置,这里设置的是第一组 DNS 服务器,我们当作设置国内 dns 服务。
测速模式:ping 就可以了
ipv6 服务器勾选,国内服务器开启 ipv6
双栈优选勾选,对同时支持 ipv6 和 ipv4 的服务器自动选择快的 ip。
域名预加载勾选,对主流网站自动主动进行预先解析,等你访问时更快一步。
缓存过期服务勾选,对于曾经解析但过期的解析记录,主动进行解析。
缓存大小,缓存个数,100000,可以设置大点。
解析本地主机名,如果你在 Dnsmasq 里设置了各主机名,可以勾选。
[链接登录后可见]
其他无需修改,点击保存 & 应用。
测试 ipv6 电脑是否正常获取,电脑 ipv6 需要启用。[链接登录后可见] 进行测试
(4) 设置国外网站解析,
启用第二 d