diff --git a/backend/package.json b/backend/package.json index 7f7ce35..40ba6b1 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "sub-store", - "version": "2.14.127", + "version": "2.14.128", "description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and ShadowRocket.", "main": "src/main.js", "scripts": { diff --git a/backend/src/core/proxy-utils/producers/clash.js b/backend/src/core/proxy-utils/producers/clash.js index adc2417..9d29ba8 100644 --- a/backend/src/core/proxy-utils/producers/clash.js +++ b/backend/src/core/proxy-utils/producers/clash.js @@ -7,6 +7,7 @@ export default function Clash_Producer() { // https://github.com/MetaCubeX/Clash.Meta/blob/Alpha/docs/config.yaml#L532 // github.com/Dreamacro/clash/pull/2891/files // filter unsupported proxies + // https://clash.wiki/configuration/outbound.html#shadowsocks proxies = proxies.filter((proxy) => { if ( ![ @@ -20,6 +21,23 @@ export default function Clash_Producer() { 'trojan', 'wireguard', ].includes(proxy.type) || + (proxy.type === 'ss' && + ![ + 'aes-128-gcm', + 'aes-192-gcm', + 'aes-256-gcm', + 'aes-128-cfb', + 'aes-192-cfb', + 'aes-256-cfb', + 'aes-128-ctr', + 'aes-192-ctr', + 'aes-256-ctr', + 'rc4-md5', + 'chacha20-ietf', + 'xchacha20', + 'chacha20-ietf-poly1305', + 'xchacha20-ietf-poly1305', + ].includes(proxy.cipher)) || (proxy.type === 'snell' && String(proxy.version) === '4') || (proxy.type === 'vless' && (typeof proxy.flow !== 'undefined' || diff --git a/backend/src/core/proxy-utils/producers/stash.js b/backend/src/core/proxy-utils/producers/stash.js index bc47e4b..25cab3d 100644 --- a/backend/src/core/proxy-utils/producers/stash.js +++ b/backend/src/core/proxy-utils/producers/stash.js @@ -3,6 +3,7 @@ import { isPresent } from '@/core/proxy-utils/producers/utils'; export default function Stash_Producer() { const type = 'ALL'; const produce = (proxies) => { + // https://stash.wiki/proxy-protocols/proxy-types#shadowsocks return ( 'proxies:\n' + proxies @@ -22,6 +23,23 @@ export default function Stash_Producer() { 'hysteria', 'hysteria2', ].includes(proxy.type) || + (proxy.type === 'ss' && + ![ + 'aes-128-gcm', + 'aes-192-gcm', + 'aes-256-gcm', + 'aes-128-cfb', + 'aes-192-cfb', + 'aes-256-cfb', + 'aes-128-ctr', + 'aes-192-ctr', + 'aes-256-ctr', + 'rc4-md5', + 'chacha20-ietf', + 'xchacha20', + 'chacha20-ietf-poly1305', + 'xchacha20-ietf-poly1305', + ].includes(proxy.cipher)) || (proxy.type === 'snell' && String(proxy.version) === '4') || (proxy.type === 'vless' && proxy['reality-opts'])