diff --git a/docs/API-doc.md b/docs/API-doc.md index 51698717..da8e8617 100644 --- a/docs/API-doc.md +++ b/docs/API-doc.md @@ -160,6 +160,7 @@ Singbox 的规则集来自 [https://github.com/lyc8503/sing-box-rules](https://g - `domain_suffix`: 域名后缀规则数组 - `domain_keyword`: 域名关键词规则数组 - `ip_cidr`: IP CIDR 规则数组 +- `protocol`: 协议规则数组 - `outbound`: 出站名称 示例: @@ -172,6 +173,7 @@ Singbox 的规则集来自 [https://github.com/lyc8503/sing-box-rules](https://g "domain_suffix": [".com", ".org"], "domain_keyword": ["Mijia Cloud", "push.apple"], "ip_cidr": ["192.168.0.0/16", "10.0.0.0/8"], + "protocol": ["http", "tls", "dns"], "outbound": "🤪 MyCustomRule" } ] diff --git a/src/SingboxConfigBuilder.js b/src/SingboxConfigBuilder.js index 41a1207c..a4f2ce55 100644 --- a/src/SingboxConfigBuilder.js +++ b/src/SingboxConfigBuilder.js @@ -86,6 +86,7 @@ export class ConfigBuilder extends BaseConfigBuilder { domain_suffix: rule.domain_suffix, domain_keyword: rule.domain_keyword, ip_cidr: rule.ip_cidr, + protocol: rule.protocol, outbound: rule.outbound })); // Add any default rules that should always be present diff --git a/src/config.js b/src/config.js index 2e7cd476..2241d5eb 100644 --- a/src/config.js +++ b/src/config.js @@ -181,6 +181,7 @@ export function generateRules(selectedRules = [], customRules = [], pin) { domain_suffix: rule.domain_suffix ? rule.domain_suffix.split(',') : [], domain_keyword: rule.domain_keyword ? rule.domain_keyword.split(',') : [], ip_cidr: rule.ip_cidr ? rule.ip_cidr.split(',') : [], + protocol: rule.protocol ? rule.protocol.split(',') : [], outbound: rule.name }); }); @@ -194,6 +195,7 @@ export function generateRules(selectedRules = [], customRules = [], pin) { domain_suffix: rule.domain_suffix ? rule.domain_suffix.split(',') : [], domain_keyword: rule.domain_keyword ? rule.domain_keyword.split(',') : [], ip_cidr: rule.ip_cidr ? rule.ip_cidr.split(',') : [], + protocol: rule.protocol ? rule.protocol.split(',') : [], outbound: rule.name }); }); diff --git a/src/htmlBuilder.js b/src/htmlBuilder.js index 967a2fd0..7d084820 100644 --- a/src/htmlBuilder.js +++ b/src/htmlBuilder.js @@ -497,7 +497,8 @@ const submitFormFunction = () => ` name: rule.querySelector('input[name="customRuleName[]"]').value, domain_suffix: rule.querySelector('input[name="customRuleDomainSuffix[]"]').value, domain_keyword: rule.querySelector('input[name="customRuleDomainKeyword[]"]').value, - ip_cidr: rule.querySelector('input[name="customRuleIPCIDR[]"]').value + ip_cidr: rule.querySelector('input[name="customRuleIPCIDR[]"]').value, + protocol: rule.querySelector('input[name="customRuleProtocol[]"]').value })); const configParam = configId ? \`&configId=\${configId}\` : ''; @@ -659,6 +660,16 @@ const customRuleFunctions = ` +