diff --git a/config/solar-clash-mix.yaml b/config/solar-clash-mix.yaml index 6a5f376..a008f3a 100644 --- a/config/solar-clash-mix.yaml +++ b/config/solar-clash-mix.yaml @@ -117,15 +117,6 @@ dns: # '+.internal.crop.com': '10.0.0.1' # —————————————————————————————————————— tun ————————————————————————————————————— -tun: - enable: true - stack: mixed - device: utun - auto-route: true - auto-detect-interface: true - dns-hijack: - - any:53 - # ————————————————————————————————————— macro ———————————————————————————————————— health-check-for-providers: &health_check_for_providers enable: true @@ -145,24 +136,14 @@ tun: behavior: classical interval: 86400 - private-vpn-list: &private_vpn_list - - vless-estonia - - vless-serbia - p-vpn-list_balancer: &p_vpn_list_balancer type: load-balance strategy: sticky-sessions - proxies: - - vless-estonia - - vless-serbia use: - own p-vpn-list_selector: &p_vpn_list_selector type: select - proxies: - - vless-estonia - - vless-serbia use: - own @@ -192,8 +173,6 @@ tun: default-private-proxies-lb-selector: &default_private_proxies_lb_selector type: select proxies: - - vless-estonia - - vless-serbia - ⚖️ Personal VPN # ————————————————————————————————— proxies list ————————————————————————————————— @@ -261,6 +240,7 @@ proxy-providers: additional-suffix: "•𝓾" health-check: <<: *health_check_for_providers + # ————————————————————————————————— proxy groups ————————————————————————————————— proxy-groups: # ————————————————————————— fallback ————————————————————————— @@ -276,43 +256,49 @@ proxy-groups: - name: ⚖️ Personal VPN disable-udp: false <<: [*p_vpn_list_balancer, *health_check_for_load_balancers] - + # —————————————— url tested for non-personal vpn ————————————— - - name: ⌚ Europe + - name: ⌚ Europe 🌍 disable-udp: false filter: "(?i)NL|Finland|Estonia|France|Germany|Sweden|Ireland" <<: [*np_vpn_list_url_test, *health_check_for_load_balancers] # ———————————— load balancers for non-personal vpn ——————————— - - name: ⚖️ Russian - disable-udp: false - filter: "(?i)Russia" - <<: [*np_vpn_list_balancer, *health_check_for_load_balancers] - - - name: ⚖️ Europe - disable-udp: false - filter: "(?i)NL|Finland|Estonia|France|Germany|Sweden|Ireland" - <<: [*np_vpn_list_balancer, *health_check_for_load_balancers] - - - name: ⚖️ USA - disable-udp: false - filter: "(?i)USA|Canada" - <<: [*np_vpn_list_balancer, *health_check_for_load_balancers] - - - name: ⚖️ Asia + - name: ⚖️ Asia 🌍 disable-udp: false filter: "(?i)Hong Kong|China|Malaysia|Philippines|Japan|Singapore" <<: [*np_vpn_list_balancer, *health_check_for_load_balancers] + hidden: true + + - name: ⚖️ Europe 🌍 + disable-udp: false + filter: "(?i)NL|Finland|Estonia|France|Germany|Sweden|Ireland" + <<: [*np_vpn_list_balancer, *health_check_for_load_balancers] + hidden: true + + - name: ⚖️ USA 🌍 + disable-udp: false + filter: "(?i)USA|Canada" + <<: [*np_vpn_list_balancer, *health_check_for_load_balancers] + hidden: true - name: ⚖️ High Bandwidth disable-udp: false filter: "(?i)10 Gbit" <<: [*np_vpn_list_balancer, *health_check_for_load_balancers] + hidden: true + + - name: ⚖️ Russian 🌍 + disable-udp: false + filter: "(?i)Russia" + <<: [*np_vpn_list_balancer, *health_check_for_load_balancers] + hidden: true - name: ⚖️ Fast Servers disable-udp: false filter: "(?i)Low Ping" <<: [*np_vpn_list_balancer, *health_check_for_load_balancers] + hidden: true # ————————————— global selectors for personal vpn ———————————— - name: 🔢 Personal VPN @@ -320,36 +306,41 @@ proxy-groups: <<: [*p_vpn_list_selector, *health_check_for_selectors] # ——————————— global selectors for non-personal vpn —————————— - - name: 🔢 Russian - disable-udp: false - filter: "(?i)Russia" - <<: [*np_vpn_list_selector, *health_check_for_selectors] - - - name: 🔢 Europe - disable-udp: false - filter: "(?i)NL|Finland|Estonia|France|Germany|Sweden|Ireland|Moldova" - <<: [*np_vpn_list_selector, *health_check_for_selectors] - - - name: 🔢 USA - disable-udp: false - filter: "(?i)USA|Canada" - <<: [*np_vpn_list_selector, *health_check_for_selectors] - - - name: 🔢 Asia + - name: 🔢 Asia 🌍 disable-udp: false filter: "(?i)Hong Kong|China|Malaysia|Philippines|Japan|Singapore" <<: [*np_vpn_list_selector, *health_check_for_selectors] - - name: 🔢 Kazakhstan + - name: 🔢 Europe 🌍 + disable-udp: false + filter: "(?i)NL|Finland|Estonia|France|Germany|Sweden|Ireland|Moldova" + <<: [*np_vpn_list_selector, *health_check_for_selectors] + + - name: 🔢 Kazakhstan 🌍 disable-udp: false filter: "(?i)Kazakhstan|KZ" <<: [*np_vpn_list_selector, *health_check_for_selectors] + + - name: 🔢 Russian 🌍 + disable-udp: false + filter: "(?i)Russia" + <<: [*np_vpn_list_selector, *health_check_for_selectors] + + - name: 🔢 USA 🌍 + disable-udp: false + filter: "(?i)USA|Canada" + <<: [*np_vpn_list_selector, *health_check_for_selectors] - name: 🔢 All non-personal disable-udp: false filter: "" <<: [*np_vpn_list_selector, *health_check_for_selectors] + - name: 🔢 Fast Servers + disable-udp: false + filter: "(?i)10 Gbit|10Gbit" + <<: [*np_vpn_list_selector, *health_check_for_selectors] + - name: 🔢 Gaming disable-udp: false filter: "(?i)game" @@ -365,21 +356,17 @@ proxy-groups: filter: "(?i)TOR✅" <<: [*np_vpn_list_selector, *health_check_for_selectors] - - name: 🔢 Fast Servers - disable-udp: false - filter: "(?i)10 Gbit|10Gbit" - <<: [*np_vpn_list_selector, *health_check_for_selectors] - + # ——————— selectors for local rules —————— - name: ✳️ YouTube type: select proxies: - - 🔢 Russian + - 🔢 Russian 🌍 - 🔢 Personal VPN - - 🔢 Europe - - ⌚ Europe - - ⚖️ Europe - - ⚖️ Russian + - 🔢 Europe 🌍 + - ⌚ Europe 🌍 + - ⚖️ Europe 🌍 + - ⚖️ Russian 🌍 - ⚖️ Personal VPN <<: *health_check_for_selectors @@ -388,11 +375,11 @@ proxy-groups: proxies: - 🔢 Fast Servers - 🔢 Personal VPN - - 🔢 Europe - - ⌚ Europe + - 🔢 Europe 🌍 + - ⌚ Europe 🌍 - ⚖️ Fast Servers - ⚖️ Personal VPN - - ⚖️ Europe + - ⚖️ Europe 🌍 <<: *health_check_for_selectors - name: ✳️ Antifilter @@ -400,11 +387,11 @@ proxy-groups: proxies: - 🔢 Fast Servers - 🔢 Personal VPN - - 🔢 Europe - - ⌚ Europe + - 🔢 Europe 🌍 + - ⌚ Europe 🌍 - ⚖️ Fast Servers - ⚖️ Personal VPN - - ⚖️ Europe + - ⚖️ Europe 🌍 <<: *health_check_for_selectors - name: ✳️ Discord @@ -413,20 +400,20 @@ proxy-groups: proxies: - 🔢 Fast Servers - 🔢 Personal VPN - - 🔢 Europe - - ⌚ Europe + - 🔢 Europe 🌍 + - ⌚ Europe 🌍 - ⚖️ Fast Servers - ⚖️ Personal VPN - - ⚖️ Europe + - ⚖️ Europe 🌍 <<: *health_check_for_selectors - name: ✳️ USA Services type: select disable-udp: false proxies: - - 🔢 USA + - 🔢 USA 🌍 - 🔢 Personal VPN - - ⚖️ USA + - ⚖️ USA 🌍 - ⚖️ Personal VPN <<: *health_check_for_selectors @@ -434,37 +421,37 @@ proxy-groups: type: select proxies: - 🔢 Personal VPN - - 🔢 Europe - - ⌚ Europe + - 🔢 Europe 🌍 + - ⌚ Europe 🌍 - ⚖️ Personal VPN - - ⚖️ Europe + - ⚖️ Europe 🌍 <<: *health_check_for_selectors - name: ✳️ AI Stuff (Western) type: select proxies: - 🔢 Personal VPN - - 🔢 Europe - - ⌚ Europe + - 🔢 Europe 🌍 + - ⌚ Europe 🌍 - ⚖️ Personal VPN - - ⚖️ Europe + - ⚖️ Europe 🌍 <<: *health_check_for_selectors - name: ✳️ Testzone A type: select proxies: - 🔢 All non-personal - - 🔢 Russian - - 🔢 Europe - - 🔢 USA - - 🔢 Asia - - 🔢 Kazakhstan + - 🔢 Russian 🌍 + - 🔢 Europe 🌍 + - 🔢 USA 🌍 + - 🔢 Asia 🌍 + - 🔢 Kazakhstan 🌍 - 🔢 Personal VPN - - ⌚ Europe - - ⚖️ Russian - - ⚖️ Europe - - ⚖️ USA - - ⚖️ Asia + - ⌚ Europe 🌍 + - ⚖️ Russian 🌍 + - ⚖️ Europe 🌍 + - ⚖️ USA 🌍 + - ⚖️ Asia 🌍 - ⚖️ Fast Servers - ⚖️ Personal VPN <<: *health_check_for_selectors diff --git a/scripts/iptables-clash-setup.sh b/scripts/iptables-clash-setup.sh new file mode 100644 index 0000000..6e475c2 --- /dev/null +++ b/scripts/iptables-clash-setup.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +# Очистка старой цепочки +iptables -t nat -F CLASH_REDIR 2>/dev/null +iptables -t nat -X CLASH_REDIR 2>/dev/null + +# Создание пользовательской цепочки +iptables -t nat -N CLASH_REDIR + +# Исключаем loopback и локальные подсети +iptables -t nat -A CLASH_REDIR -d 127.0.0.0/8 -j RETURN +iptables -t nat -A CLASH_REDIR -d 10.0.0.0/8 -j RETURN +iptables -t nat -A CLASH_REDIR -d 172.16.0.0/12 -j RETURN +iptables -t nat -A CLASH_REDIR -d 192.168.0.0/16 -j RETURN + +# Всё остальное TCP → REDIRECT на Clash +iptables -t nat -A CLASH_REDIR -p tcp -j REDIRECT --to-ports 7892 + +# Исключаем трафик Clash по UID +iptables -t nat -C OUTPUT -m owner --uid-owner clash -j RETURN 2>/dev/null || \ +iptables -t nat -I OUTPUT -m owner --uid-owner clash -j RETURN + +# Применяем CLASH_REDIR ко всем TCP +iptables -t nat -C OUTPUT -p tcp -j CLASH_REDIR 2>/dev/null || \ +iptables -t nat -A OUTPUT -p tcp -j CLASH_REDIR \ No newline at end of file