package lean: move to LuCI feeds
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
parent
ec4c3d0a75
commit
b9aa06e432
@ -1,51 +0,0 @@
|
||||
# Copyright (C) 2016 Openwrt.org
|
||||
#
|
||||
# This is free software, licensed under the Apache License, Version 2.0 .
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-turboacc
|
||||
PKG_VERSION:=1.0
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_LICENSE:=GPLv3.0+
|
||||
|
||||
LUCI_TITLE:=LuCI support for Flow Offload / Shortcut-FE
|
||||
LUCI_DEPENDS:=+pdnsd-alt \
|
||||
+PACKAGE_$(PKG_NAME)_INCLUDE_shortcut-fe:kmod-fast-classifier \
|
||||
+PACKAGE_$(PKG_NAME)_INCLUDE_flow-offload:kmod-ipt-offload \
|
||||
+PACKAGE_$(PKG_NAME)_INCLUDE_bbr-cca:kmod-tcp-bbr \
|
||||
+PACKAGE_$(PKG_NAME)_INCLUDE_dnsforwarder:dnsforwarder
|
||||
LUCI_PKGARCH:=all
|
||||
|
||||
define Package/$(PKG_NAME)/config
|
||||
config PACKAGE_$(PKG_NAME)_INCLUDE_shortcut-fe
|
||||
bool "Include Shortcut-FE"
|
||||
depends on PACKAGE_$(PKG_NAME)_INCLUDE_flow-offload=n
|
||||
default y if LINUX_4_9
|
||||
default n
|
||||
|
||||
config PACKAGE_$(PKG_NAME)_INCLUDE_flow-offload
|
||||
bool "Include Flow Offload"
|
||||
depends on !LINUX_4_9
|
||||
default y
|
||||
|
||||
config PACKAGE_$(PKG_NAME)_INCLUDE_bbr-cca
|
||||
bool "Include BBR CCA"
|
||||
default y
|
||||
|
||||
config PACKAGE_$(PKG_NAME)_INCLUDE_dnsforwarder
|
||||
bool "Include DNSForwarder"
|
||||
default n
|
||||
endef
|
||||
|
||||
PKG_CONFIG_DEPENDS:= \
|
||||
CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_shortcut-fe \
|
||||
CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_flow-offload \
|
||||
CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_bbr-cca \
|
||||
CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_dnsforwarder
|
||||
|
||||
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"), 101)
|
||||
page.i18n = "turboacc"
|
||||
page.dependent = true
|
||||
|
||||
entry({"admin", "network", "turboacc", "status"}, call("action_status"))
|
||||
end
|
||||
|
||||
local function fastpath_status()
|
||||
return luci.sys.call("{ [ -e /sys/module/xt_FLOWOFFLOAD/refcnt ] && [ x$(cat /sys/module/xt_FLOWOFFLOAD/refcnt 2>/dev/null) != x0 ]; } || lsmod | grep -q fast_classifier") == 0
|
||||
end
|
||||
|
||||
local function bbr_status()
|
||||
return luci.sys.call("[ x$(cat /proc/sys/net/ipv4/tcp_congestion_control 2>/dev/null) = xbbr ]") == 0
|
||||
end
|
||||
|
||||
local function fullconebat_status()
|
||||
return luci.sys.call("[ -e /sys/module/xt_FULLCONENAT/refcnt ] && [ x$(cat /sys/module/xt_FULLCONENAT/refcnt 2>/dev/null) != x0 ]") == 0
|
||||
end
|
||||
|
||||
local function dnscaching_status()
|
||||
return luci.sys.call("pgrep dnscache >/dev/null") == 0
|
||||
end
|
||||
|
||||
function action_status()
|
||||
luci.http.prepare_content("application/json")
|
||||
luci.http.write_json({
|
||||
fastpath_state = fastpath_status(),
|
||||
bbr_state = bbr_status(),
|
||||
fullconenat_state = fullconebat_status(),
|
||||
dnscaching_state = dnscaching_status()
|
||||
})
|
||||
end
|
||||
@ -1,87 +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/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 .. "/fast-classifier.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
|
||||
|
||||
sfe_bridge = s:option(Flag, "sfe_bridge", translate("Bridge Acceleration"))
|
||||
sfe_bridge.default = 0
|
||||
sfe_bridge.description = translate("Enable Bridge Acceleration (may be functional conflict with bridge-mode VPN server)")
|
||||
sfe_bridge:depends("sfe_flow", 1)
|
||||
|
||||
if nixio.fs.access("/proc/sys/net/ipv6") then
|
||||
sfe_ipv6 = s:option(Flag, "sfe_ipv6", translate("IPv6 Acceleration"))
|
||||
sfe_ipv6.default = 0
|
||||
sfe_ipv6.description = translate("Enable IPv6 Acceleration")
|
||||
sfe_ipv6:depends("sfe_flow", 1)
|
||||
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_acc = s:option(Flag, "dns_acc", translate("DNS Acceleration"))
|
||||
dns_acc.default = 0
|
||||
dns_acc.rmempty = false
|
||||
dns_acc.description = translate("Using optimized DNS records for GoogleHosts (Don't use under Clash Fake-IP mode)")
|
||||
|
||||
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("Only PDNSD and DNSForwarder is supported now"))
|
||||
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
|
||||
dns_caching_mode.default = 1
|
||||
dns_caching_mode:depends("dns_caching", 1)
|
||||
|
||||
dns_caching_v4_dns = s:option(Value, "dns_caching_v4_dns", translate("Upsteam IPv4 DNS Server"))
|
||||
dns_caching_v4_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_v4_dns.description = translate("Muitiple IPv4 DNS server can saperate with ','")
|
||||
dns_caching_v4_dns:depends("dns_caching_mode", 1)
|
||||
dns_caching_v4_dns:depends("dns_caching_mode", 2)
|
||||
|
||||
dns_caching_v6_dns = s:option(Value, "dns_caching_v6_dns", translate("Upsteam IPv6 DNS Server"))
|
||||
dns_caching_v6_dns.default = "2001:4860:4860::8888,2001:4860:4860::8844,2001:2001::1111,2001:2001::1001,2400:da00::6666,240C::6666,240C::6644"
|
||||
dns_caching_v6_dns.description = translate("Muitiple IPv6 DNS server can saperate with ','")
|
||||
dns_caching_v6_dns:depends("dns_caching_mode", 2)
|
||||
|
||||
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%"><%:BBR CCA%></td><td id="_bbr_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%"><%: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><%: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>';
|
||||
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>';
|
||||
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,107 +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 Acceleration"
|
||||
msgstr "DNS 加速"
|
||||
|
||||
msgid "Using optimized DNS records for GoogleHosts (Don't use under Clash Fake-IP mode)"
|
||||
msgstr "使用来自 GoogleHosts 的优质 DNS 记录(请勿在 Clash Fake-IP 模式下使用)"
|
||||
|
||||
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 "Only PDNSD and DNSForwarder is supported now"
|
||||
msgstr "目前仅支持 PDNSD 和 DNSForwarder"
|
||||
|
||||
msgid "Using PDNSD to query and cache"
|
||||
msgstr "使用 PDNSD 解析"
|
||||
|
||||
msgid "Using DNSForwarder to query and cache"
|
||||
msgstr "使用 DNSForwarder 解析"
|
||||
|
||||
msgid "Upsteam IPv4 DNS Server"
|
||||
msgstr "上游 IPv4 DNS 服务器"
|
||||
|
||||
msgid "Muitiple IPv4 DNS server can saperate with ','"
|
||||
msgstr "多个上游 IPv4 DNS 服务器请用 ',' 分隔(注意用英文逗号)"
|
||||
|
||||
msgid "Upsteam IPv6 DNS Server"
|
||||
msgstr "上游 IPv6 DNS 服务器"
|
||||
|
||||
msgid "Muitiple IPv6 DNS server can saperate with ','"
|
||||
msgstr "多个上游 IPv6 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,14 +0,0 @@
|
||||
|
||||
config turboacc 'config'
|
||||
option sw_flow '1'
|
||||
option hw_flow '1'
|
||||
option sfe_flow '1'
|
||||
option sfe_bridge '1'
|
||||
option sfe_ipv6 '0'
|
||||
option bbr_cca '1'
|
||||
option fullcone_nat '1'
|
||||
option dns_acc '0'
|
||||
option dns_caching '0'
|
||||
option dns_caching_mode '1'
|
||||
option dns_caching_v4_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'
|
||||
option dns_caching_v6_dns '240c::6666,240c::6644,2001:da8::666,2001:da8:202:10::36,2001:da8:8000:1:202:120:2:100'
|
||||
@ -1,295 +0,0 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
# Copyright (c) 2011-2015 OpenWrt.org
|
||||
|
||||
START=90
|
||||
STOP=10
|
||||
|
||||
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 "sfe_bridge" "config" "sfe_bridge" "0"
|
||||
config_get "sfe_ipv6" "config" "sfe_ipv6" "0"
|
||||
config_get "bbr_cca" "config" "bbr_cca" "0"
|
||||
config_get "fullcone_nat" "config" "fullcone_nat" "0"
|
||||
config_get "dns_acc" "config" "dns_acc" "0"
|
||||
config_get "dns_caching" "config" "dns_caching" "0"
|
||||
config_get "dns_caching_mode" "config" "dns_caching_mode" "0"
|
||||
config_get "dns_caching_v4_dns" "config" "dns_caching_v4_dns"
|
||||
config_get "dns_caching_v6_dns" "config" "dns_caching_v6_dns"
|
||||
|
||||
[ ! -e "/lib/modules/$(uname -r)/xt_FLOWOFFLOAD.ko" ] && { sw_flow="0"; hw_flow="0"; }
|
||||
[ ! -e "/lib/modules/$(uname -r)/fast-classifier.ko" ] && { sfe_flow="0"; sfe_bridge="0"; sfe_ipv6="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/etc" ] || mkdir -p "/var/etc"
|
||||
cat > "/var/etc/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_v4_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/etc/dnscache.conf" &
|
||||
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_v4_dns},${dns_caching_v6_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" &
|
||||
echo "DnsForwarder: Start DNS Caching"
|
||||
|
||||
}
|
||||
|
||||
stop_dnscache() {
|
||||
killall -9 "dnscache" 2>"/dev/null"
|
||||
kill -9 $(ps | grep dnscache-while.sh | grep -v "grep" | awk '{print $1}') 2>"/dev/null"
|
||||
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" ] && {
|
||||
lsmod | grep -q fast_classifier || modprobe fast_classifier 2>"/dev/null"
|
||||
echo "${sfe_bridge}" > "/sys/fast_classifier/skip_to_bridge_ingress" 2>"/dev/null"
|
||||
if [ "${sfe_ipv6}" -eq "1" ]; then
|
||||
[ ! -e "/dev/sfe_ipv6" ] && mknod "/dev/sfe_ipv6" "c" "$(cat "/sys/sfe_ipv6/debug_dev")" "0"
|
||||
else
|
||||
rm -f "/dev/sfe_ipv6"
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "${bbr_cca}" -eq "1" ]; then
|
||||
sysctl -w net.ipv4.tcp_congestion_control="bbr"
|
||||
else
|
||||
sysctl -w net.ipv4.tcp_congestion_control="cubic"
|
||||
fi
|
||||
|
||||
[ "${dns_acc}" -eq "1" ] && {
|
||||
mkdir -p "/tmp/dnsmasq.d"
|
||||
wget-ssl -q -t "20" -T "5" "https://cdn.jsdelivr.net/gh/googlehosts/hosts@master/hosts-files/dnsmasq.conf" -O "/tmp/dnsmasq.d/dnsmasq-googlehosts.conf" &
|
||||
}
|
||||
|
||||
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
|
||||
fi
|
||||
change_dns
|
||||
nohup "/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" ] && {
|
||||
echo "0" > "/sys/fast_classifier/skip_to_bridge_ingress" 2>"/dev/null"
|
||||
rm -f "/dev/sfe_ipv6"
|
||||
rmmod "fast_classifier" 2>"/dev/null"
|
||||
}
|
||||
|
||||
[ "${dns_acc}" -eq "0" ] && rm -f "/tmp/dnsmasq.d/dnsmasq-googlehosts.conf"
|
||||
|
||||
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
|
||||
}
|
||||
@ -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,31 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
sleeptime=60
|
||||
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 2>/dev/null)"
|
||||
|
||||
clean_log(){
|
||||
logrow="$(grep -c "" "${logfile}")"
|
||||
if [ "${logrow}" -ge "500" ];then
|
||||
echo "${curtime} Log条数超限,清空处理!" > "${logfile}"
|
||||
fi
|
||||
}
|
||||
|
||||
while [ "${dns_caching}" -eq "1" ];
|
||||
do
|
||||
curtime="$(date "+%H:%M:%S")"
|
||||
echo "${curtime} online!"
|
||||
pidof dnscache>/dev/null || {
|
||||
if [ "${dns_caching_mode}" = "1" ]; then
|
||||
/var/sbin/dnscache -c "/var/etc/dnscache.conf" &
|
||||
elif [ "${dns_caching_mode}" = "2" ]; then
|
||||
/var/sbin/dnscache -f "/var/run/dnscache/dnscache.conf" &
|
||||
fi
|
||||
echo "${curtime} 重启服务!" >> ${logfile}
|
||||
}
|
||||
|
||||
clean_log
|
||||
sleep "${sleeptime}"
|
||||
continue
|
||||
done
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user