diff --git a/config/dts-pontifex.yaml b/config/dts-pontifex.yaml index fc25fcc..5ea1b2b 100644 --- a/config/dts-pontifex.yaml +++ b/config/dts-pontifex.yaml @@ -445,6 +445,29 @@ proxy-groups: - βš–οΈ Personal VPN <<: *health_check_for_selectors + - name: ✳️ Discord + type: select + disable-udp: false + proxies: + - πŸ”’ Fast Servers + - πŸ”’ Personal VPN + - πŸ”’ Europe 🌍 + - ⌚ Europe 🌍 + - βš–οΈ Fast Servers + - βš–οΈ Personal VPN + - βš–οΈ Europe 🌍 + <<: *health_check_for_selectors + + - name: ✳️ USA Services + type: select + disable-udp: false + proxies: + - πŸ”’ USA 🌍 + - πŸ”’ Personal VPN + - βš–οΈ USA 🌍 + - βš–οΈ Personal VPN + <<: *health_check_for_selectors + - name: ✳️ Adaptaion type: select proxies: @@ -469,30 +492,7 @@ proxy-groups: - βš–οΈ Europe 🌍 <<: *health_check_for_selectors - - name: ✳️ Discord - type: select - disable-udp: false - proxies: - - πŸ”’ Fast Servers - - πŸ”’ Personal VPN - - πŸ”’ Europe 🌍 - - ⌚ Europe 🌍 - - βš–οΈ Fast Servers - - βš–οΈ Personal VPN - - βš–οΈ Europe 🌍 - <<: *health_check_for_selectors - - - name: ✳️ USA Services - type: select - disable-udp: false - proxies: - - πŸ”’ USA 🌍 - - πŸ”’ Personal VPN - - βš–οΈ USA 🌍 - - βš–οΈ Personal VPN - <<: *health_check_for_selectors - - - name: ✳️ Notion +- name: ✳️ Notion type: select proxies: - πŸ”’ Personal VPN diff --git a/config/solar-clash-p-mix.yaml b/config/solar-clash-p-mix.yaml index 1fdd506..e4f72f6 100644 --- a/config/solar-clash-p-mix.yaml +++ b/config/solar-clash-p-mix.yaml @@ -145,24 +145,14 @@ dns: 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 +182,6 @@ dns: default-private-proxies-lb-selector: &default_private_proxies_lb_selector type: select proxies: - - vless-estonia - - vless-serbia - βš–οΈ Personal VPN # β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” proxies list β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” @@ -261,6 +249,7 @@ proxy-providers: additional-suffix: "‒𝓾" health-check: <<: *health_check_for_providers + # β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” proxy groups β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” proxy-groups: # β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” fallback β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” @@ -276,43 +265,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 +315,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 +365,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 +384,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 +396,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 +409,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 +430,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/icons/svg/antifilter.svg b/icons/svg/antifilter.svg new file mode 100644 index 0000000..1207714 --- /dev/null +++ b/icons/svg/antifilter.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/icons/svg/apple-1.svg b/icons/svg/apple-1.svg new file mode 100644 index 0000000..596b71a --- /dev/null +++ b/icons/svg/apple-1.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/icons/svg/apple-2.svg b/icons/svg/apple-2.svg new file mode 100644 index 0000000..5179911 --- /dev/null +++ b/icons/svg/apple-2.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/icons/svg/google.svg b/icons/svg/google.svg new file mode 100644 index 0000000..b26d4a4 --- /dev/null +++ b/icons/svg/google.svg @@ -0,0 +1,28 @@ + + + + + Google-color + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/icons/svg/netflix.svg b/icons/svg/netflix.svg new file mode 100644 index 0000000..5930142 --- /dev/null +++ b/icons/svg/netflix.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/icons/svg/notion.svg b/icons/svg/notion.svg new file mode 100644 index 0000000..b64c180 --- /dev/null +++ b/icons/svg/notion.svg @@ -0,0 +1,2 @@ + +Notion icon \ No newline at end of file diff --git a/icons/svg/torrent.svg b/icons/svg/torrent.svg new file mode 100644 index 0000000..3c9ca57 --- /dev/null +++ b/icons/svg/torrent.svg @@ -0,0 +1,15 @@ + + + + + + + + + \ No newline at end of file diff --git a/rule-provider/ai-stuff-western.yaml b/rule-provider/ai-stuff-western.yaml index dff2501..ae87bf6 100644 --- a/rule-provider/ai-stuff-western.yaml +++ b/rule-provider/ai-stuff-western.yaml @@ -50,6 +50,10 @@ payload: - IP-CIDR,64.23.132.171/32 - IP-ASN,20473 + # > DeepL + - DOMAIN-SUFFIX,deepl.com + - IP-ASN,60550 + # > ChatGPT - DOMAIN-SUFFIX,ai.com - DOMAIN-SUFFIX,chatgpt.com diff --git a/rule-provider/testzone-a.yaml b/rule-provider/testzone-a.yaml index ff9a4f3..81a48dd 100644 --- a/rule-provider/testzone-a.yaml +++ b/rule-provider/testzone-a.yaml @@ -1,3 +1,5 @@ payload: - DOMAIN-SUFFIX,ifconfig.me - - DOMAIN-SUFFIX,ipinfo.io \ No newline at end of file + - DOMAIN-SUFFIX,ipinfo.io + - DOMAIN-SUFFIX,pervertium.com + - DOMAIN-SUFFIX,tubesafari.com \ No newline at end of file diff --git a/scripts/iptables-clash-setup.sh b/scripts/iptables-clash-setup.sh new file mode 100644 index 0000000..deecfc2 --- /dev/null +++ b/scripts/iptables-clash-setup.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +# ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° старой Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ +iptables -t nat -F CLASH_REDIR 2>/dev/null +iptables -t nat -X CLASH_REDIR 2>/dev/null +iptables -t nat -F OUTPUT 2>/dev/null +iptables -t nat -X OUTPUT 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 + +iptables -t nat -C PREROUTING -i wt0 -p tcp -j REDIRECT --to-port 7892 2>/dev/null || \ +iptables -t nat -A PREROUTING -i wt0 -p tcp -j REDIRECT --to-port 7892 \ No newline at end of file diff --git a/systemd-units/mihomo-iptables.service b/systemd-units/mihomo-iptables.service new file mode 100644 index 0000000..90a6809 --- /dev/null +++ b/systemd-units/mihomo-iptables.service @@ -0,0 +1,12 @@ +[Unit] +Description=Mihomo iptables rules fixer +After=network.target +Before=mihomo.service + +[Service] +Type=oneshot +ExecStart=/usr/local/bin/iptables-clash-setup.sh +RemainAfterExit=true + +[Install] +WantedBy=multi-user.target \ No newline at end of file diff --git a/systemd-units/mihomo.service b/systemd-units/mihomo.service new file mode 100644 index 0000000..767f8e0 --- /dev/null +++ b/systemd-units/mihomo.service @@ -0,0 +1,18 @@ +[Unit] +Description=Mihomo Daemon, Another Clash Kernel. +After=network.target NetworkManager.service systemd-networkd.service iwd.service + +[Service] +User=clash +Type=simple +LimitNPROC=500 +LimitNOFILE=1000000 +CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SYS_TIME CAP_SYS_PTRACE CAP_DAC_READ_SEARCH CAP_DAC_OVERRIDE +AmbientCapabilities=CAP_NET_ADMIN CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SYS_TIME CAP_SYS_PTRACE CAP_DAC_READ_SEARCH CAP_DAC_OVERRIDE +Restart=always +ExecStartPre=/usr/bin/sleep 1s +ExecStart=/usr/local/bin/mihomo -d /etc/clash +ExecReload=/bin/kill -HUP $MAINPID + +[Install] +WantedBy=multi-user.target