OpenWrt网络优化,提升网络稳定性

环境说明

Openwrt 18.06 路由芯片:QCA9531 4G模组:EC200A
编写该文目的:对比同行产品,发现简单搭建的组合(QCA9531+EC200A)跑的网速不太稳定,并且速率也没有同行的高

软件网络优化

DNS优化

DNS是域名系统,更贴切说,域名解析并且路由的管理系统。例如: 百度,如果使用百度真实IP那么设备就可以更直接的访问百度,但是百度IP不容易记住,故产生百度域名(baidu.com)。设备需要访问百度域名,则需要通过DNS域名系统,去找到百度IP。

除了本身设备的带宽,以及访问点内部因素,以及访问内容大小外,还有就是访问路径优化(也就是DNS优化) 有兴趣的朋友可以B站搜索:SmartDNS教程
例如:访问知乎第一次打开时候就会产生DNS时间(别小看这100多ms,因为有时候一个网站需要很多其它子网站,或者时间久了重新请求DNS)
OpenWrt网络优化,提升网络稳定性_第1张图片
第二次访问(9us)
OpenWrt网络优化,提升网络稳定性_第2张图片

优化DNS方式:SmartDNS服务插件(开源源码)

DNS服务插件不是越多越好,DNS服务器插件开启多个可能会有冲突

官网:https://pymumu.github.io/smartdns/
SmartDNS 是一个运行在本地的 DNS 服务器,它接受来自本地客户端的 DNS 查询请求,然后从多个上游 DNS 服务器获取 DNS 查询结果,并将访问速度最快的结果返回给客户端,以此提高网络访问速度。 SmartDNS 同时支持指定特定域名 IP 地址,并高性匹配,可达到过滤广告的效果; 支持DOT(DNS over TLS)和DOH(DNS over HTTPS),更好的保护隐私。
与 DNSmasq 的 all-servers 不同,SmartDNS 返回的是访问速度最快的解析结果。

SmartDNS 下载安装

下载网站入口:https://pymumu.github.io/smartdns/download/
历史版本下载网站:https://github.com/pymumu/smartdns/releases
说明:
如果openwrt 版本高于19.07 则安装
opkg install smartdns.1.yyyy.MM.dd-REL.xxxx.ipk
opkg install luci-app-smartdns.1.yyyy.MM.dd-REL.all.ipk

如果openwrt 版本低于19.07 则安装
opkg install smartdns.1.yyyy.MM.dd-REL.xxxx.ipk
opkg install luci-app-smartdns.1.yyyy.MM.dd-REL.all-luci-compat-all.ipk

因为环境openwrt18.06 故需要luci-compat。另外QCA9531是mips架构,故下载:
smartdns.1.2023.03.04-1125.mips-openwrt-all.ipk
luci-app-smartdns.1.2023.03.04-1125.all-luci-compat-all.ipk
OpenWrt网络优化,提升网络稳定性_第3张图片

将SmartDNS源码打包进入Openwrt系统
添加下载包资源:smartdns

创建相关目录,mkdir feeds/packages/net/smartdns -p

将https://github.com/pymumu/openwrt-smartdns 该文件下载拷贝到该目录
OpenWrt网络优化,提升网络稳定性_第4张图片

OpenWrt网络优化,提升网络稳定性_第5张图片

添加下载包资源:luci-app-smartdns(smartdns可视化界面)

创建相关目录
mkdir feeds/luci/applications/luci-app-smartdns -p

将https://github.com/pymumu/luci-app-smartdns 该文件下载拷贝到该目录
注意:(由于我openwrt版本18.06故选择 lede分支)
仓库分为两个分支
master分支为openwrt 19.07之后版本使用,此版本基于javascript。
lede分支为lede分支使用, 此版本基于lua。
OpenWrt网络优化,提升网络稳定性_第6张图片
OpenWrt网络优化,提升网络稳定性_第7张图片
OpenWrt网络优化,提升网络稳定性_第8张图片

执行下载包资源:smartdns 与 luci-app-smartdns

./scripts/feeds install -a

更新错误
fatal: unable to access 'https://git.openwrt.org/openwrt/openwrt.git/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
解决办法:(关闭ssl验证)
git config --global http.sslVerify "false"
编译smartdns固件

