update 2024-09-02 12:23:44

This commit is contained in:
kenzok8 2024-09-02 12:23:44 +08:00
parent a09bb21e5a
commit 35aa82760e
8 changed files with 178 additions and 131 deletions

View File

@ -164,7 +164,7 @@ return view.extend({
o.value('', '---');
o.value('223.5.5.5', _('Aliyun Public DNS (223.5.5.5)'));
o.value('119.29.29.29', _('Tencent Public DNS (119.29.29.29)'));
o.value('114.114.114.114', _('Xinfeng Public DNS (114.114.114.114)'));
o.value('117.50.10.10', _('ThreatBook Public DNS (117.50.10.10)'));
o.default = '8.8.8.8';
o.rmempty = false;
o.depends({'routing_mode': 'custom', '!reverse': true});
@ -187,7 +187,7 @@ return view.extend({
o.value('223.5.5.5', _('Aliyun Public DNS (223.5.5.5)'));
o.value('210.2.4.8', _('CNNIC Public DNS (210.2.4.8)'));
o.value('119.29.29.29', _('Tencent Public DNS (119.29.29.29)'));
o.value('114.114.114.114', _('Xinfeng Public DNS (114.114.114.114)'));
o.value('117.50.10.10', _('ThreatBook Public DNS (117.50.10.10)'));
o.depends('routing_mode', 'bypass_mainland_china');
o.validate = function(section_id) {
if (section_id) {

View File

@ -1152,6 +1152,15 @@ return view.extend({
var routing_mode = uci.get(data[0], 'config', 'routing_mode');
var features = data[1];
/* Cache subscription information, it will be called multiple times */
var subinfo = [];
for (var suburl of (uci.get(data[0], 'subscription', 'subscription_url') || [])) {
const url = new URL(suburl);
const urlhash = hp.calcStringMD5(suburl.replace(/#.*$/, ''));
const title = url.hash ? decodeURIComponent(url.hash.slice(1)) : url.hostname;
subinfo.push({ 'hash': urlhash, 'title': title });
}
m = new form.Map('homeproxy', _('Edit nodes'));
s = m.section(form.NamedSection, 'subscription', 'homeproxy');
@ -1163,7 +1172,11 @@ return view.extend({
ss = renderNodeSettings(o.subsection, data, features, main_node, routing_mode);
ss.addremove = true;
ss.filter = function(section_id) {
return uci.get(data[0], section_id, 'grouphash') ? false : true;
for (var info of subinfo)
if (info.hash === uci.get(data[0], section_id, 'grouphash'))
return false;
return true;
}
/* Import subscription links start */
/* Thanks to luci-app-shadowsocks-libev */
@ -1226,7 +1239,7 @@ return view.extend({
])
])
}
ss.renderSectionAdd = function(extra_class) {
ss.renderSectionAdd = function(/* ... */) {
var el = form.GridSection.prototype.renderSectionAdd.apply(this, arguments),
nameEl = el.querySelector('.cbi-section-create-name');
@ -1258,16 +1271,12 @@ return view.extend({
/* User nodes end */
/* Subscription nodes start */
for (var suburl of (uci.get(data[0], 'subscription', 'subscription_url') || [])) {
const url = new URL(suburl);
const urlhash = hp.calcStringMD5(suburl.replace(/#.*$/, ''));
const title = url.hash ? decodeURIComponent(url.hash.slice(1)) : url.hostname;
s.tab('sub_' + urlhash, _('Sub (%s)').format(title));
o = s.taboption('sub_' + urlhash, form.SectionValue, '_sub_' + urlhash, form.GridSection, 'node');
for (const info of subinfo) {
s.tab('sub_' + info.hash, _('Sub (%s)').format(info.title));
o = s.taboption('sub_' + info.hash, form.SectionValue, '_sub_' + info.hash, form.GridSection, 'node');
ss = renderNodeSettings(o.subsection, data, features, main_node, routing_mode);
ss.filter = function(section_id) {
return (uci.get(data[0], section_id, 'grouphash') === urlhash);
return (uci.get(data[0], section_id, 'grouphash') === info.hash);
}
}
/* Subscription nodes end */

View File

@ -5,7 +5,7 @@ msgstr "Content-Type: text/plain; charset=UTF-8"
msgid "%s log"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1399
#: htdocs/luci-static/resources/view/homeproxy/node.js:1408
msgid "%s nodes removed"
msgstr ""
@ -99,7 +99,7 @@ msgid "All ports"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:982
#: htdocs/luci-static/resources/view/homeproxy/node.js:1325
#: htdocs/luci-static/resources/view/homeproxy/node.js:1334
msgid "Allow insecure"
msgstr ""
@ -107,7 +107,7 @@ msgstr ""
msgid "Allow insecure connection at TLS client."
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1326
#: htdocs/luci-static/resources/view/homeproxy/node.js:1335
msgid "Allow insecure connection by default when add nodes from subscriptions."
msgstr ""
@ -137,7 +137,7 @@ msgstr ""
msgid "Alternative TLS port"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1362
#: htdocs/luci-static/resources/view/homeproxy/node.js:1371
msgid "An error occurred during updating subscriptions: %s"
msgstr ""
@ -193,11 +193,11 @@ msgstr ""
msgid "Auto configure firewall"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1279
#: htdocs/luci-static/resources/view/homeproxy/node.js:1288
msgid "Auto update"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1280
#: htdocs/luci-static/resources/view/homeproxy/node.js:1289
msgid "Auto update subscriptions."
msgstr ""
@ -232,7 +232,7 @@ msgid ""
"Bind outbound traffic to specific interface. Leave empty to auto detect."
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1315
#: htdocs/luci-static/resources/view/homeproxy/node.js:1324
msgid "Blacklist mode"
msgstr ""
@ -279,7 +279,7 @@ msgstr ""
msgid "CUBIC"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1179
#: htdocs/luci-static/resources/view/homeproxy/node.js:1192
msgid "Cancel"
msgstr ""
@ -426,7 +426,7 @@ msgstr ""
msgid "Default outbound"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1333
#: htdocs/luci-static/resources/view/homeproxy/node.js:1342
msgid "Default packet encoding"
msgstr ""
@ -470,7 +470,7 @@ msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:492
#: htdocs/luci-static/resources/view/homeproxy/node.js:504
#: htdocs/luci-static/resources/view/homeproxy/node.js:1061
#: htdocs/luci-static/resources/view/homeproxy/node.js:1314
#: htdocs/luci-static/resources/view/homeproxy/node.js:1323
#: htdocs/luci-static/resources/view/homeproxy/server.js:246
#: htdocs/luci-static/resources/view/homeproxy/server.js:258
msgid "Disable"
@ -555,14 +555,14 @@ msgstr ""
msgid "Download bandwidth in Mbps."
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1321
#: htdocs/luci-static/resources/view/homeproxy/node.js:1330
msgid ""
"Drop/keep nodes that contain the specific keywords. <a target=\"_blank\" "
"href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/"
"Regular_Expressions\">Regex</a> is supported."
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1313
#: htdocs/luci-static/resources/view/homeproxy/node.js:1322
msgid "Drop/keep specific nodes from subscriptions."
msgstr ""
@ -604,7 +604,7 @@ msgstr ""
msgid "Early data is sent in path instead of header by default."
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1155
#: htdocs/luci-static/resources/view/homeproxy/node.js:1164
msgid "Edit nodes"
msgstr ""
@ -705,9 +705,9 @@ msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/client.js:1200
#: htdocs/luci-static/resources/view/homeproxy/node.js:452
#: htdocs/luci-static/resources/view/homeproxy/node.js:1082
#: htdocs/luci-static/resources/view/homeproxy/node.js:1242
#: htdocs/luci-static/resources/view/homeproxy/node.js:1302
#: htdocs/luci-static/resources/view/homeproxy/node.js:1305
#: htdocs/luci-static/resources/view/homeproxy/node.js:1255
#: htdocs/luci-static/resources/view/homeproxy/node.js:1311
#: htdocs/luci-static/resources/view/homeproxy/node.js:1314
#: htdocs/luci-static/resources/view/homeproxy/server.js:211
#: htdocs/luci-static/resources/view/homeproxy/server.js:602
#: htdocs/luci-static/resources/view/homeproxy/server.js:604
@ -730,11 +730,11 @@ msgstr ""
msgid "Failed to upload %s, error: %s."
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1320
#: htdocs/luci-static/resources/view/homeproxy/node.js:1329
msgid "Filter keywords"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1312
#: htdocs/luci-static/resources/view/homeproxy/node.js:1321
msgid "Filter nodes"
msgstr ""
@ -975,13 +975,13 @@ msgstr ""
msgid "Ignore client bandwidth"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1225
#: htdocs/luci-static/resources/view/homeproxy/node.js:1238
msgid "Import"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1172
#: htdocs/luci-static/resources/view/homeproxy/node.js:1251
#: htdocs/luci-static/resources/view/homeproxy/node.js:1253
#: htdocs/luci-static/resources/view/homeproxy/node.js:1185
#: htdocs/luci-static/resources/view/homeproxy/node.js:1264
#: htdocs/luci-static/resources/view/homeproxy/node.js:1266
msgid "Import share links"
msgstr ""
@ -1317,7 +1317,7 @@ msgstr ""
msgid "NOT RUNNING"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1339
#: htdocs/luci-static/resources/view/homeproxy/node.js:1348
msgid "NOTE: Save current settings before updating subscriptions."
msgstr ""
@ -1351,15 +1351,15 @@ msgstr ""
msgid "No additional encryption support: It's basically duplicate encryption."
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1355
#: htdocs/luci-static/resources/view/homeproxy/node.js:1364
msgid "No subscription available"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1380
#: htdocs/luci-static/resources/view/homeproxy/node.js:1389
msgid "No subscription node"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1211
#: htdocs/luci-static/resources/view/homeproxy/node.js:1224
msgid "No valid share link found."
msgstr ""
@ -1372,7 +1372,7 @@ msgstr ""
msgid "Node Settings"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1161
#: htdocs/luci-static/resources/view/homeproxy/node.js:1170
msgid "Nodes"
msgstr ""
@ -1700,11 +1700,11 @@ msgstr ""
msgid "Remote"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1377
#: htdocs/luci-static/resources/view/homeproxy/node.js:1386
msgid "Remove %s nodes"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1367
#: htdocs/luci-static/resources/view/homeproxy/node.js:1376
msgid "Remove all nodes from subscriptions"
msgstr ""
@ -1803,11 +1803,11 @@ msgstr ""
msgid "Same as main node"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1341
#: htdocs/luci-static/resources/view/homeproxy/node.js:1350
msgid "Save current settings"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1338
#: htdocs/luci-static/resources/view/homeproxy/node.js:1347
msgid "Save subscriptions settings"
msgstr ""
@ -1941,19 +1941,19 @@ msgstr ""
msgid "String"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1266
#: htdocs/luci-static/resources/view/homeproxy/node.js:1275
msgid "Sub (%s)"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1295
#: htdocs/luci-static/resources/view/homeproxy/node.js:1304
msgid "Subscription URL-s"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1277
#: htdocs/luci-static/resources/view/homeproxy/node.js:1286
msgid "Subscriptions"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1213
#: htdocs/luci-static/resources/view/homeproxy/node.js:1226
msgid "Successfully imported %s nodes of total %s."
msgstr ""
@ -1961,8 +1961,8 @@ msgstr ""
msgid "Successfully updated."
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1173
#: htdocs/luci-static/resources/view/homeproxy/node.js:1296
#: htdocs/luci-static/resources/view/homeproxy/node.js:1186
#: htdocs/luci-static/resources/view/homeproxy/node.js:1305
msgid ""
"Support Hysteria, Shadowsocks, Trojan, v2rayN (VMess), and XTLS (VLESS) "
"online configuration delivery standard."
@ -2185,7 +2185,7 @@ msgid ""
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:985
#: htdocs/luci-static/resources/view/homeproxy/node.js:1328
#: htdocs/luci-static/resources/view/homeproxy/node.js:1337
msgid ""
"This is <strong>DANGEROUS</strong>, your traffic is almost like "
"<strong>PLAIN TEXT</strong>! Use at your own risk!"
@ -2197,6 +2197,11 @@ msgid ""
"QUIC stream based UDP relay mode that TUIC does not provide."
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/client.js:167
#: htdocs/luci-static/resources/view/homeproxy/client.js:190
msgid "ThreatBook Public DNS (117.50.10.10)"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/client.js:662
msgid ""
"Timeout of rejected DNS response cache. <code>7d</code> is used by default."
@ -2288,7 +2293,7 @@ msgstr ""
msgid "Unsupported fingerprint!"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1352
#: htdocs/luci-static/resources/view/homeproxy/node.js:1361
msgid "Update %s subscriptions"
msgstr ""
@ -2304,19 +2309,19 @@ msgstr ""
msgid "Update interval of rule set.<br/><code>1d</code> will be used if empty."
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1347
#: htdocs/luci-static/resources/view/homeproxy/node.js:1356
msgid "Update nodes from subscriptions"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1291
#: htdocs/luci-static/resources/view/homeproxy/node.js:1300
msgid "Update subscriptions via proxy."
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1284
#: htdocs/luci-static/resources/view/homeproxy/node.js:1293
msgid "Update time"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1290
#: htdocs/luci-static/resources/view/homeproxy/node.js:1299
msgid "Update via proxy"
msgstr ""
@ -2390,7 +2395,7 @@ msgstr ""
msgid "WebSocket"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:1316
#: htdocs/luci-static/resources/view/homeproxy/node.js:1325
msgid "Whitelist mode"
msgstr ""
@ -2414,13 +2419,8 @@ msgstr ""
msgid "Write proxy protocol in the connection header."
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/client.js:167
#: htdocs/luci-static/resources/view/homeproxy/client.js:190
msgid "Xinfeng Public DNS (114.114.114.114)"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:828
#: htdocs/luci-static/resources/view/homeproxy/node.js:1336
#: htdocs/luci-static/resources/view/homeproxy/node.js:1345
msgid "Xudp (Xray-core)"
msgstr ""
@ -2482,12 +2482,12 @@ msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:567
#: htdocs/luci-static/resources/view/homeproxy/node.js:826
#: htdocs/luci-static/resources/view/homeproxy/node.js:1334
#: htdocs/luci-static/resources/view/homeproxy/node.js:1343
msgid "none"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/node.js:827
#: htdocs/luci-static/resources/view/homeproxy/node.js:1335
#: htdocs/luci-static/resources/view/homeproxy/node.js:1344
msgid "packet addr (v2ray-core v5+)"
msgstr ""
@ -2522,7 +2522,7 @@ msgid "unchecked"
msgstr ""
#: htdocs/luci-static/resources/homeproxy.js:221
#: htdocs/luci-static/resources/view/homeproxy/node.js:1242
#: htdocs/luci-static/resources/view/homeproxy/node.js:1255
msgid "unique UCI identifier"
msgstr ""
@ -2552,8 +2552,8 @@ msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/client.js:1029
#: htdocs/luci-static/resources/view/homeproxy/client.js:1032
#: htdocs/luci-static/resources/view/homeproxy/node.js:1302
#: htdocs/luci-static/resources/view/homeproxy/node.js:1305
#: htdocs/luci-static/resources/view/homeproxy/node.js:1311
#: htdocs/luci-static/resources/view/homeproxy/node.js:1314
msgid "valid URL"
msgstr ""

View File

@ -12,7 +12,7 @@ msgstr ""
msgid "%s log"
msgstr "%s 日志"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1399
#: htdocs/luci-static/resources/view/homeproxy/node.js:1408
msgid "%s nodes removed"
msgstr "移除了 %s 个节点"
@ -106,7 +106,7 @@ msgid "All ports"
msgstr "所有端口"
#: htdocs/luci-static/resources/view/homeproxy/node.js:982
#: htdocs/luci-static/resources/view/homeproxy/node.js:1325
#: htdocs/luci-static/resources/view/homeproxy/node.js:1334
msgid "Allow insecure"
msgstr "允许不安全连接"
@ -114,7 +114,7 @@ msgstr "允许不安全连接"
msgid "Allow insecure connection at TLS client."
msgstr "允许 TLS 客户端侧的不安全连接。"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1326
#: htdocs/luci-static/resources/view/homeproxy/node.js:1335
msgid "Allow insecure connection by default when add nodes from subscriptions."
msgstr "从订阅获取节点时,默认允许不安全连接。"
@ -144,7 +144,7 @@ msgstr "替代 HTTP 端口"
msgid "Alternative TLS port"
msgstr "替代 HTTPS 端口"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1362
#: htdocs/luci-static/resources/view/homeproxy/node.js:1371
msgid "An error occurred during updating subscriptions: %s"
msgstr "更新订阅时发生错误:%s"
@ -202,11 +202,11 @@ msgstr "认证类型"
msgid "Auto configure firewall"
msgstr "自动配置防火墙"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1279
#: htdocs/luci-static/resources/view/homeproxy/node.js:1288
msgid "Auto update"
msgstr "自动更新"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1280
#: htdocs/luci-static/resources/view/homeproxy/node.js:1289
msgid "Auto update subscriptions."
msgstr "自动更新订阅。"
@ -241,7 +241,7 @@ msgid ""
"Bind outbound traffic to specific interface. Leave empty to auto detect."
msgstr "绑定出站流量至指定端口。留空自动检测。"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1315
#: htdocs/luci-static/resources/view/homeproxy/node.js:1324
msgid "Blacklist mode"
msgstr "黑名单模式"
@ -288,7 +288,7 @@ msgstr "CNNIC 公共 DNS210.2.4.8"
msgid "CUBIC"
msgstr "CUBIC"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1179
#: htdocs/luci-static/resources/view/homeproxy/node.js:1192
msgid "Cancel"
msgstr "取消"
@ -435,7 +435,7 @@ msgstr "默认域名解析策略。"
msgid "Default outbound"
msgstr "默认出站"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1333
#: htdocs/luci-static/resources/view/homeproxy/node.js:1342
msgid "Default packet encoding"
msgstr "默认包封装格式"
@ -479,7 +479,7 @@ msgstr "直连 MAC 地址"
#: htdocs/luci-static/resources/view/homeproxy/node.js:492
#: htdocs/luci-static/resources/view/homeproxy/node.js:504
#: htdocs/luci-static/resources/view/homeproxy/node.js:1061
#: htdocs/luci-static/resources/view/homeproxy/node.js:1314
#: htdocs/luci-static/resources/view/homeproxy/node.js:1323
#: htdocs/luci-static/resources/view/homeproxy/server.js:246
#: htdocs/luci-static/resources/view/homeproxy/server.js:258
msgid "Disable"
@ -566,7 +566,7 @@ msgstr "下载带宽"
msgid "Download bandwidth in Mbps."
msgstr "下载带宽单位Mbps。"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1321
#: htdocs/luci-static/resources/view/homeproxy/node.js:1330
msgid ""
"Drop/keep nodes that contain the specific keywords. <a target=\"_blank\" "
"href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/"
@ -576,7 +576,7 @@ msgstr ""
"developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions\">"
"正则表达式</a>。"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1313
#: htdocs/luci-static/resources/view/homeproxy/node.js:1322
msgid "Drop/keep specific nodes from subscriptions."
msgstr "从订阅中 丢弃/保留 指定节点"
@ -623,7 +623,7 @@ msgstr "前置数据标头"
msgid "Early data is sent in path instead of header by default."
msgstr "前置数据默认发送在路径而不是标头中。"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1155
#: htdocs/luci-static/resources/view/homeproxy/node.js:1164
msgid "Edit nodes"
msgstr "修改节点"
@ -726,9 +726,9 @@ msgstr "加密方式"
#: htdocs/luci-static/resources/view/homeproxy/client.js:1200
#: htdocs/luci-static/resources/view/homeproxy/node.js:452
#: htdocs/luci-static/resources/view/homeproxy/node.js:1082
#: htdocs/luci-static/resources/view/homeproxy/node.js:1242
#: htdocs/luci-static/resources/view/homeproxy/node.js:1302
#: htdocs/luci-static/resources/view/homeproxy/node.js:1305
#: htdocs/luci-static/resources/view/homeproxy/node.js:1255
#: htdocs/luci-static/resources/view/homeproxy/node.js:1311
#: htdocs/luci-static/resources/view/homeproxy/node.js:1314
#: htdocs/luci-static/resources/view/homeproxy/server.js:211
#: htdocs/luci-static/resources/view/homeproxy/server.js:602
#: htdocs/luci-static/resources/view/homeproxy/server.js:604
@ -751,11 +751,11 @@ msgstr "外部账户密钥标识符"
msgid "Failed to upload %s, error: %s."
msgstr "上传 %s 失败,错误:%s。"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1320
#: htdocs/luci-static/resources/view/homeproxy/node.js:1329
msgid "Filter keywords"
msgstr "过滤关键词"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1312
#: htdocs/luci-static/resources/view/homeproxy/node.js:1321
msgid "Filter nodes"
msgstr "过滤节点"
@ -999,13 +999,13 @@ msgstr "如果你拥有根证书,使用此选项而不是允许不安全连接
msgid "Ignore client bandwidth"
msgstr "忽略客户端带宽"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1225
#: htdocs/luci-static/resources/view/homeproxy/node.js:1238
msgid "Import"
msgstr "导入"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1172
#: htdocs/luci-static/resources/view/homeproxy/node.js:1251
#: htdocs/luci-static/resources/view/homeproxy/node.js:1253
#: htdocs/luci-static/resources/view/homeproxy/node.js:1185
#: htdocs/luci-static/resources/view/homeproxy/node.js:1264
#: htdocs/luci-static/resources/view/homeproxy/node.js:1266
msgid "Import share links"
msgstr "导入分享链接"
@ -1345,7 +1345,7 @@ msgstr "多路复用协议。"
msgid "NOT RUNNING"
msgstr "未运行"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1339
#: htdocs/luci-static/resources/view/homeproxy/node.js:1348
msgid "NOTE: Save current settings before updating subscriptions."
msgstr "注意:更新订阅前先保存当前配置。"
@ -1379,15 +1379,15 @@ msgstr "无 TCP 传输层, 纯 HTTP 已合并到 HTTP 传输层。"
msgid "No additional encryption support: It's basically duplicate encryption."
msgstr "无额外加密支持:它基本上是重复加密。"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1355
#: htdocs/luci-static/resources/view/homeproxy/node.js:1364
msgid "No subscription available"
msgstr "无可用订阅"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1380
#: htdocs/luci-static/resources/view/homeproxy/node.js:1389
msgid "No subscription node"
msgstr "无订阅节点"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1211
#: htdocs/luci-static/resources/view/homeproxy/node.js:1224
msgid "No valid share link found."
msgstr "找不到有效分享链接。"
@ -1400,7 +1400,7 @@ msgstr "节点"
msgid "Node Settings"
msgstr "节点设置"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1161
#: htdocs/luci-static/resources/view/homeproxy/node.js:1170
msgid "Nodes"
msgstr "节点"
@ -1728,11 +1728,11 @@ msgstr "区域 ID"
msgid "Remote"
msgstr "远程"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1377
#: htdocs/luci-static/resources/view/homeproxy/node.js:1386
msgid "Remove %s nodes"
msgstr "移除 %s 个节点"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1367
#: htdocs/luci-static/resources/view/homeproxy/node.js:1376
msgid "Remove all nodes from subscriptions"
msgstr "移除所有订阅节点"
@ -1831,11 +1831,11 @@ msgstr "Salamander"
msgid "Same as main node"
msgstr "保持与主节点一致"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1341
#: htdocs/luci-static/resources/view/homeproxy/node.js:1350
msgid "Save current settings"
msgstr "保存当前设置"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1338
#: htdocs/luci-static/resources/view/homeproxy/node.js:1347
msgid "Save subscriptions settings"
msgstr "保存订阅设置"
@ -1980,19 +1980,19 @@ msgstr ""
msgid "String"
msgstr "字符串"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1266
#: htdocs/luci-static/resources/view/homeproxy/node.js:1275
msgid "Sub (%s)"
msgstr "订阅(%s"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1295
#: htdocs/luci-static/resources/view/homeproxy/node.js:1304
msgid "Subscription URL-s"
msgstr "订阅地址"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1277
#: htdocs/luci-static/resources/view/homeproxy/node.js:1286
msgid "Subscriptions"
msgstr "订阅"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1213
#: htdocs/luci-static/resources/view/homeproxy/node.js:1226
msgid "Successfully imported %s nodes of total %s."
msgstr "成功导入 %s 个节点,共 %s 个。"
@ -2000,8 +2000,8 @@ msgstr "成功导入 %s 个节点,共 %s 个。"
msgid "Successfully updated."
msgstr "更新成功。"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1173
#: htdocs/luci-static/resources/view/homeproxy/node.js:1296
#: htdocs/luci-static/resources/view/homeproxy/node.js:1186
#: htdocs/luci-static/resources/view/homeproxy/node.js:1305
msgid ""
"Support Hysteria, Shadowsocks, Trojan, v2rayN (VMess), and XTLS (VLESS) "
"online configuration delivery standard."
@ -2244,7 +2244,7 @@ msgstr ""
"检测到任何活动,则会关闭连接。"
#: htdocs/luci-static/resources/view/homeproxy/node.js:985
#: htdocs/luci-static/resources/view/homeproxy/node.js:1328
#: htdocs/luci-static/resources/view/homeproxy/node.js:1337
msgid ""
"This is <strong>DANGEROUS</strong>, your traffic is almost like "
"<strong>PLAIN TEXT</strong>! Use at your own risk!"
@ -2259,6 +2259,11 @@ msgstr ""
"这是 TUIC 的 UDP over TCP 协议移植, 旨在提供 TUIC 不提供的基于 QUIC 流的 "
"UDP 中继模式。"
#: htdocs/luci-static/resources/view/homeproxy/client.js:167
#: htdocs/luci-static/resources/view/homeproxy/client.js:190
msgid "ThreatBook Public DNS (117.50.10.10)"
msgstr "微步在线公共 DNS117.50.10.10"
#: htdocs/luci-static/resources/view/homeproxy/client.js:662
msgid ""
"Timeout of rejected DNS response cache. <code>7d</code> is used by default."
@ -2352,7 +2357,7 @@ msgstr "未知错误:%s"
msgid "Unsupported fingerprint!"
msgstr "不支持的指纹!"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1352
#: htdocs/luci-static/resources/view/homeproxy/node.js:1361
msgid "Update %s subscriptions"
msgstr "更新 %s 个订阅"
@ -2368,19 +2373,19 @@ msgstr "更新间隔"
msgid "Update interval of rule set.<br/><code>1d</code> will be used if empty."
msgstr "规则集更新间隔。<br/>留空使用 <code>1d</code>。"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1347
#: htdocs/luci-static/resources/view/homeproxy/node.js:1356
msgid "Update nodes from subscriptions"
msgstr "从订阅更新节点"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1291
#: htdocs/luci-static/resources/view/homeproxy/node.js:1300
msgid "Update subscriptions via proxy."
msgstr "使用代理更新订阅。"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1284
#: htdocs/luci-static/resources/view/homeproxy/node.js:1293
msgid "Update time"
msgstr "更新时间"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1290
#: htdocs/luci-static/resources/view/homeproxy/node.js:1299
msgid "Update via proxy"
msgstr "使用代理更新"
@ -2454,7 +2459,7 @@ msgstr "WAN IP 策略"
msgid "WebSocket"
msgstr "WebSocket"
#: htdocs/luci-static/resources/view/homeproxy/node.js:1316
#: htdocs/luci-static/resources/view/homeproxy/node.js:1325
msgid "Whitelist mode"
msgstr "白名单模式"
@ -2478,13 +2483,8 @@ msgstr "WireGuard 要求 base64 编码的私钥。"
msgid "Write proxy protocol in the connection header."
msgstr "在连接头中写入代理协议。"
#: htdocs/luci-static/resources/view/homeproxy/client.js:167
#: htdocs/luci-static/resources/view/homeproxy/client.js:190
msgid "Xinfeng Public DNS (114.114.114.114)"
msgstr "信风公共 DNS114.114.114.114"
#: htdocs/luci-static/resources/view/homeproxy/node.js:828
#: htdocs/luci-static/resources/view/homeproxy/node.js:1336
#: htdocs/luci-static/resources/view/homeproxy/node.js:1345
msgid "Xudp (Xray-core)"
msgstr "Xudp (Xray-core)"
@ -2546,12 +2546,12 @@ msgstr "非空值"
#: htdocs/luci-static/resources/view/homeproxy/node.js:567
#: htdocs/luci-static/resources/view/homeproxy/node.js:826
#: htdocs/luci-static/resources/view/homeproxy/node.js:1334
#: htdocs/luci-static/resources/view/homeproxy/node.js:1343
msgid "none"
msgstr "无"
#: htdocs/luci-static/resources/view/homeproxy/node.js:827
#: htdocs/luci-static/resources/view/homeproxy/node.js:1335
#: htdocs/luci-static/resources/view/homeproxy/node.js:1344
msgid "packet addr (v2ray-core v5+)"
msgstr "packet addr (v2ray-core v5+)"
@ -2587,7 +2587,7 @@ msgid "unchecked"
msgstr "未检查"
#: htdocs/luci-static/resources/homeproxy.js:221
#: htdocs/luci-static/resources/view/homeproxy/node.js:1242
#: htdocs/luci-static/resources/view/homeproxy/node.js:1255
msgid "unique UCI identifier"
msgstr "独立 UCI 标识"
@ -2617,8 +2617,8 @@ msgstr "有效 IP 地址"
#: htdocs/luci-static/resources/view/homeproxy/client.js:1029
#: htdocs/luci-static/resources/view/homeproxy/client.js:1032
#: htdocs/luci-static/resources/view/homeproxy/node.js:1302
#: htdocs/luci-static/resources/view/homeproxy/node.js:1305
#: htdocs/luci-static/resources/view/homeproxy/node.js:1311
#: htdocs/luci-static/resources/view/homeproxy/node.js:1314
msgid "valid URL"
msgstr "有效网址"

View File

@ -88,6 +88,9 @@ const control_info = {};
for (let i in control_options)
control_info[i] = uci.get(cfgname, 'control', i);
const dns_hijacked = uci.get('dhcp', '@dnsmasq[0]', 'dns_redirect') || '0',
dns_port = uci.get('dhcp', '@dnsmasq[0]', 'port') || '53';
/* UCI config end */
-%}
@ -228,6 +231,16 @@ set homeproxy_routing_port {
}
{% endif %}
{# DNS hijack & TCP redirect #}
chain dstnat {
{% if (dns_hijacked !== '1'): %}
meta nfproto { ipv4, ipv6 } udp dport 53 counter redirect to :{{ dns_port }} comment "!{{ cfgname }}: DNS hijack"
{% endif /* dns_hijacked */ %}
{% if (match(proxy_mode, /redirect/)): %}
meta nfproto { {{ (ipv6_support === '1') ? 'ipv4, ipv6' : 'ipv4' }} } meta l4proto tcp jump homeproxy_redirect_lanac
{% endif /* proxy_mode */ %}
}
{# TCP redirect #}
{% if (match(proxy_mode, /redirect/)): %}
chain homeproxy_redirect_proxy {
@ -338,10 +351,6 @@ chain homeproxy_output_redir {
type nat hook output priority filter -105; policy accept
meta nfproto { {{ (ipv6_support === '1') ? 'ipv4, ipv6' : 'ipv4' }} } meta l4proto tcp jump homeproxy_redirect
}
chain dstnat {
meta nfproto { {{ (ipv6_support === '1') ? 'ipv4, ipv6' : 'ipv4' }} } meta l4proto tcp jump homeproxy_redirect_lanac
}
{% endif %}
{# UDP tproxy #}
@ -371,6 +380,7 @@ chain homeproxy_mangle_lanac {
{% if (control_info.listen_interfaces): %}
meta iifname != {{ array_to_nftarr(split(join(' ', control_info.listen_interfaces) + ' lo', ' ')) }} counter return
{% endif %}
meta iifname != io udp dport 53 counter return
meta mark {{ self_mark }} counter return
{% if (control_info.lan_proxy_mode === 'listed_only'): %}
@ -513,6 +523,7 @@ chain mangle_output {
{% if (match(proxy_mode, /tun/)): %}
chain homeproxy_mangle_lanac {
iifname {{ tun_name }} counter return
udp dport 53 counter return
{% if (control_info.listen_interfaces): %}
meta iifname != {{ array_to_nftarr(control_info.listen_interfaces) }} counter return

View File

@ -47,9 +47,20 @@ return view.extend({
};
o.default = 3;
o = s.option(form.ListValue, 'geoip_type', _('GeoIP Type'),
_('Little: only include Mainland China and Private IP addresses.') +
'<br>' +
_('Full: includes all Countries and Private IP addresses.')
);
o.value('geoip', _('Full'));
o.value('geoip-only-cn-private', _('Little'));
o.rmempty = false;
o.default = 'geoip';
o = s.option(form.Value, 'github_proxy', _('GitHub Proxy'),
_('Update data files with GitHub Proxy, leave blank to disable proxy downloads.'));
o.value('https://hub.gitmirror.com', _('https://hub.gitmirror.com'));
o.value('https://mirror.ghproxy.com', _('https://mirror.ghproxy.com'));
o.rmempty = true;
o.default = '';

View File

@ -140,6 +140,21 @@ msgstr "每周六"
msgid "Every Sunday"
msgstr "每周日"
msgid "GeoIP Type"
msgstr "GeoIP 类型"
msgid "Little"
msgstr "轻量"
msgid "Little: only include Mainland China and Private IP addresses."
msgstr "轻量:仅包含中国大陆和私有 IP 地址。"
msgid "Full"
msgstr "全量"
msgid "Full: includes all Countries and Private IP addresses."
msgstr "全量:包含所有国家和私有 IP 地址。"
msgid "GitHub Proxy"
msgstr "GitHub 代理"

View File

@ -106,12 +106,13 @@ geodat_update() (
TMPDIR=$(mktemp -d) || exit 1
[ -n "$(uci -q get mosdns.config.github_proxy)" ] && mirror="$(uci -q get mosdns.config.github_proxy)/"
# geoip.dat - cn-private
echo -e "Downloading "$mirror"https://github.com/Loyalsoldier/geoip/releases/latest/download/geoip-only-cn-private.dat"
curl --connect-timeout 5 -m 60 --ipv4 -kfSLo "$TMPDIR/geoip.dat" ""$mirror"https://github.com/Loyalsoldier/geoip/releases/latest/download/geoip-only-cn-private.dat"
geoip_type=$(uci -q get mosdns.config.geoip_type || echo "geoip-only-cn-private")
echo -e "Downloading "$mirror"https://github.com/Loyalsoldier/geoip/releases/latest/download/"$geoip_type".dat"
curl --connect-timeout 5 -m 120 --ipv4 -kfSLo "$TMPDIR/geoip.dat" ""$mirror"https://github.com/Loyalsoldier/geoip/releases/latest/download/"$geoip_type".dat"
[ $? -ne 0 ] && rm -rf "$TMPDIR" && exit 1
# checksum - geoip.dat
echo -e "Downloading "$mirror"https://github.com/Loyalsoldier/geoip/releases/latest/download/geoip-only-cn-private.dat.sha256sum"
curl --connect-timeout 5 -m 10 --ipv4 -kfSLo "$TMPDIR/geoip.dat.sha256sum" ""$mirror"https://github.com/Loyalsoldier/geoip/releases/latest/download/geoip-only-cn-private.dat.sha256sum"
echo -e "Downloading "$mirror"https://github.com/Loyalsoldier/geoip/releases/latest/download/"$geoip_type".dat.sha256sum"
curl --connect-timeout 5 -m 20 --ipv4 -kfSLo "$TMPDIR/geoip.dat.sha256sum" ""$mirror"https://github.com/Loyalsoldier/geoip/releases/latest/download/"$geoip_type".dat.sha256sum"
[ $? -ne 0 ] && rm -rf "$TMPDIR" && exit 1
if [ "$(sha256sum "$TMPDIR/geoip.dat" | awk '{print $1}')" != "$(cat "$TMPDIR/geoip.dat.sha256sum" | awk '{print $1}')" ]; then
echo -e "\e[1;31mgeoip.dat checksum error"
@ -125,7 +126,7 @@ geodat_update() (
[ $? -ne 0 ] && rm -rf "$TMPDIR" && exit 1
# checksum - geosite.dat
echo -e "Downloading "$mirror"https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat.sha256sum"
curl --connect-timeout 5 -m 10 --ipv4 -kfSLo "$TMPDIR/geosite.dat.sha256sum" ""$mirror"https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat.sha256sum"
curl --connect-timeout 5 -m 20 --ipv4 -kfSLo "$TMPDIR/geosite.dat.sha256sum" ""$mirror"https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat.sha256sum"
[ $? -ne 0 ] && rm -rf "$TMPDIR" && exit 1
if [ "$(sha256sum "$TMPDIR/geosite.dat" | awk '{print $1}')" != "$(cat "$TMPDIR/geosite.dat.sha256sum" | awk '{print $1}')" ]; then
echo -e "\e[1;31mgeosite.dat checksum error"