├── README.md ├── backup.sh ├── changelog ├── clash ├── clash.yaml ├── clash_fullproxy_without_ru.yaml ├── clash_refilter_ech.yaml └── clash_skrepysh.yaml ├── media ├── Config_XUI_ADMIN.jpg ├── Config_XUI_ADMIN_4.jpg ├── CustomWebSub.png ├── CustomWebSubHow2Open.png ├── CustomWebSubSections.png ├── CustomWebSubSingBox.png ├── Enable_WARP.jpg ├── TURNON.png ├── XUI_CONFIG_XRAY_CLIENT_EDIT2.png ├── admin_config.png ├── cdnon.png ├── client_config.png ├── direct_gfw.png ├── error403Google.png ├── grpc_config_format.jpg ├── new_screen_old.png ├── reality.png ├── sub2sing.png ├── trojan_grpc_admin.png ├── vlessandws.png ├── warp.png └── xui-warp.png ├── randomfakehtml.sh ├── sub-3x-ui-classical.html ├── sub-3x-ui.html └── x-ui-pro.sh /README.md: -------------------------------------------------------------------------------- 1 | ## x-ui-pro (x-ui + nginx) modification of https://github.com/GFW4Fun/x-ui-pro for REALITY 2 | - Auto Installation (lightweight) 3 | - Auto SSL renewal / Daily reload Nginx X-ui 4 | - Handle **REALITY** and **WebSocket** via **nginx**. 5 | - Multi-user and config via port **443** 6 | - Auto enabled subscriptions via port **443** 7 | - Auto configured VLESS+Reality and VLESSoverWebSocket 8 | - **Custom Web Sub Page** 9 | - Feature that allows the use of **custom client configurations for SING-BOX & CLASH META** 10 | - **Local instance sub2sing-box** 11 | - Auto configured Firewall 12 | - More security and low detection with nginx 13 | - Compatible with Cloudflare (only for WebSocket/GRPC) 14 | - Random 150+ fake template! 15 | - Linux Debian12/Ubuntu24! 16 | > 17 | **You need TWO domains or subdomains** 18 | 1. For panel and WebSocket/GRPC/HttpUgrade/SplitHttp 19 | 2. For REALITY destination 20 | > 21 | Get Free subdomains - https://scarce-hole-1e2.notion.site/14d1666462e48069818cf42553bfae1f?pvs=74 22 | > 23 | RU instruction - https://scarce-hole-1e2.notion.site/3X-UI-pro-with-REALITY-panel-and-inbaunds-on-port-443-10d1666462e48085be0fee4c136ce417 24 | 25 | ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ 26 | 27 | ### Install X-UI-PRO 28 | 29 | ``` 30 | bash <(wget -qO- https://github.com/mozaroc/x-ui-pro/raw/master/x-ui-pro.sh) -install yes -panel 1 -ONLY_CF_IP_ALLOW no 31 | ``` 32 | > 33 | > Do not change SubDomain for renew SSL❗ 34 | 35 | 36 | **Uninstall X-UI-PRO**:x: 37 | ``` 38 | sudo su -c "bash <(wget -qO- https://raw.githubusercontent.com/mozaroc/x-ui-pro/master/x-ui-pro.sh) -Uninstall yes" 39 | ``` 40 | 41 | **backup panel and nginx configs**:x: 42 | ``` 43 | sudo su -c "bash <(wget -qO- https://raw.githubusercontent.com/mozaroc/x-ui-pro/master/backup.sh)" 44 | ``` 45 | 46 | ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ 47 | ### Screenshots :wrench:🐧⚙️ 48 | > 49 | **How to open custom web sub page?** 50 | > 51 |  52 | > 53 | **Main Page custom web sub** 54 | > 55 |  56 | > 57 | **sub2sing-box section on custom web sub page** 58 | > 59 |  60 | > 61 | **local instance sub2sing-box fork by legiz** 62 | > 63 |  64 | -------------------------------------------------------------------------------- /backup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Check if the script is run as root 4 | if [ "$EUID" -ne 0 ]; then 5 | echo "Please run this script as root." 6 | exit 1 7 | fi 8 | 9 | # Function to get web roots from Nginx configuration 10 | get_web_roots() { 11 | nginx -T 2>/dev/null | grep "root " | awk '{print $2}' | sed 's/;//g' | sort -u 12 | } 13 | 14 | # Logging function 15 | log() { 16 | echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> /var/log/backup_script.log 17 | } 18 | 19 | # Function to perform backup 20 | backup() { 21 | # Ask for backup directory with default 22 | while true; do 23 | read -p "Enter the backup directory path (default /backup): " BACKUP_DIR 24 | BACKUP_DIR="${BACKUP_DIR:-/backup}" 25 | if mkdir -p "$BACKUP_DIR" 2>/dev/null; then 26 | break 27 | else 28 | echo "Failed to create backup directory. Please enter a valid path." 29 | fi 30 | done 31 | 32 | # Get current date and timestamp 33 | BACKUP_DATE=$(date +%F) 34 | BACKUP_TIMESTAMP=$(date +%H-%M-%S) 35 | BACKUP_DIR_DATE="$BACKUP_DIR/$BACKUP_DATE" 36 | BACKUP_DIR_TIMESTAMP="$BACKUP_DIR_DATE/$BACKUP_TIMESTAMP" 37 | mkdir -p "$BACKUP_DIR_TIMESTAMP" 38 | 39 | # Present menu for backup selection with exit option 40 | while true; do 41 | echo "Select components to backup:" 42 | echo "1. Nginx configuration" 43 | echo "2. 3x-ui database" 44 | echo "3. 3x-ui config.json" 45 | echo "4. Website files" 46 | echo "5. All of the above" 47 | echo "0. Exit" 48 | read -p "Enter your choice (0-5): " OPTION 49 | 50 | case $OPTION in 51 | 1) 52 | # Backup Nginx configuration 53 | echo "Creating backup of Nginx configuration..." 54 | tar -czf "$BACKUP_DIR_TIMESTAMP/nginx-$BACKUP_TIMESTAMP.tar.gz" /etc/nginx 55 | echo "Backup completed." 56 | log "Nginx configuration backed up to $BACKUP_DIR_TIMESTAMP/nginx-$BACKUP_TIMESTAMP.tar.gz" 57 | ;; 58 | 2) 59 | # Backup 3x-ui database 60 | echo "Creating backup of 3x-ui database..." 61 | tar -czf "$BACKUP_DIR_TIMESTAMP/x-ui-sql-$BACKUP_TIMESTAMP.tar.gz" /etc/x-ui 62 | echo "Backup completed." 63 | log "3x-ui database backed up to $BACKUP_DIR_TIMESTAMP/x-ui-sql-$BACKUP_TIMESTAMP.tar.gz" 64 | ;; 65 | 3) 66 | # Backup 3x-ui config.json 67 | echo "Creating backup of 3x-ui config.json..." 68 | tar -czf "$BACKUP_DIR_TIMESTAMP/config-$BACKUP_TIMESTAMP.tar.gz" /usr/local/x-ui/bin/config.json 69 | echo "Backup completed." 70 | log "3x-ui config.json backed up to $BACKUP_DIR_TIMESTAMP/config-$BACKUP_TIMESTAMP.tar.gz" 71 | ;; 72 | 4) 73 | # Backup website files 74 | echo "Creating backup of website files..." 75 | WEB_ROOTS=$(get_web_roots) 76 | echo "Web roots: $WEB_ROOTS" 77 | for WEB_ROOT in $WEB_ROOTS; do 78 | if [ -d "$WEB_ROOT" ]; then 79 | tar -czf "$BACKUP_DIR_TIMESTAMP/website-${WEB_ROOT//\//_}-$BACKUP_TIMESTAMP.tar.gz" -P "$WEB_ROOT" 80 | echo "Backed up $WEB_ROOT" 81 | log "Website files for $WEB_ROOT backed up to $BACKUP_DIR_TIMESTAMP/website-${WEB_ROOT//\//_}-$BACKUP_TIMESTAMP.tar.gz" 82 | else 83 | echo "Web root $WEB_ROOT does not exist. Skipping backup." 84 | fi 85 | done 86 | echo "Backup completed." 87 | ;; 88 | 5) 89 | # Backup all components 90 | echo "Creating backup of all components..." 91 | tar -czf "$BACKUP_DIR_TIMESTAMP/nginx-$BACKUP_TIMESTAMP.tar.gz" /etc/nginx 92 | tar -czf "$BACKUP_DIR_TIMESTAMP/x-ui-sql-$BACKUP_TIMESTAMP.tar.gz" /etc/x-ui 93 | tar -czf "$BACKUP_DIR_TIMESTAMP/config-$BACKUP_TIMESTAMP.tar.gz" /usr/local/x-ui/bin/config.json 94 | WEB_ROOTS=$(get_web_roots) 95 | for WEB_ROOT in $WEB_ROOTS; do 96 | if [ -d "$WEB_ROOT" ]; then 97 | tar -czf "$BACKUP_DIR_TIMESTAMP/website-${WEB_ROOT//\//_}-$BACKUP_TIMESTAMP.tar.gz" -P "$WEB_ROOT" 98 | log "Website files for $WEB_ROOT backed up to $BACKUP_DIR_TIMESTAMP/website-${WEB_ROOT//\//_}-$BACKUP_TIMESTAMP.tar.gz" 99 | else 100 | echo "Web root $WEB_ROOT does not exist. Skipping backup." 101 | fi 102 | done 103 | echo "Backup completed." 104 | ;; 105 | 0) 106 | echo "Exiting backup selection." 107 | break 108 | ;; 109 | *) 110 | echo "Invalid choice. Please select a valid option." 111 | ;; 112 | esac 113 | read -p "Press Enter to continue..." 114 | done 115 | } 116 | 117 | # Function to perform restore 118 | restore() { 119 | # Ask for backup directory with default 120 | while true; do 121 | read -p "Enter the backup directory path (default /backup): " BACKUP_DIR 122 | BACKUP_DIR="${BACKUP_DIR:-/backup}" 123 | if [ -d "$BACKUP_DIR" ]; then 124 | break 125 | else 126 | echo "Backup directory does not exist. Please enter a valid path." 127 | fi 128 | done 129 | 130 | # List available backup dates with exit option 131 | BACKUP_DATES=($(find "$BACKUP_DIR" -mindepth 1 -maxdepth 1 -type d -exec basename {} \;)) 132 | if [ ${#BACKUP_DATES[@]} -eq 0 ]; then 133 | echo "No backup dates found." 134 | return 135 | fi 136 | 137 | echo "Available backup dates:" 138 | select BACKUP_DATE in "${BACKUP_DATES[@]}" "Exit"; do 139 | if [ "$BACKUP_DATE" == "Exit" ]; then 140 | echo "Exiting restore selection." 141 | return 142 | elif [ -n "$BACKUP_DATE" ]; then 143 | BACKUP_DIR_DATE="$BACKUP_DIR/$BACKUP_DATE" 144 | break 145 | else 146 | echo "Please select a valid option." 147 | fi 148 | done 149 | 150 | # List all backup timestamps in the selected date directory 151 | BACKUP_TIMESTAMPS=($(find "$BACKUP_DIR_DATE" -mindepth 1 -maxdepth 1 -type d -exec basename {} \;)) 152 | if [ ${#BACKUP_TIMESTAMPS[@]} -eq 0 ]; then 153 | echo "No backup timestamps found in $BACKUP_DIR_DATE." 154 | return 155 | fi 156 | 157 | echo "Available backup timestamps in $BACKUP_DIR_DATE:" 158 | select BACKUP_TIMESTAMP in "${BACKUP_TIMESTAMPS[@]}" "Exit"; do 159 | if [ "$BACKUP_TIMESTAMP" == "Exit" ]; then 160 | echo "Exiting restore selection." 161 | return 162 | elif [ -n "$BACKUP_TIMESTAMP" ]; then 163 | BACKUP_DIR_TIMESTAMP="$BACKUP_DIR_DATE/$BACKUP_TIMESTAMP" 164 | echo "Restoring from $BACKUP_DIR_TIMESTAMP..." 165 | for FILE in "$BACKUP_DIR_TIMESTAMP"/*.tar.gz; do 166 | echo "Restoring $FILE..." 167 | tar -xzf "$FILE" -C / 168 | log "Restored $FILE from $BACKUP_DIR_TIMESTAMP" 169 | done 170 | echo "Restore completed." 171 | read -p "Press Enter to continue..." 172 | else 173 | echo "Please select a valid option." 174 | fi 175 | done 176 | 177 | # Start services after restore 178 | echo "Starting nginx and x-ui services..." 179 | systemctl start nginx 180 | systemctl start x-ui 181 | log "Services restarted after restore operation." 182 | } 183 | 184 | # Main menu with exit option 185 | while true; do 186 | echo "------------------------" 187 | echo " Backup/Restore Menu " 188 | echo "------------------------" 189 | echo "1. Perform Backup" 190 | echo "2. Perform Restore" 191 | echo "0. Exit" 192 | read -p "Select an option: " OPTION 193 | 194 | case $OPTION in 195 | 1) 196 | backup 197 | ;; 198 | 2) 199 | restore 200 | ;; 201 | 0) 202 | echo "Exiting script." 203 | log "Script exited by user." 204 | break 205 | ;; 206 | *) 207 | echo "Invalid option. Please choose again." 208 | ;; 209 | esac 210 | done 211 | -------------------------------------------------------------------------------- /changelog: -------------------------------------------------------------------------------- 1 | v0.3 2 | add emoji flag vps country to inbound remarks 3 | for clash meta config with re-filter ECH+noECH rules use option: -clash 3 4 | fix sub2sing-box run only localhost 5 | v0.2 6 | add new sub page based on https://github.com/streletskiy/marzban-sub-page 7 | for install classic web sub page use option: -websub 1 8 | add clash meta config with ru-bundle 9 | for clash meta config by skrepysh use option: -clash 1 10 | for clash meta config with fullproxy without ru use option: -clash 2 11 | change sub2sing-box to fork by legiz 12 | add link local instance sub2sing-box to output after install 13 | xhttp packet-up mode 14 | v0.1 15 | add web sub page 16 | local sub2sing-box 17 | -------------------------------------------------------------------------------- /clash/clash.yaml: -------------------------------------------------------------------------------- 1 | mixed-port: 7890 2 | allow-lan: false 3 | log-level: info 4 | ipv6: false 5 | 6 | mode: rule 7 | dns: 8 | enable: true 9 | use-hosts: true 10 | ipv6: false 11 | enhanced-mode: redir-host 12 | listen: 127.0.0.1:6868 13 | default-nameserver: 14 | - 1.1.1.1 15 | - 8.8.8.8 16 | - 1.0.0.1 17 | nameserver: 18 | - https://1.1.1.1/dns-query#PROXY 19 | - https://8.8.8.8/dns-query#PROXY 20 | - https://1.0.0.1/dns-query#PROXY 21 | - 8.8.8.8 22 | - 1.1.1.1 23 | 24 | profile: 25 | store-selected: true 26 | 27 | proxy-groups: 28 | - name: PROXY 29 | proxies: 30 | - auto 31 | use: 32 | - sub 33 | type: select 34 | 35 | - name: auto 36 | use: 37 | - sub 38 | type: url-test 39 | url: http://cp.cloudflare.com 40 | interval: 300 41 | tolerance: 150 42 | lazy: true 43 | 44 | proxy-providers: 45 | sub: 46 | type: http 47 | url: https://${DOMAIN}/${SUB_PATH}/ 48 | path: ./proxy_providers/base64.yml 49 | interval: 3600 50 | health-check: 51 | enable: true 52 | url: https://www.gstatic.com/generate_204 53 | interval: 300 54 | timeout: 5000 55 | lazy: true 56 | expected-status: 204 57 | 58 | rule-providers: 59 | ru-bundle: 60 | type: http 61 | behavior: domain 62 | format: mrs 63 | url: https://github.com/legiz-ru/mihomo-rule-sets/raw/main/ru-bundle/rule.mrs 64 | path: ./ru-bundle/rule.mrs 65 | interval: 86400 66 | 67 | rules: 68 | - PROCESS-NAME,Discord.exe,PROXY 69 | - PROCESS-NAME,com.supercell.clashofclans,PROXY 70 | - PROCESS-NAME,com.supercell.brawlstars,PROXY 71 | - RULE-SET,ru-bundle,PROXY 72 | - MATCH,DIRECT 73 | 74 | sniffer: 75 | enable: true 76 | force-dns-mapping: true 77 | parse-pure-ip: true 78 | sniff: 79 | HTTP: 80 | ports: [80, 8080-8880] 81 | override-destination: true 82 | TLS: 83 | ports: [443, 8443] 84 | 85 | tun: 86 | enable: true 87 | stack: system 88 | dns-hijack: 89 | - any:53 90 | auto-redir: true 91 | auto-route: true 92 | auto-detect-interface: true 93 | -------------------------------------------------------------------------------- /clash/clash_fullproxy_without_ru.yaml: -------------------------------------------------------------------------------- 1 | mixed-port: 7890 2 | allow-lan: false 3 | log-level: info 4 | ipv6: false 5 | 6 | mode: rule 7 | dns: 8 | enable: true 9 | use-hosts: true 10 | ipv6: false 11 | enhanced-mode: redir-host 12 | listen: 127.0.0.1:6868 13 | default-nameserver: 14 | - 1.1.1.1 15 | - 8.8.8.8 16 | - 1.0.0.1 17 | nameserver: 18 | - https://1.1.1.1/dns-query#PROXY 19 | - https://8.8.8.8/dns-query#PROXY 20 | - https://1.0.0.1/dns-query#PROXY 21 | - 8.8.8.8 22 | - 1.1.1.1 23 | 24 | profile: 25 | store-selected: true 26 | 27 | proxy-groups: 28 | - name: PROXY 29 | proxies: 30 | - auto 31 | use: 32 | - sub 33 | type: select 34 | 35 | - name: auto 36 | use: 37 | - sub 38 | type: url-test 39 | url: http://cp.cloudflare.com 40 | interval: 300 41 | tolerance: 150 42 | lazy: true 43 | 44 | proxy-providers: 45 | sub: 46 | type: http 47 | url: https://${DOMAIN}/${SUB_PATH}/ 48 | path: ./proxy_providers/base64.yml 49 | interval: 3600 50 | health-check: 51 | enable: true 52 | url: https://www.gstatic.com/generate_204 53 | interval: 300 54 | timeout: 5000 55 | lazy: true 56 | expected-status: 204 57 | 58 | rule-providers: 59 | geosite-ru: 60 | type: http 61 | behavior: domain 62 | format: mrs 63 | url: https://github.com/MetaCubeX/meta-rules-dat/raw/meta/geo/geosite/category-ru.mrs 64 | path: ./geosite-ru.mrs 65 | interval: 86400 66 | geoip-ru: 67 | type: http 68 | behavior: ipcidr 69 | format: mrs 70 | url: https://github.com/MetaCubeX/meta-rules-dat/raw/meta/geo/geoip/ru.mrs 71 | path: ./geoip-ru.mrs 72 | interval: 86400 73 | 74 | rules: 75 | - PROCESS-NAME,Discord.exe,PROXY 76 | - RULE-SET,geosite-ru,DIRECT 77 | - RULE-SET,geoip-ru,DIRECT 78 | - MATCH,PROXY 79 | 80 | sniffer: 81 | enable: true 82 | force-dns-mapping: true 83 | parse-pure-ip: true 84 | sniff: 85 | HTTP: 86 | ports: [80, 8080-8880] 87 | override-destination: true 88 | TLS: 89 | ports: [443, 8443] 90 | 91 | tun: 92 | enable: true 93 | stack: system 94 | dns-hijack: 95 | - any:53 96 | auto-redir: true 97 | auto-route: true 98 | auto-detect-interface: true 99 | -------------------------------------------------------------------------------- /clash/clash_refilter_ech.yaml: -------------------------------------------------------------------------------- 1 | 2 | mixed-port: 7890 3 | allow-lan: false 4 | mode: rule 5 | log-level: warning 6 | ipv6: false 7 | unified-delay: true 8 | tcp-concurrent: true 9 | global-client-fingerprint: chrome 10 | 11 | profile: 12 | store-selected: true 13 | 14 | dns: 15 | enable: true 16 | prefer-h3: true 17 | use-hosts: true 18 | use-system-hosts: true 19 | listen: 127.0.0.1:6868 20 | ipv6: false 21 | enhanced-mode: redir-host 22 | default-nameserver: 23 | - 'tls://1.1.1.1' 24 | - 'tls://1.0.0.1' 25 | proxy-server-nameserver: 26 | - 'tls://1.1.1.1' 27 | - 'tls://1.0.0.1' 28 | nameserver: 29 | - 'https://cloudflare-dns.com/dns-query#PROXY' 30 | 31 | sniffer: 32 | enable: true 33 | force-dns-mapping: true 34 | parse-pure-ip: true 35 | sniff: 36 | HTTP: 37 | ports: [80, 8080-8880] 38 | override-destination: true 39 | TLS: 40 | ports: [443, 8443] 41 | 42 | tun: 43 | enable: true 44 | stack: mixed 45 | auto-route: true 46 | auto-detect-interface: true 47 | dns-hijack: 48 | - any:53 49 | strict-route: true 50 | mtu: 1500 51 | 52 | proxy-groups: 53 | - name: PROXY 54 | proxies: 55 | - auto 56 | use: 57 | - sub 58 | type: select 59 | 60 | - name: auto 61 | use: 62 | - sub 63 | type: url-test 64 | url: http://cp.cloudflare.com 65 | interval: 300 66 | tolerance: 150 67 | lazy: true 68 | 69 | proxy-providers: 70 | sub: 71 | type: http 72 | url: https://${DOMAIN}/${SUB_PATH}/ 73 | path: ./proxy_providers/base64.yml 74 | interval: 3600 75 | health-check: 76 | enable: true 77 | url: https://www.gstatic.com/generate_204 78 | interval: 300 79 | timeout: 5000 80 | lazy: true 81 | expected-status: 204 82 | 83 | rule-providers: 84 | refilter_noech: 85 | type: http 86 | behavior: domain 87 | format: mrs 88 | url: https://github.com/legiz-ru/mihomo-rule-sets/raw/main/re-filter/re-filter-noech.mrs 89 | path: ./re-filter/noech.mrs 90 | interval: 86400 91 | refilter_ech: 92 | type: http 93 | behavior: domain 94 | format: mrs 95 | url: https://github.com/legiz-ru/mihomo-rule-sets/raw/main/re-filter/re-filter-ech.mrs 96 | path: ./re-filter/ech.mrs 97 | interval: 86400 98 | refilter_ipsum: 99 | type: http 100 | behavior: ipcidr 101 | format: mrs 102 | url: https://github.com/legiz-ru/mihomo-rule-sets/raw/main/re-filter/ip-rule.mrs 103 | path: ./re-filter/ip-rule.mrs 104 | interval: 86400 105 | rules: 106 | - DOMAIN,cloudflare-ech.com,PROXY 107 | - RULE-SET,refilter_ech,DIRECT 108 | - RULE-SET,refilter_noech,PROXY 109 | - RULE-SET,refilter_ipsum,PROXY 110 | - MATCH,DIRECT 111 | -------------------------------------------------------------------------------- /clash/clash_skrepysh.yaml: -------------------------------------------------------------------------------- 1 | mixed-port: 7890 2 | allow-lan: false 3 | mode: rule 4 | log-level: warning 5 | ipv6: false 6 | unified-delay: true 7 | tcp-concurrent: true 8 | global-client-fingerprint: chrome 9 | 10 | profile: 11 | store-selected: true 12 | 13 | dns: 14 | enable: true 15 | prefer-h3: true 16 | use-hosts: true 17 | use-system-hosts: true 18 | listen: 127.0.0.1:6868 19 | ipv6: false 20 | enhanced-mode: redir-host 21 | default-nameserver: 22 | - 'tls://1.1.1.1' 23 | - 'tls://1.0.0.1' 24 | proxy-server-nameserver: 25 | - 'tls://1.1.1.1' 26 | - 'tls://1.0.0.1' 27 | nameserver: 28 | - 'https://cloudflare-dns.com/dns-query#PROXY' 29 | 30 | sniffer: 31 | enable: true 32 | force-dns-mapping: true 33 | parse-pure-ip: true 34 | sniff: 35 | HTTP: 36 | ports: [80, 8080-8880] 37 | override-destination: true 38 | TLS: 39 | ports: [443, 8443] 40 | 41 | tun: 42 | enable: true 43 | stack: mixed 44 | auto-route: true 45 | auto-detect-interface: true 46 | dns-hijack: 47 | - any:53 48 | strict-route: true 49 | mtu: 1500 50 | 51 | proxy-groups: 52 | - name: PROXY 53 | proxies: 54 | - auto 55 | use: 56 | - sub 57 | type: select 58 | 59 | - name: auto 60 | use: 61 | - sub 62 | type: url-test 63 | url: http://cp.cloudflare.com 64 | interval: 300 65 | tolerance: 150 66 | lazy: true 67 | 68 | proxy-providers: 69 | sub: 70 | type: http 71 | url: https://${DOMAIN}/${SUB_PATH}/ 72 | path: ./proxy_providers/base64.yml 73 | interval: 3600 74 | health-check: 75 | enable: true 76 | url: https://www.gstatic.com/generate_204 77 | interval: 300 78 | timeout: 5000 79 | lazy: true 80 | expected-status: 204 81 | 82 | rule-providers: 83 | skrepysh-proxy: 84 | type: http 85 | url: https://github.com/Skrepysh/mihomo-rulesets/raw/refs/heads/main/skrepysh-rulesets/skrepysh-proxy.yaml 86 | interval: 86400 87 | proxy: DIRECT 88 | behavior: classical 89 | format: yaml 90 | skrepysh-direct: 91 | type: http 92 | url: https://github.com/Skrepysh/mihomo-rulesets/raw/refs/heads/main/skrepysh-rulesets/skrepysh-direct.yaml 93 | interval: 86400 94 | proxy: DIRECT 95 | behavior: classical 96 | format: yaml 97 | skrepysh-reject: 98 | type: http 99 | url: https://github.com/Skrepysh/mihomo-rulesets/raw/refs/heads/main/skrepysh-rulesets/skrepysh-reject.yaml 100 | interval: 86400 101 | proxy: DIRECT 102 | behavior: classical 103 | format: yaml 104 | ru-bundle: 105 | type: http 106 | url: https://github.com/legiz-ru/mihomo-rule-sets/raw/main/ru-bundle/rule.mrs 107 | interval: 86400 108 | proxy: DIRECT 109 | behavior: domain 110 | format: mrs 111 | torrent-clients: 112 | type: http 113 | url: 'https://raw.githubusercontent.com/legiz-ru/mihomo-rule-sets/refs/heads/main/other/torrent-clients.yaml' 114 | interval: 86400 115 | proxy: DIRECT 116 | behavior: classical 117 | format: yaml 118 | torrent-trackers: 119 | type: http 120 | url: 'https://raw.githubusercontent.com/legiz-ru/mihomo-rule-sets/refs/heads/main/other/torrent-trackers.mrs' 121 | interval: 86400 122 | proxy: DIRECT 123 | behavior: domain 124 | format: mrs 125 | 126 | rules: 127 | - RULE-SET,torrent-clients,DIRECT 128 | - RULE-SET,torrent-trackers,DIRECT 129 | - RULE-SET,skrepysh-reject,REJECT 130 | - RULE-SET,skrepysh-proxy,PROXY 131 | - RULE-SET,skrepysh-direct,DIRECT 132 | - RULE-SET,ru-bundle,PROXY 133 | - MATCH,DIRECT -------------------------------------------------------------------------------- /media/Config_XUI_ADMIN.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozaroc/x-ui-pro/ddc469514243470a865773ce4a78d295f071e9f0/media/Config_XUI_ADMIN.jpg -------------------------------------------------------------------------------- /media/Config_XUI_ADMIN_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozaroc/x-ui-pro/ddc469514243470a865773ce4a78d295f071e9f0/media/Config_XUI_ADMIN_4.jpg -------------------------------------------------------------------------------- /media/CustomWebSub.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozaroc/x-ui-pro/ddc469514243470a865773ce4a78d295f071e9f0/media/CustomWebSub.png -------------------------------------------------------------------------------- /media/CustomWebSubHow2Open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozaroc/x-ui-pro/ddc469514243470a865773ce4a78d295f071e9f0/media/CustomWebSubHow2Open.png -------------------------------------------------------------------------------- /media/CustomWebSubSections.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozaroc/x-ui-pro/ddc469514243470a865773ce4a78d295f071e9f0/media/CustomWebSubSections.png -------------------------------------------------------------------------------- /media/CustomWebSubSingBox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozaroc/x-ui-pro/ddc469514243470a865773ce4a78d295f071e9f0/media/CustomWebSubSingBox.png -------------------------------------------------------------------------------- /media/Enable_WARP.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozaroc/x-ui-pro/ddc469514243470a865773ce4a78d295f071e9f0/media/Enable_WARP.jpg -------------------------------------------------------------------------------- /media/TURNON.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozaroc/x-ui-pro/ddc469514243470a865773ce4a78d295f071e9f0/media/TURNON.png -------------------------------------------------------------------------------- /media/XUI_CONFIG_XRAY_CLIENT_EDIT2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozaroc/x-ui-pro/ddc469514243470a865773ce4a78d295f071e9f0/media/XUI_CONFIG_XRAY_CLIENT_EDIT2.png -------------------------------------------------------------------------------- /media/admin_config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozaroc/x-ui-pro/ddc469514243470a865773ce4a78d295f071e9f0/media/admin_config.png -------------------------------------------------------------------------------- /media/cdnon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozaroc/x-ui-pro/ddc469514243470a865773ce4a78d295f071e9f0/media/cdnon.png -------------------------------------------------------------------------------- /media/client_config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozaroc/x-ui-pro/ddc469514243470a865773ce4a78d295f071e9f0/media/client_config.png -------------------------------------------------------------------------------- /media/direct_gfw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozaroc/x-ui-pro/ddc469514243470a865773ce4a78d295f071e9f0/media/direct_gfw.png -------------------------------------------------------------------------------- /media/error403Google.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozaroc/x-ui-pro/ddc469514243470a865773ce4a78d295f071e9f0/media/error403Google.png -------------------------------------------------------------------------------- /media/grpc_config_format.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozaroc/x-ui-pro/ddc469514243470a865773ce4a78d295f071e9f0/media/grpc_config_format.jpg -------------------------------------------------------------------------------- /media/new_screen_old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozaroc/x-ui-pro/ddc469514243470a865773ce4a78d295f071e9f0/media/new_screen_old.png -------------------------------------------------------------------------------- /media/reality.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozaroc/x-ui-pro/ddc469514243470a865773ce4a78d295f071e9f0/media/reality.png -------------------------------------------------------------------------------- /media/sub2sing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozaroc/x-ui-pro/ddc469514243470a865773ce4a78d295f071e9f0/media/sub2sing.png -------------------------------------------------------------------------------- /media/trojan_grpc_admin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozaroc/x-ui-pro/ddc469514243470a865773ce4a78d295f071e9f0/media/trojan_grpc_admin.png -------------------------------------------------------------------------------- /media/vlessandws.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozaroc/x-ui-pro/ddc469514243470a865773ce4a78d295f071e9f0/media/vlessandws.png -------------------------------------------------------------------------------- /media/warp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozaroc/x-ui-pro/ddc469514243470a865773ce4a78d295f071e9f0/media/warp.png -------------------------------------------------------------------------------- /media/xui-warp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mozaroc/x-ui-pro/ddc469514243470a865773ce4a78d295f071e9f0/media/xui-warp.png -------------------------------------------------------------------------------- /randomfakehtml.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ### https://github.com/GFW4Fun 3 | Green="\033[32m" 4 | Red="\033[31m" 5 | Yellow="\033[33m" 6 | Blue="\033[36m" 7 | Font="\033[0m" 8 | OK="${Green}[OK]${Font}" 9 | ERROR="${Red}[ERROR]${Font}" 10 | function msg_inf() { echo -e "${Blue} $1 ${Font}"; } 11 | function msg_ok() { echo -e "${OK} ${Blue} $1 ${Font}"; } 12 | function msg_err() { echo -e "${ERROR} ${Yellow} $1 ${Font}"; } 13 | ################################### 14 | apt install unzip -y 15 | cd $HOME 16 | if [[ -d "randomfakehtml-master" ]]; then 17 | cd randomfakehtml-master 18 | else 19 | wget https://github.com/GFW4Fun/randomfakehtml/archive/refs/heads/master.zip 20 | unzip master.zip && rm master.zip 21 | cd randomfakehtml-master 22 | rm -rf assets 23 | rm ".gitattributes" "README.md" "_config.yml" 24 | fi 25 | ################################### 26 | #RandomHTML=$(for i in *; do echo "$i"; done | shuf -n1 2>&1) 27 | RandomHTML=$(a=(*); echo ${a[$((RANDOM % ${#a[@]}))]} 2>&1) 28 | msg_inf "Random template name: ${RandomHTML}" 29 | ################################# 30 | if [[ -d "${RandomHTML}" && -d "/var/www/html/" ]]; then 31 | rm -rf /var/www/html/* 32 | cp -a ${RandomHTML}/. "/var/www/html/" 33 | msg_ok "Template extracted successfully!" 34 | else 35 | msg_err "Extraction error!" 36 | fi 37 | ################################# 38 | -------------------------------------------------------------------------------- /sub-3x-ui-classical.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 |Для Android, iOS и Windows
202 |203 |
228 | 229 |iOS 15+
687 |1.
688 | 689 | 690 | 691 | 692 |2.
693 | 694 | 695 | 696 | 697 |3.
698 | 699 | 700 | 701 |iOS 15+
753 |1.
754 | 755 | 756 | 757 | 758 |2.
759 | 760 | 761 | 762 | 763 |3.
764 | 765 | 766 | 767 | 768 |1.
846 | 847 | 848 | 849 | 850 |2.
851 | 852 | 853 | 854 | 855 |3.
856 | 857 |1.
910 | 911 | 912 | 913 | 914 |2.
915 | 916 | 917 | 918 | 919 |3.
920 | 921 | 922 | 923 | 924 |1.
964 | 965 | 966 | 967 | 968 |2.
969 | 970 |3. Invisible Man XRay.exe
971 | 972 |4.
973 | 974 | 975 | 976 | 977 | 978 | 979 |5.
980 | 981 |6.
982 | 983 |1.
1013 | 1014 | 1015 | 1016 | 1017 |2.
1018 | 1019 |3. nekobox.exe
1020 | 1021 |4.
1022 | 1023 | 1028 | 1029 |5.
1030 | 1031 | 1032 | 1033 | 1034 | 1035 | 1036 |
1038 | {"rules": [{"outbound": "proxy","process_name":
1039 | [ "Discord.exe", "Update.exe", "chrome.exe", "firefox.exe", "msedge.exe", "opera.exe", "browser.exe", "yandexbrowser.exe", "brave.exe", "vivaldi.exe", "librewolf.exe" ]
1040 | }]}
1041 |
1042 | 6.
1046 | 1047 | 1048 | 1049 |1.
1069 | 1070 | 1071 | 1072 | 1073 |2.
1074 | 1075 |3. v2rayN.exe
1076 | 1077 |4.
1078 | 1079 | 1084 | 1085 |5.
1086 | 1087 |6.
1088 | 1089 | 1090 | 1091 |7.
1092 | 1093 | 1094 | 1095 | 1096 | 1097 |1.
1118 | 1119 | 1120 | 1121 | 1122 |2.
1123 | 1124 | 1125 | 1126 | 1127 |3.
1128 | 1129 | 1130 | 1131 |4. VPN-mode:
1136 | 1137 | 1138 |1.
1154 | 1155 | 1156 | 1157 | 1158 |2. Clash Verge Rev
1159 | 1160 |3.
1161 | 1162 | 1163 | 1164 | 1165 | 1166 | 1167 |4.
1168 | 1169 | 1170 |1.
1207 | 1208 | 1209 | 1210 | 1211 |2. Clash Verge Rev
1212 |3.
1213 | 1214 | 1215 | 1216 | 1217 | 1218 | 1219 |