然后配置 make menuconfig


network --->
<*>smartdns

Luci --->
2. Modules  --->  
	-*- luci-compat   (由于openwrt18.06版本,需要添加这个兼容。19.07版本前都需要这个)
3. Applications --->
	<*> luci-app-smartdns


然后make V=s -j8

smartdns 配置说明

在设备中,smartdns配置文件存放 /etc/config/smartdns
后续可以将优化配置文件拷贝放到openwrt源码中: package/base-files/files/etc/config

配置上游DNS

上游DNS服务器,可以通过百度搜索 公共DNS服务器
公共DNS服务器:https://dnsdaquan.com/
注意:
不是配置越多越好,因为运行过多会导致卡顿,一般只配公共DNS服务器
不是配置的越近越好,因为地方性DNS服务器,虽然距离短但是不稳定,导致某些网站访问不了
OpenWrt网络优化,提升网络稳定性_第9张图片

smartdns基础配置

具体的每个选项可以访问官方进行优化,或者教学视频作为参考
OpenWrt网络优化,提升网络稳定性_第10张图片
OpenWrt网络优化,提升网络稳定性_第11张图片

smartdns参考配置
config smartdns
	option server_name 'smartdns'
	option port '53'
	option auto_set_dnsmasq '1'
	option tcp_server '1'
	option ipv6_server '1'
	option bind_device '1'
	option dualstack_ip_selection '1'
	option serve_expired '1'
	option cache_persist '1'
	option resolve_local_hostnames '1'
	option force_aaaa_soa '1'
	option force_https_soa '1'
	option rr_ttl_min '600'
	option seconddns_port '6553'
	option seconddns_tcp_server '1'
	option seconddns_no_speed_check '0'
	option seconddns_no_rule_addr '0'
	option seconddns_no_rule_nameserver '0'
	option seconddns_no_rule_ipset '0'
	option seconddns_no_rule_soa '0'
	option seconddns_no_dualstack_selection '0'
	option seconddns_no_cache '0'
	option seconddns_force_aaaa_soa '0'
	option coredump '0'
	option enable_auto_update '0'
	option enabled '1'
	option prefetch_domain '1'
	option cache_size '30000'
	option old_port '53'
	option old_enabled '1'
	option old_auto_set_dnsmasq '1'

config domain-rule
	option no_speed_check '0'
	option force_aaaa_soa '0'

config server
	option enabled '1'
	option type 'udp'
	option name '114DNS'
	option ip '114.114.114.114'

config server
	option enabled '1'
	option type 'udp'
	option name 'DNSPod-DNS+'
	option ip '119.29.29.29'

config server
	option enabled '1'
	option type 'udp'
	option name 'dnsP'
	option ip '101.226.4.6'

config server
	option enabled '1'
	option type 'udp'
	option name 'dnsUnicom'
	option ip '123.125.81.6'

config server
	option enabled '1'
	option type 'udp'
	option name 'cnnicDNS'
	option ip '1.2.4.8'

config server
	option enabled '1'
	option type 'udp'
	option name 'GoogleDNS'
	option ip '8.8.8.8'

config server
	option enabled '1'
	option type 'udp'
	option name 'CloudflareDNS'
	option ip '1.1.1.1'

config server
	option enabled '1'
	option type 'udp'
	option name 'IBMdns'
	option ip '9.9.9.9'

config server
	option enabled '1'
	option type 'udp'
	option name 'DNS.SB'
	option ip '185.222.222.222'

config server
	option enabled '1'
	option type 'udp'
	option name 'OpenDNS'
	option ip '208.67.222.222'

config server
	option enabled '1'
	option type 'udp'
	option name 'aliyunDNS'
	option ip '223.5.5.5'

config server
	option enabled '1'
	option type 'udp'
	option name 'tencentDNS'
	option ip '183.60.83.19'

config server
	option enabled '1'
	option type 'udp'
	option name 'baiduDNS'
	option ip '180.76.76.76'

config server
	option enabled '1'
	option type 'udp'
	option name 'microsoftDNS'
	option ip '4.2.2.1'

config server
	option enabled '1'
	option type 'udp'
	option name 'huaweiDNS'
	option ip '122.112.208.1'

