mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-03-09 15:40:03 +00:00
parent
2096997ef7
commit
b28cad97f6
31 changed files with 673 additions and 1015 deletions
|
|
@ -1,62 +0,0 @@
|
|||
# SPDX-Identifier-License: GPL-3.0-only
|
||||
#
|
||||
# Copyright (C) 2018 Lean <coolsnowwolf@gmail.com>
|
||||
# Copyright (C) 2019-2021 ImmortalWrt.org
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-turboacc
|
||||
PKG_RELEASE:=$(COMMITCOUNT)
|
||||
|
||||
PKG_LICENSE:=GPL-3.0-only
|
||||
PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org>
|
||||
|
||||
PKG_CONFIG_DEPENDS:= \
|
||||
CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_BBR_CCA \
|
||||
CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_DNSFORWARDER \
|
||||
CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_DNSPROXY \
|
||||
CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_OFFLOADING \
|
||||
CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_SHORTCUT_FE \
|
||||
CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_SHORTCUT_FE_DRV
|
||||
|
||||
LUCI_TITLE:=LuCI support for Flow Offload / Shortcut-FE
|
||||
LUCI_PKGARCH:=all
|
||||
LUCI_DEPENDS:=+pdnsd-alt \
|
||||
+PACKAGE_$(PKG_NAME)_INCLUDE_BBR_CCA:kmod-tcp-bbr \
|
||||
+PACKAGE_$(PKG_NAME)_INCLUDE_DNSFORWARDER:dnsforwarder \
|
||||
+PACKAGE_$(PKG_NAME)_INCLUDE_DNSPROXY:dnsproxy \
|
||||
+PACKAGE_$(PKG_NAME)_INCLUDE_OFFLOADING:kmod-ipt-offload \
|
||||
+PACKAGE_$(PKG_NAME)_INCLUDE_SHORTCUT_FE:kmod-shortcut-fe-cm \
|
||||
+PACKAGE_$(PKG_NAME)_INCLUDE_SHORTCUT_FE_DRV:kmod-shortcut-fe-drv
|
||||
|
||||
define Package/$(PKG_NAME)/config
|
||||
config PACKAGE_$(PKG_NAME)_INCLUDE_OFFLOADING
|
||||
bool "Include Flow Offload"
|
||||
depends on (PACKAGE_$(PKG_NAME)_INCLUDE_SHORTCUT_FE=n && PACKAGE_$(PKG_NAME)_INCLUDE_SHORTCUT_FE_DRV=n)
|
||||
default y if i386||x86_64||TARGET_ramips
|
||||
|
||||
config PACKAGE_$(PKG_NAME)_INCLUDE_SHORTCUT_FE_DRV
|
||||
bool "Include Shortcut-FE for ECM"
|
||||
depends on PACKAGE_$(PKG_NAME)_INCLUDE_SHORTCUT_FE=n
|
||||
default y if (TARGET_ipq806x||TARGET_ipq807x)
|
||||
|
||||
config PACKAGE_$(PKG_NAME)_INCLUDE_SHORTCUT_FE
|
||||
bool "Include Shortcut-FE"
|
||||
default y if !(TARGET_ipq806x||TARGET_ipq807x||TARGET_ramips)
|
||||
|
||||
config PACKAGE_$(PKG_NAME)_INCLUDE_BBR_CCA
|
||||
bool "Include BBR CCA"
|
||||
default y
|
||||
|
||||
config PACKAGE_$(PKG_NAME)_INCLUDE_DNSFORWARDER
|
||||
bool "Include DNSForwarder"
|
||||
default n
|
||||
|
||||
config PACKAGE_$(PKG_NAME)_INCLUDE_DNSPROXY
|
||||
bool "Include DNSProxy"
|
||||
default n
|
||||
endef
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
module("luci.controller.turboacc", package.seeall)
|
||||
|
||||
function index()
|
||||
if not nixio.fs.access("/etc/config/turboacc") then
|
||||
return
|
||||
end
|
||||
local page
|
||||
page = entry({"admin", "network", "turboacc"}, cbi("turboacc"), _("Turbo ACC Center"), 1000)
|
||||
page.i18n = "turboacc"
|
||||
page.dependent = true
|
||||
|
||||
entry({"admin", "network", "turboacc", "status"}, call("action_status"))
|
||||
end
|
||||
|
||||
local function fastpath_status()
|
||||
return luci.sys.call("/etc/init.d/turboacc check_status fastpath") == 0
|
||||
end
|
||||
|
||||
local function bbr_status()
|
||||
return luci.sys.call("/etc/init.d/turboacc check_status bbr") == 0
|
||||
end
|
||||
|
||||
local function fullconenat_status()
|
||||
return luci.sys.call("/etc/init.d/turboacc check_status fullconenat") == 0
|
||||
end
|
||||
|
||||
local function dnscaching_status()
|
||||
return luci.sys.call("/etc/init.d/turboacc check_status dns") == 0
|
||||
end
|
||||
|
||||
function action_status()
|
||||
luci.http.prepare_content("application/json")
|
||||
luci.http.write_json({
|
||||
fastpath_state = fastpath_status(),
|
||||
fullconenat_state = fullconenat_status(),
|
||||
bbr_state = bbr_status(),
|
||||
dnscaching_state = dnscaching_status()
|
||||
})
|
||||
end
|
||||
|
|
@ -1,67 +0,0 @@
|
|||
local kernel_version = luci.sys.exec("echo -n $(uname -r)")
|
||||
|
||||
m = Map("turboacc")
|
||||
m.title = translate("Turbo ACC Acceleration Settings")
|
||||
m.description = translate("Opensource Flow Offloading driver (Fast Path or Hardware NAT)")
|
||||
|
||||
m:append(Template("turboacc/turboacc_status"))
|
||||
|
||||
s = m:section(TypedSection, "turboacc", "")
|
||||
s.addremove = false
|
||||
s.anonymous = true
|
||||
|
||||
if nixio.fs.access("/lib/modules/" .. kernel_version .. "/xt_FLOWOFFLOAD.ko") then
|
||||
sw_flow = s:option(Flag, "sw_flow", translate("Software flow offloading"))
|
||||
sw_flow.default = 0
|
||||
sw_flow.description = translate("Software based offloading for routing/NAT")
|
||||
sw_flow:depends("sfe_flow", 0)
|
||||
end
|
||||
|
||||
if luci.sys.call("cat /proc/cpuinfo | grep -q MT76") == 0 then
|
||||
hw_flow = s:option(Flag, "hw_flow", translate("Hardware flow offloading"))
|
||||
hw_flow.default = 0
|
||||
hw_flow.description = translate("Requires hardware NAT support. Implemented at least for mt76xx")
|
||||
hw_flow:depends("sw_flow", 1)
|
||||
end
|
||||
|
||||
if nixio.fs.access("/lib/modules/" .. kernel_version .. "/shortcut-fe-cm.ko") then
|
||||
sfe_flow = s:option(Flag, "sfe_flow", translate("Shortcut-FE flow offloading"))
|
||||
sfe_flow.default = 0
|
||||
sfe_flow.description = translate("Shortcut-FE based offloading for routing/NAT")
|
||||
sfe_flow:depends("sw_flow", 0)
|
||||
end
|
||||
|
||||
if nixio.fs.access("/lib/modules/" .. kernel_version .. "/tcp_bbr.ko") then
|
||||
bbr_cca = s:option(Flag, "bbr_cca", translate("BBR CCA"))
|
||||
bbr_cca.default = 0
|
||||
bbr_cca.description = translate("Using BBR CCA can improve TCP network performance effectively")
|
||||
end
|
||||
|
||||
if nixio.fs.access("/lib/modules/" .. kernel_version .. "/xt_FULLCONENAT.ko") then
|
||||
fullcone_nat = s:option(Flag, "fullcone_nat", translate("FullCone NAT"))
|
||||
fullcone_nat.default = 0
|
||||
fullcone_nat.description = translate("Using FullCone NAT can improve gaming performance effectively")
|
||||
end
|
||||
|
||||
dns_caching = s:option(Flag, "dns_caching", translate("DNS Caching"))
|
||||
dns_caching.default = 0
|
||||
dns_caching.rmempty = false
|
||||
dns_caching.description = translate("Enable DNS Caching and anti ISP DNS pollution")
|
||||
|
||||
dns_caching_mode = s:option(ListValue, "dns_caching_mode", translate("Resolve DNS Mode"), translate("DNS Program"))
|
||||
dns_caching_mode:value("1", translate("Using PDNSD to query and cache"))
|
||||
if nixio.fs.access("/usr/bin/dnsforwarder") then
|
||||
dns_caching_mode:value("2", translate("Using DNSForwarder to query and cache"))
|
||||
end
|
||||
if nixio.fs.access("/usr/bin/dnsproxy") then
|
||||
dns_caching_mode:value("3", translate("Using DNSProxy to query and cache"))
|
||||
end
|
||||
dns_caching_mode.default = 1
|
||||
dns_caching_mode:depends("dns_caching", 1)
|
||||
|
||||
dns_caching_dns = s:option(Value, "dns_caching_dns", translate("Upsteam DNS Server"))
|
||||
dns_caching_dns.default = "114.114.114.114,114.114.115.115,223.5.5.5,223.6.6.6,180.76.76.76,119.29.29.29,119.28.28.28,1.2.4.8,210.2.4.8"
|
||||
dns_caching_dns.description = translate("Muitiple DNS server can saperate with ','")
|
||||
dns_caching_dns:depends("dns_caching", 1)
|
||||
|
||||
return m
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
<fieldset class="cbi-section">
|
||||
<legend><%:Running Status%></legend>
|
||||
<table width="100%" cellspacing="10" id="_turboacc_status_table">
|
||||
<tr><td width="33%"><%:Flow Offloading%></td><td id="_fastpath_state"><em><%:Collecting data...%></em></td></tr>
|
||||
<tr><td width="33%"><%:FullCone NAT%></td><td id="_fullconenat_state"><em><%:Collecting data...%></em></td></tr>
|
||||
<tr><td width="33%"><%:BBR CCA%></td><td id="_bbr_state"><em><%:Collecting data...%></em></td></tr>
|
||||
<tr><td width="33%"><%:DNS Caching%></td><td id="_dnscaching_state"><em><%:Collecting data...%></em></td></tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
|
||||
<script type="text/javascript">//<![CDATA[
|
||||
var fastpath_state = document.getElementById('_fastpath_state');
|
||||
var bbr_state = document.getElementById('_bbr_state');
|
||||
var fullconenat_state = document.getElementById('_fullconenat_state');
|
||||
var dnscaching_state = document.getElementById('_dnscaching_state');
|
||||
XHR.poll(5, '<%=luci.dispatcher.build_url("admin", "network", "turboacc", "status")%>', null, function(x, status) {
|
||||
if ( x && x.status == 200 ) {
|
||||
fastpath_state.innerHTML = status.fastpath_state ? '<em><b><font color=green><%=luci.sys.exec("/etc/init.d/turboacc check_status fastpath")%></font></b></em>' : '<em><b><font color=red><%:NOT RUNNING%></font></b></em>';
|
||||
fullconenat_state.innerHTML = status.fullconenat_state ? '<em><b><font color=green><%:RUNNING%></font></b></em>' : '<em><b><font color=red><%:NOT RUNNING%></font></b></em>';
|
||||
bbr_state.innerHTML = status.bbr_state ? '<em><b><font color=green><%:RUNNING%></font></b></em>' : '<em><b><font color=red><%:NOT RUNNING%></font></b></em>';
|
||||
dnscaching_state.innerHTML = status.dnscaching_state ? '<em><b><font color=green><%:RUNNING%></font></b></em>' : '<em><b><font color=red><%:NOT RUNNING%></font></b></em>';
|
||||
}
|
||||
});
|
||||
//]]>
|
||||
//]]></script>
|
||||
|
|
@ -1,99 +0,0 @@
|
|||
msgid "Turbo ACC Center"
|
||||
msgstr "Turbo ACC 网络加速"
|
||||
|
||||
msgid "Turbo ACC Acceleration Settings"
|
||||
msgstr "Turbo ACC 网络加速设置"
|
||||
|
||||
msgid "Linux Flow Offload Forwarding Engine Settings"
|
||||
msgstr "Linux Flow Offload Forwarding 转发加速引擎设置"
|
||||
|
||||
msgid "Opensource Flow Offloading driver (Fast Path or Hardware NAT)"
|
||||
msgstr "开源流量分载驱动 (支持 Fast Path 或者 硬件 NAT)"
|
||||
|
||||
msgid "Software flow offloading"
|
||||
msgstr "软件流量分载"
|
||||
|
||||
msgid "Software based offloading for routing/NAT"
|
||||
msgstr "基于软件的 Routing/NAT 分载"
|
||||
|
||||
msgid "Hardware flow offloading"
|
||||
msgstr "硬件流量分载"
|
||||
|
||||
msgid "Requires hardware NAT support. Implemented at least for mt76xx"
|
||||
msgstr "需要硬件 NAT 支持。目前 mt76xx 已实现"
|
||||
|
||||
msgid "Shortcut-FE flow offloading"
|
||||
msgstr "Shortcut-FE 流量分载"
|
||||
|
||||
msgid "Shortcut-FE based offloading for routing/NAT"
|
||||
msgstr "基于 Shortcut-FE 的 Routing/NAT 分载"
|
||||
|
||||
msgid "Bridge Acceleration"
|
||||
msgstr "桥接加速"
|
||||
|
||||
msgid "Enable Bridge Acceleration (may be functional conflict with bridge-mode VPN server)"
|
||||
msgstr "启用桥接加速 (可能会和路由器上桥接模式的VPN服务器冲突)"
|
||||
|
||||
msgid "IPv6 Acceleration"
|
||||
msgstr "IPv6 加速"
|
||||
|
||||
msgid "Enable IPv6 Acceleration"
|
||||
msgstr "启用 IPv6 加速"
|
||||
|
||||
msgid "BBR CCA"
|
||||
msgstr "BBR 拥塞控制算法"
|
||||
|
||||
msgid "Using BBR CCA can improve TCP network performance effectively"
|
||||
msgstr "使用 BBR 拥塞控制算法可以有效提升 TCP 网络性能"
|
||||
|
||||
msgid "FullCone NAT"
|
||||
msgstr "全锥形 NAT"
|
||||
|
||||
msgid "Using FullCone NAT can improve gaming performance effectively"
|
||||
msgstr "使用全锥形 NAT 可以有效提升游戏体验"
|
||||
|
||||
msgid "DNS Caching"
|
||||
msgstr "DNS 缓存"
|
||||
|
||||
msgid "Enable DNS Caching and anti ISP DNS pollution"
|
||||
msgstr "启用 DNS 多线程查询、缓存,并防止 ISP 的 DNS 广告和域名劫持"
|
||||
|
||||
msgid "Resolve DNS Mode"
|
||||
msgstr "DNS 解析方式"
|
||||
|
||||
msgid "DNS Program"
|
||||
msgstr "DNS 解析程序"
|
||||
|
||||
msgid "Using PDNSD to query and cache"
|
||||
msgstr "使用 PDNSD 解析"
|
||||
|
||||
|
||||
msgid "Using DNSForwarder to query and cache"
|
||||
msgstr "使用 DNSForwarder 解析"
|
||||
|
||||
msgid "Using DNSProxy to query and cache"
|
||||
msgstr "使用 DNSProxy 解析"
|
||||
|
||||
msgid "Upsteam DNS Server"
|
||||
msgstr "上游 DNS 服务器"
|
||||
|
||||
msgid "Muitiple DNS server can saperate with ','"
|
||||
msgstr "多个上游 DNS 服务器请用 ',' 分隔(注意用英文逗号)"
|
||||
|
||||
msgid "Running Status"
|
||||
msgstr "运行状态"
|
||||
|
||||
msgid "Flow Offloading"
|
||||
msgstr "流量分载"
|
||||
|
||||
msgid "BBR CCA"
|
||||
msgstr "BBR 拥塞控制算法"
|
||||
|
||||
msgid "FullCone NAT"
|
||||
msgstr "全锥型 NAT"
|
||||
|
||||
msgid "DNS Caching"
|
||||
msgstr "DNS 缓存"
|
||||
|
||||
msgid "Open Web Interface"
|
||||
msgstr "打开 Web 界面"
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
|
||||
config turboacc 'config'
|
||||
option sw_flow '1'
|
||||
option hw_flow '1'
|
||||
option sfe_flow '1'
|
||||
option fullcone_nat '1'
|
||||
option bbr_cca '0'
|
||||
option dns_caching '0'
|
||||
option dns_caching_mode '1'
|
||||
option dns_caching_dns '114.114.114.114,114.114.115.115,223.5.5.5,223.6.6.6,180.76.76.76,119.29.29.29,119.28.28.28,1.2.4.8,210.2.4.8'
|
||||
|
|
@ -1,345 +0,0 @@
|
|||
#!/bin/sh /etc/rc.common
|
||||
# Copyright (C) 2018 Lean <coolsnowwolf@gmail.com>
|
||||
# Copyright (C) 2019-2021 Tianling Shen <cnsztl@immortalwrt.org>
|
||||
|
||||
START=90
|
||||
STOP=10
|
||||
|
||||
EXTRA_COMMANDS="check_status"
|
||||
EXTRA_HELP=" check_status Check running status of utils"
|
||||
|
||||
restart_utils="true"
|
||||
|
||||
inital_conf(){
|
||||
config_load "turboacc"
|
||||
config_get "sw_flow" "config" "sw_flow" "0"
|
||||
config_get "hw_flow" "config" "hw_flow" "0"
|
||||
config_get "sfe_flow" "config" "sfe_flow" "0"
|
||||
config_get "bbr_cca" "config" "bbr_cca" "0"
|
||||
config_get "fullcone_nat" "config" "fullcone_nat" "0"
|
||||
config_get "dns_caching" "config" "dns_caching" "0"
|
||||
config_get "dns_caching_mode" "config" "dns_caching_mode" "0"
|
||||
config_get "dns_caching_dns" "config" "dns_caching_dns"
|
||||
|
||||
[ ! -e "/lib/modules/$(uname -r)/xt_FLOWOFFLOAD.ko" ] && { sw_flow="0"; hw_flow="0"; }
|
||||
[ ! -e "/lib/modules/$(uname -r)/shortcut-fe-cm.ko" ] && sfe_flow="0"
|
||||
[ ! -e "/lib/modules/$(uname -r)/tcp_bbr.ko" ] && bbr_cca="0"
|
||||
[ ! -e "/lib/modules/$(uname -r)/xt_FULLCONENAT.ko" ] && fullcone_nat="0"
|
||||
}
|
||||
|
||||
start_pdnsd() {
|
||||
[ -d "/var/run/dnscache" ] || mkdir -p "/var/run/dnscache"
|
||||
cat > "/var/run/dnscache/dnscache.conf" <<EOF
|
||||
global {
|
||||
perm_cache=1024; # dns缓存大小,单位KB,建议不要写的太大
|
||||
cache_dir="/var/dnscache"; # 缓存文件的位置
|
||||
pid_file = /var/run/dnscache.pid;
|
||||
server_ip = 127.0.0.1; # pdnsd监听的网卡,0.0.0.0是全部网卡
|
||||
server_port=5333; # pdnsd监听的端口,不要和别的服务冲突即可
|
||||
status_ctl = on;
|
||||
paranoid=on; # 二次请求模式,如果请求主DNS服务器返回的是垃圾地址,就向备用服务器请求
|
||||
query_method=udp_only;
|
||||
neg_domain_pol = off;
|
||||
par_queries = 400; # 最多同时请求数
|
||||
min_ttl = 1h; # DNS结果最短缓存时间
|
||||
max_ttl = 1w; # DNS结果最长缓存时间
|
||||
timeout = 10; # DNS请求超时时间,单位秒
|
||||
}
|
||||
|
||||
server {
|
||||
label = "routine";
|
||||
ip = ${dns_caching_dns}; # 这里为主要上级 dns 的 ip 地址,建议填写一个当地最快的DNS地址
|
||||
timeout = 5; # DNS请求超时时间
|
||||
reject = 74.125.127.102, # 以下是脏IP,也就是DNS污染一般会返回的结果,如果收到如下DNS结果会触发二次请求(TCP协议一般不会碰到脏IP)
|
||||
74.125.155.102,
|
||||
74.125.39.102,
|
||||
74.125.39.113,
|
||||
209.85.229.138,
|
||||
128.121.126.139,
|
||||
159.106.121.75,
|
||||
169.132.13.103,
|
||||
192.67.198.6,
|
||||
202.106.1.2,
|
||||
202.181.7.85,
|
||||
203.161.230.171,
|
||||
203.98.7.65,
|
||||
207.12.88.98,
|
||||
208.56.31.43,
|
||||
209.145.54.50,
|
||||
209.220.30.174,
|
||||
209.36.73.33,
|
||||
211.94.66.147,
|
||||
213.169.251.35,
|
||||
216.221.188.182,
|
||||
216.234.179.13,
|
||||
243.185.187.39,
|
||||
37.61.54.158,
|
||||
4.36.66.178,
|
||||
46.82.174.68,
|
||||
59.24.3.173,
|
||||
64.33.88.161,
|
||||
64.33.99.47,
|
||||
64.66.163.251,
|
||||
65.104.202.252,
|
||||
65.160.219.113,
|
||||
66.45.252.237,
|
||||
69.55.52.253,
|
||||
72.14.205.104,
|
||||
72.14.205.99,
|
||||
78.16.49.15,
|
||||
8.7.198.45,
|
||||
93.46.8.89,
|
||||
37.61.54.158,
|
||||
243.185.187.39,
|
||||
190.93.247.4,
|
||||
190.93.246.4,
|
||||
190.93.245.4,
|
||||
190.93.244.4,
|
||||
65.49.2.178,
|
||||
189.163.17.5,
|
||||
23.89.5.60,
|
||||
49.2.123.56,
|
||||
54.76.135.1,
|
||||
77.4.7.92,
|
||||
118.5.49.6,
|
||||
159.24.3.173,
|
||||
188.5.4.96,
|
||||
197.4.4.12,
|
||||
220.250.64.24,
|
||||
243.185.187.30,
|
||||
249.129.46.48,
|
||||
253.157.14.165;
|
||||
reject_policy = fail;
|
||||
}
|
||||
|
||||
server {
|
||||
label = "special"; # 这个随便写
|
||||
ip = 117.50.10.10,52.80.52.52,119.29.29.29; # 这里为备用DNS服务器的 ip 地址
|
||||
port = 5353; # 推荐使用53以外的端口(DNS服务器必须支持
|
||||
proxy_only = on;
|
||||
timeout = 5;
|
||||
}
|
||||
|
||||
source {
|
||||
owner=localhost;
|
||||
// serve_aliases=on;
|
||||
file="/etc/hosts";
|
||||
}
|
||||
|
||||
rr {
|
||||
name=localhost;
|
||||
reverse=on;
|
||||
a=127.0.0.1;
|
||||
owner=localhost;
|
||||
soa=localhost,root.localhost,42,86400,900,86400,86400;
|
||||
}
|
||||
EOF
|
||||
|
||||
if [ ! -f "/var/dnscache/pdnsd.cache" ]; then
|
||||
mkdir -p "/var/dnscache"
|
||||
echo -ne "pd13\000\000\000\000" > "/var/dnscache/pdnsd.cache"
|
||||
chown -R nobody.nogroup "/var/dnscache"
|
||||
fi
|
||||
|
||||
[ -d "/var/sbin" ] || mkdir -p "/var/sbin"
|
||||
cp -a "/usr/sbin/pdnsd" "/var/sbin/dnscache"
|
||||
/var/sbin/dnscache -c "/var/run/dnscache/dnscache.conf" > "/var/log/dnscache.file" 2>&1 &
|
||||
echo "PDNSD: Start DNS Caching"
|
||||
}
|
||||
|
||||
start_dnsforwarder() {
|
||||
mkdir -p "/var/run/dnscache"
|
||||
cat > "/var/run/dnscache/dnscache.conf" <<EOF
|
||||
LogOn false
|
||||
LogFileThresholdLength 102400
|
||||
LogFileFolder /var/run/dnscache
|
||||
UDPLocal 127.0.0.1:5333
|
||||
UDPGroup ${dns_caching_dns} * on
|
||||
GroupFile
|
||||
BlockIP 243.185.187.39,46.82.174.68,37.61.54.158,93.46.8.89,59.24.3.173,203.98.7.65,8.7.198.45,78.16.49.15,159.106.121.75,69.63.187.12,31.13.76.8,31.13.64.49
|
||||
IPSubstituting
|
||||
BlockNegativeResponse false
|
||||
Hosts
|
||||
HostsUpdateInterval 18000
|
||||
HostsDownloadPath
|
||||
HostsScript
|
||||
HostsRetryInterval 30
|
||||
AppendHosts
|
||||
BlockIpv6WhenIpv4Exists false
|
||||
UseCache true
|
||||
CacheSize 1048576
|
||||
MemoryCache true
|
||||
CacheFile
|
||||
IgnoreTTL false
|
||||
OverrideTTL -1
|
||||
MultipleTTL 1
|
||||
ReloadCache false
|
||||
OverwriteCache false
|
||||
DisabledType
|
||||
DisabledDomain
|
||||
DisabledList
|
||||
DomainStatistic false
|
||||
DomainStatisticTempletFile
|
||||
StatisticUpdateInterval 29
|
||||
EOF
|
||||
|
||||
[ -d "/var/sbin" ] || mkdir -p "/var/sbin"
|
||||
cp -a "/usr/bin/dnsforwarder" "/var/sbin/dnscache"
|
||||
/var/sbin/dnscache -f "/var/run/dnscache/dnscache.conf" > "/var/log/dnscache.file" 2>&1 &
|
||||
echo "DnsForwarder: Start DNS Caching"
|
||||
|
||||
}
|
||||
|
||||
start_dnsproxy() {
|
||||
[ -d "/var/run/dnscache" ] || mkdir -p "/var/run/dnscache"
|
||||
echo -e "${dns_caching_dns//,/\\n}" > "/var/run/dnscache/dnscache.conf"
|
||||
|
||||
[ -d "/var/sbin" ] || mkdir -p "/var/sbin"
|
||||
cp -a "/usr/bin/dnsproxy" "/var/sbin/dnscache"
|
||||
/var/sbin/dnscache -l "127.0.0.1" -p "5333" -b "tls://9.9.9.9" -f "tls://8.8.8.8" -u "/var/run/dnscache/dnscache.conf" --all-servers --cache --cache-min-ttl=3600 > "/var/log/dnscache.file" 2>&1 &
|
||||
echo "DNSProxy: Start DNS Caching"
|
||||
}
|
||||
|
||||
stop_dnscache() {
|
||||
killall -9 "dnscache"
|
||||
kill -9 $(ps | grep dnscache-while.sh | grep -v "grep" | awk '{print $1}')
|
||||
rm -rf "/var/dnscache" "/var/run/dnscache"
|
||||
echo "Stop DNS Caching"
|
||||
}
|
||||
|
||||
change_dns() {
|
||||
uci -q delete dhcp.@dnsmasq[0].server
|
||||
uci add_list dhcp.@dnsmasq[0].server="127.0.0.1#5333"
|
||||
uci set dhcp.@dnsmasq[0].noresolv="1"
|
||||
uci commit dhcp
|
||||
|
||||
}
|
||||
|
||||
revert_dns() {
|
||||
uci -q del_list dhcp.@dnsmasq[0].server="127.0.0.1#5333"
|
||||
uci set dhcp.@dnsmasq[0].resolvfile="/tmp/resolv.conf.d/resolv.conf.auto"
|
||||
uci set dhcp.@dnsmasq[0].noresolv="0"
|
||||
uci commit dhcp
|
||||
}
|
||||
|
||||
start(){
|
||||
inital_conf
|
||||
|
||||
uci set firewall.@defaults[0].flow_offloading="${sw_flow}"
|
||||
uci set firewall.@defaults[0].flow_offloading_hw="${hw_flow}"
|
||||
uci set firewall.@defaults[0].fullcone="${fullcone_nat}"
|
||||
uci commit firewall
|
||||
|
||||
[ "${sw_flow}" -ne "1" ] && [ "${sfe_flow}" -eq "1" ] && {
|
||||
[ "$(have_ecm_init)" = "0" ] && {
|
||||
/etc/init.d/shortcut-fe enabled || /etc/init.d/shortcut-fe enable
|
||||
/etc/init.d/shortcut-fe start
|
||||
}
|
||||
}
|
||||
|
||||
if [ "${bbr_cca}" -eq "1" ]; then
|
||||
sysctl -w net.ipv4.tcp_congestion_control="bbr"
|
||||
else
|
||||
sysctl -w net.ipv4.tcp_congestion_control="cubic"
|
||||
fi
|
||||
|
||||
if [ "${dns_caching}" -eq "1" ]; then
|
||||
stop_dnscache
|
||||
sleep 1
|
||||
|
||||
rm -f "/var/log/dnscache.file"
|
||||
if [ "${dns_caching_mode}" = "1" ]; then
|
||||
start_pdnsd
|
||||
elif [ "${dns_caching_mode}" = "2" ]; then
|
||||
start_dnsforwarder
|
||||
elif [ "${dns_caching_mode}" = "3" ]; then
|
||||
start_dnsproxy
|
||||
fi
|
||||
|
||||
change_dns
|
||||
/usr/share/dnscache/dnscache-while.sh > "/var/log/dnscache.file" 2>&1 &
|
||||
else
|
||||
stop_dnscache
|
||||
revert_dns
|
||||
fi
|
||||
|
||||
if [ "${restart_utils}" = "true" ]; then
|
||||
/etc/init.d/dnsmasq restart >"/dev/null" 2>&1 && echo "DNSMASQ change"
|
||||
/etc/init.d/firewall restart >"/dev/null" 2>&1
|
||||
fi
|
||||
}
|
||||
|
||||
stop(){
|
||||
inital_conf
|
||||
|
||||
uci set firewall.@defaults[0].flow_offloading="${sw_flow}"
|
||||
uci set firewall.@defaults[0].flow_offloading_hw="${hw_flow}"
|
||||
uci set firewall.@defaults[0].fullcone="${fullcone_nat}"
|
||||
uci commit firewall
|
||||
|
||||
[ "${sfe_flow}" -ne "1" ] && {
|
||||
[ -e "/etc/init.d/shortcut-fe" ] && [ "$(have_ecm_init)" = "0" ] && {
|
||||
/etc/init.d/shortcut-fe stop 2>"/dev/null"
|
||||
/etc/init.d/shortcut-fe enabled && /etc/init.d/shortcut-fe disable
|
||||
}
|
||||
}
|
||||
|
||||
stop_dnscache
|
||||
revert_dns
|
||||
|
||||
if [ "${restart_utils}" = "true" ]; then
|
||||
/etc/init.d/dnsmasq restart >"/dev/null" 2>&1 && echo "DNSMASQ revert"
|
||||
/etc/init.d/firewall restart >"/dev/null" 2>&1
|
||||
fi
|
||||
}
|
||||
|
||||
restart(){
|
||||
restart_utils="false"
|
||||
stop
|
||||
start
|
||||
/etc/init.d/dnsmasq restart >"/dev/null" 2>&1 && echo "DNSMASQ restart"
|
||||
/etc/init.d/firewall restart >"/dev/null" 2>&1
|
||||
}
|
||||
|
||||
have_ecm_init() {
|
||||
[ -d "/etc/init.d/qca-nss-ecm" ] && echo 1 && return
|
||||
echo 0
|
||||
}
|
||||
|
||||
check_status(){
|
||||
case "$1" in
|
||||
"fastpath")
|
||||
if [ "$(cat "/sys/module/xt_FLOWOFFLOAD/refcnt" 2>"/dev/null" || echo 0)" -ne "0" ]; then
|
||||
echo -n "Flow Offloading"
|
||||
exit 0
|
||||
elif lsmod | grep -q "ecm"; then
|
||||
if lsmod | grep -q "shortcut_fe_drv"; then
|
||||
echo -n "QCA-NSS-ECM-SFE"
|
||||
exit 0
|
||||
else
|
||||
echo -n "QCA-NSS-ECM"
|
||||
exit 0
|
||||
fi
|
||||
elif lsmod | grep -q "shortcut_fe_cm"; then
|
||||
echo -n "Shortcut-FE"
|
||||
exit 0
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
"fullconenat")
|
||||
[ "$(cat "/sys/module/xt_FULLCONENAT/refcnt" 2>"/dev/null" || echo 0)" -ne "0" ] && \
|
||||
exit 0 || exit 1
|
||||
;;
|
||||
"bbr")
|
||||
[ "x$(cat "/proc/sys/net/ipv4/tcp_congestion_control" 2>"/dev/null")" = "xbbr" ] && \
|
||||
exit 0 || exit 1
|
||||
;;
|
||||
"dns")
|
||||
pgrep "dnscache" >"/dev/null" && exit 0 || exit 1
|
||||
;;
|
||||
*)
|
||||
exit 2
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
delete ucitrack.@turboacc[-1]
|
||||
add ucitrack turboacc
|
||||
set ucitrack.@turboacc[-1].init=turboacc
|
||||
commit ucitrack
|
||||
EOF
|
||||
|
||||
exit 0
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
sleeptime=60
|
||||
|
||||
dnsconf="/var/run/dnscache/dnscache.conf"
|
||||
dnsprogram="/var/sbin/dnscache"
|
||||
logfile="/var/log/dnscache.file"
|
||||
|
||||
dns_caching="$(uci -q get turboacc.config.dns_caching)"
|
||||
dns_caching_mode="$(uci -q get turboacc.config.dns_caching_mode)"
|
||||
|
||||
clean_log() {
|
||||
logrow="$(grep -c "" "${logfile}")"
|
||||
[ "${logrow}" -lt "500" ] || echo "${curtime} Log 条数超限,清空处理!" > "${logfile}"
|
||||
}
|
||||
|
||||
while [ "${dns_caching}" -eq "1" ];
|
||||
do
|
||||
curtime="$(date "+%H:%M:%S")"
|
||||
|
||||
clean_log
|
||||
|
||||
if pidof dnscache > "/dev/null"; then
|
||||
echo -e "${curtime} online!" >> "${logfile}"
|
||||
else
|
||||
if [ "${dns_caching_mode}" = "1" ]; then
|
||||
${dnsprogram} -c "${dnsconf}" > "${logfile}" 2>&1 &
|
||||
elif [ "${dns_caching_mode}" = "2" ]; then
|
||||
${dnsprogram} -f "${dnsconf}" > "${logfile}" 2>&1 &
|
||||
elif [ "${dns_caching_mode}" = "3" ]; then
|
||||
${dnsprogram} -o "${logfile}" -l "127.0.0.1" -p "5333" -b "tls://9.9.9.9" -f "tls://8.8.8.8" -u "${dnsconf}" --all-servers --cache --cache-min-ttl=3600 > "${logfile}" 2>&1 &
|
||||
fi
|
||||
echo "${curtime} 重启服务!" >> ${logfile}
|
||||
fi
|
||||
|
||||
sleep "${sleeptime}"
|
||||
continue
|
||||
done
|
||||
Loading…
Add table
Add a link
Reference in a new issue