config server
	option enabled '1'
	option type 'udp'
	option name 'zhonghuaDNS'
	option ip '168.95.192.1'

config server
	option enabled '1'
	option type 'udp'
	option name 'hongkongDNS'
	option ip '203.80.96.10'

优化DNS方式:(后续更新…)

WIFI配置优化

由于openwrt的最初配置按照比较保守方式配置,故需要调整无线配置

QCA9531 无线功能 2*2 MIMO

OpenWrt网络优化,提升网络稳定性_第12张图片

802.11 b/g/n 区别

总结
1. 最大吞吐量11n > 11g > 11b
2. 最大单流速率 11n > 11g > 11b
3. 11n可以支持多天线,而 11g与11b只支持单天线
4. MCS编码区域11n > 11g > 11b
802.11a/b/g/n/ac/ax协议是什么
OpenWrt网络优化,提升网络稳定性_第13张图片
OpenWrt网络优化,提升网络稳定性_第14张图片
OpenWrt网络优化,提升网络稳定性_第15张图片

频宽HT20 HT40区别

对于无线通信技术,提高吞吐量的最直接方法,就是提高频谱的宽度。
对于IEEE 802.11n协议,每个信道的频宽为22MHz,为了减少相邻信道的干扰,两侧预留1MHz的带宽边界。所以有效频宽为20MHz,最大的吞吐量为72.2 Mbps。
通过HT40技术, 将相邻两个频宽为20 MHz的信道绑定起来,预留的带宽也可以用来通讯。子载体将从104(52×2)提高到108。因此,HT40 的最大吞吐量为:72.22108/104 = 150Mbps。
IEEE 802.11协议的频宽
IEEE 802.11a/b/g 使用的频宽是20MHz。
IEEE 802.11n 的频宽模式:HT20 和 HT40。
HT20(兼容性):如果存在802.11 b/g的信号,为了减少干扰,需要设定为HT20,以减少频带的重叠。
HT40(高性能):HT40相当于捆绑两个HT20,主信道发送beacon报文和部分数据报文,辅信道发送其他报文。
IEEE 802.11ac 的频宽模式:HT20,HT40,HT80,HT160。

WIFI介绍
OpenWrt网络优化,提升网络稳定性_第16张图片

openwrt 源码调整 802.11协议类型

openwrt源码中802.11 脚本:package/kernel/mac80211/files/lib/wifi/mac80211.sh
openwrt官方配置:mode_band=“g”

mode_band="n"  或者 mode_band="ng"  选择的9531模组在11n的最大发射功率16dBm 如果在切换发射功率时会改变hwmode=11g
uci -q batch <<-EOF
	set wireless.radio${devidx}=wifi-device
	set wireless.radio${devidx}.type=mac80211
	set wireless.radio${devidx}.channel=auto			# 信道自动获取
	set wireless.radio${devidx}.hwmode=11${mode_band}	# 硬件模式 合法值:11a 11b 11g 11na 11ng
	set wireless.radio${devidx}.txpower=20				# 发射功率
	set wireless.radio${devidx}.country=CN				# 国家代码 遵循国家无线电发射功率标准最大20dBm
	set wireless.radio${devidx}.htmode=HT40				# 频宽 HT20 HT40
	set wireless.radio${devidx}.legacy_rates=0			# 强制 40MHz 模式
	set wireless.radio${devidx}.noscan=1				# 关闭扫描
	${dev_id}
	${ht_capab}
	
	set wireless.default_radio${devidx}=wifi-iface
	set wireless.default_radio${devidx}.device=radio${devidx}
	set wireless.default_radio${devidx}.network=lan
	set wireless.default_radio${devidx}.mode=ap
	set wireless.default_radio${devidx}.ssid=UFI_$(cat /sys/class/ieee80211/${dev}/macaddress|awk -F ":" '{print $5""$6 }'| tr a-z A-Z)
	set wireless.default_radio${devidx}.encryption=psk2
	set wireless.default_radio${devidx}.key=12345678
	set wireless.default_radio${devidx}.noscan=1

深度网络优化

无线射频优化 有线侧网络优化 终端优化 (后续更新…)

你可能感兴趣的:(OpenWrt,网络)