Skip to content
This repository has been archived by the owner on Jan 15, 2024. It is now read-only.

فرگمنت هیدیفای #4

Closed
ghost opened this issue Dec 30, 2023 · 13 comments
Closed

فرگمنت هیدیفای #4

ghost opened this issue Dec 30, 2023 · 13 comments

Comments

@ghost
Copy link

ghost commented Dec 30, 2023

سلام
خیلی ممنون بابت اضافه کردن فرگمنت به کلاینت هیدیفای.
اگه نخوایم از قسمت GUI استفاده کنیم، چه تغییراتی باید تو فایل json اعمال بشه.
قسمت فرگمنت به صورت یه outbound جدید اضافه شده؟
امکانش هست یه کانفیگ json برا CF+VLESS+WS بذارید؟
تشکر

@ghost
Copy link

ghost commented Dec 30, 2023

سلام
مقدار زیر رو به هر outbound میتونید اضافه کنید:

"tls_fragment": {
                "enabled": true,
                "size": "100-200",
                "sleep": "1-10"
            }

برای مثال:

{
            "type": "vless",
            "tag": "worker-out",
            "server": "myworker.workers.dev",
            "server_port": 443,
            "uuid": "my-uuid",
            "tls": {
                "enabled": true,
                "disable_sni": false,
                "server_name": "myworker.workers.dev",
                "alpn": [
                    "http/1.1"
                ],
                "min_version": "1.3",
                "utls": {
                    "enabled": true,
                    "fingerprint": "chrome"
                }
            },
            "transport": {
                "type": "ws",
                "path": "/any-path",
                "headers": {
                    "Host": "myworker.workers.dev"
                }
            },
            "tls_fragment": {
                "enabled": true,
                "size": "100-200",
                "sleep": "1-10"
            }
}

لطفا زین پس در مخازن مربوطه طرح مشکل کنید، برای این مورد مخزن sing-box در حساب شخصی خودم در دسترس می‌باشد.
پیروز باشید.

@ghost
Copy link
Author

ghost commented Dec 30, 2023

خیلی ممنون بابت توضیح.
اتفاقا اول مخزن sing-box رو چک کردم و قسمت issue موجود نبود. بعدا داخل گروه تلگرام هیدیفای پرسیدم که یکی از ادمین ها restrict کردن (به بهانه اسپم کردن) و مجبور شدم این قسمت از شما بپرسم. بزرگوارید.

پس من میتونم فقط برا یوتیوب و سایتایی که از طریق SNI بلاک شدن، یه outbound دایرکت با تنظیمات فرگمنت اضافه کنم و حتی دامنه doh کلادفلر رو با detour ازش رد کنم. درسته؟

@ghost
Copy link
Author

ghost commented Dec 30, 2023

من این موردو تست کردم و نشد.
فکر میکنم فقط برا پراکسیا ابجکت tls_fragment اضافه کردید و به این صورت نیست که یه outbound شبیه direct فقط با tls_frag داشته باشیم و بقیه با detour از داخل این رد بشن.

HiddifyNext Core - Issue

@ghost
Copy link

ghost commented Dec 30, 2023

خیلی ممنون بابت توضیح. اتفاقا اول مخزن sing-box رو چک کردم و قسمت issue موجود نبود. بعدا داخل گروه تلگرام هیدیفای پرسیدم که یکی از ادمین ها restrict کردن (به بهانه اسپم کردن) و مجبور شدم این قسمت از شما بپرسم. بزرگوارید.

مشکلی نداره.

پس من میتونم فقط برا یوتیوب و سایتایی که از طریق SNI بلاک شدن، یه outbound دایرکت با تنظیمات فرگمنت اضافه کنم و حتی دامنه doh کلادفلر رو با detour ازش رد کنم. درسته؟

بله می‌تونید یک خروجی مخصوص فرگمنت ایجاد کنید و میانبر بزنید.
مثال زیر برای استفاده از DoH کلادفلر و یوتیوب کاملا جوابگو هستش:

{
    "log": {
        "disabled": false,
        "level": "debug",
        "timestamp": true
    },
    "dns": {
        "servers": [
            {
                "tag": "local-dns",
                "address": "local"
            },
            {
                "tag": "cloudflare-doh",
                "address": "https://1.1.1.1/dns-query",
                "address_resolver": "local-dns",
                "detour": "fragment"
            }
        ],
        "rules": [
            {
                "type": "logical",
                "mode": "or",
                "rules": [
                    {
                        "domain_suffix": [
                            ".ir"
                        ]
                    },
                    {
                        "geosite": [
                            "ir"
                        ]
                    }
                ],
                "server": "local-dns"
            }
        ],
        "final": "cloudflare-doh",
        "strategy": "prefer_ipv4"
    },
    "route": {
        "rules": [
            {
                "geosite": [
                    "category-ads-all"
                ],
                "outbound": "block"
            },
            {
                "type": "logical",
                "mode": "or",
                "rules": [
                    {
                        "domain_suffix": [
                            ".ir"
                        ]
                    },
                    {
                        "domain": [
                            "www.google.com",
                            "google.com"
                        ]
                    }
                ],
                "invert": false,
                "outbound": "direct"
            },
            {
                "type": "logical",
                "mode": "or",
                "rules": [
                    {
                        "domain_regex": [
                            "(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+cloudflare-dns\\.com",
                            "(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+youtube\\.com",
                            "(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+youtu\\.be",
                            "(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+ytimg\\.com",
                            "(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+ggpht\\.com",
                            "(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+googlevideo\\.com",
                            "(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+gvt1\\.com"
                        ]
                    },
                    {
                        "domain": [
                            "1.1.1.1",
                            "one.one.one.one"
                        ]
                    },
                    {
                        "ip_cidr": [
                            "1.1.1.0/24"
                        ]
                    }
                ],
                "invert": false,
                "outbound": "fragment"
            }
        ]
    },
    "inbounds": [
        ...
    ],
    "outbounds": [
        {
            "type": "block",
            "tag": "block"
        },
        {
            "type": "direct",
            "tag": "direct"
        },
        {
            "type": "direct",
            "tag": "fragment",
            "tcp_fast_open": false,
            "tls_fragment": {
                "enabled": true,
                "size": "100-200",
                "sleep": "0-10"
            }
        },
        {
            "type": "vless",
            "tag": "worker-out",
            "detour": "fragment",
            ...
        }
    ]
}

اگر همچنان مشکل داشت تنظیمات فرگمنت رو دستکاری کنید و اگر تاثیر نداشت احتمالا از نسخه ای استفاده میکنید که فرگمنت نداره، یا از فورک شخصی من استفاده کنید یا منتظر بمونید این درخواست در نسخه ی بعدی ادغام بشه.

ویرایش:
ممکنه برای برخی از قوانین مسیریابی نیاز به پایگاه داده ها داشته باشید که میتونید از مخزن GFIGeoIP تهیه کنید یا مقادیر زیر رو به کانفیگ اضافه کنید:

"route": {
        "geoip": {
            "download_url": "https://github.com/redpilllabs/GFIGeoIP/releases/latest/download/geoip.db",
            "download_detour": "direct"
        },
        "geosite": {
            "download_url": "https://github.com/redpilllabs/GFIGeoIP/releases/latest/download/geosite.db",
            "download_detour": "direct"
        },
        "rules": [
          ...
}

@ghost
Copy link
Author

ghost commented Dec 30, 2023

متاسفانه نتونستم جواب بگیرم و هیچ دامنه ای ریزالئ نمیشه.

قبلا کلاینت هیدیفای یه گزینه ای داشت run config as is. نمیدونم با تنظیمات خودش اختلال داره یا بایپس میکنه تنظیمات داخل کلاینتو.

{
  "log": {
    "disabled": false,
    "level": "debug",
    "timestamp": true
  },
  "dns": {
    "servers": [
      {
        "tag": "dns-os",
        "address": "local",
        "address_strategy": "ipv4_only",
        "strategy": "ipv4_only"
      },
      {
        "tag": "dns-bootstrap",
        "address": "1.1.1.1",
        "address_resolver": "dns-os",
        "address_strategy": "ipv4_only",
        "strategy": "ipv4_only",
        "detour": "fragment"
      },
      {
        "tag": "dns-doh",
        "address": "https://1.1.1.1/dns-query",
        "address_resolver": "dns-bootstrap",
        "address_strategy": "ipv4_only",
        "strategy": "ipv4_only",
        "detour": "fragment"
      }
    ],
    "rules": [],
    "final": "dns-doh",
    "reverse_mapping": true,
    "strategy": "ipv4_only",
    "independent_cache": true
  },
  "inbounds": [
    {
      "type": "tun",
      "tag": "tun-in",
      "domain_strategy": "",
      "interface_name": "tun0",
      "inet4_address": "172.19.0.1/30",
      "mtu": 9000,
      "auto_route": true,
      "strict_route": true,
      "stack": "gvisor",
      "endpoint_independent_nat": true,
      "sniff": true,
      "sniff_override_destination": false
    },
    {
      "type": "mixed",
      "tag": "mixed-in",
      "domain_strategy": "",
      "listen": "127.0.0.1",
      "listen_port": 2080,
      "sniff": true,
      "sniff_override_destination": false
    },
    {
      "type": "direct",
      "tag": "dns-in",
      "listen": "127.0.0.1",
      "listen_port": 6450,
      "override_address": "8.8.8.8",
      "override_port": 53
    }
  ],
  "outbounds": [
    {
      "type": "direct",
      "tag": "direct"
    },
    {
      "type": "direct",
      "tag": "fragment",
      "tcp_fast_open": false,
      "tls_fragment": {
        "enabled": true,
        "size": "100-200",
        "sleep": "1-10"
      }
    }
  ],
  "route": {
    "auto_detect_interface": true,
    "override_android_vpn": true,
    "final": "fragment",
    "rules": [
      {
        "protocol": "dns",
        "outbound": "dns-out"
      },
      {
        "outbound": "dns-out",
        "port": [
          53
        ]
      },
      {
        "inbound": [
          "dns-in"
        ],
        "outbound": "dns-out"
      }
    ]
  }
}

@ghost
Copy link
Author

ghost commented Dec 30, 2023

فعلا routing مهم نیست برام. اصلا همه از فرگمنت عبور کنه. ولی نمیدونم چرا با doh ریزالو نمیشه ولی وقتی میذارم رو dns-bootstrp ریزالو میشه (همون گوگل و ...)

@ghost
Copy link

ghost commented Dec 30, 2023

در کانفیگ تون چندین آیتم برای dns دارید برای عیب یابی اول این قسمت و قوانینش رو حذف کنید:

{
      "type": "direct",
      "tag": "dns-in",
      "listen": "127.0.0.1",
      "listen_port": 6450,
      "override_address": "8.8.8.8",
      "override_port": 53
    }
...
"rules": [
      {
        "protocol": "dns",
        "outbound": "dns-out"
      },
      {
        "outbound": "dns-out",
        "port": [
          53
        ]
      },
      {
        "inbound": [
          "dns-in"
        ],
        "outbound": "dns-out"
      }
    ]
  }

برای doh هم همون سرورهای محلی کافی هستن نیازی به bootstrap نیست و ضمنا پروتکل udp از فرگمنت رد نمیشه بنابراین این قسمت رو هم حذف کنید:

{
        "tag": "dns-bootstrap",
        "address": "1.1.1.1",
        "address_resolver": "dns-os",
        "address_strategy": "ipv4_only",
        "strategy": "ipv4_only",
        "detour": "fragment"
      },

و مقدار "address_resolver": "dns-bootstrap", رو به "address_resolver": "dns-os", تغییر بدید.

به نظر میاد کانفیگ تون رو با ذهنیت Xray نوشتید در حالیکه این دو هسته خیلی باهم فرق دارند. کانفیگ نمونه ی من به درستی کار میکنه اگر با این تغییرات نتیجه نگرفتید اون رو بردارید و تکمیل تر کنید.
پیروز باشید.

@ghost
Copy link
Author

ghost commented Dec 30, 2023

قبل کانفیگ خودم، کانفیگ شما رو تست کردم.
حالا سعی میکنم مشکل dns رو پیدا کنم.
ممنون بابت راهنمایی

@ghost
Copy link
Author

ghost commented Dec 30, 2023

تغییراتی که شما گفتیدو اعمال کردم، فرقی نکرد.
قسمت doh رو به 1.1.1.1 تغییر دادم و detour رو هم به direct تا ببینم وبسایت ایرانی یا غیرفیلتر باز میشه یا نه ولی باز نشد.
داخل log فقط اینا میان چه با dns over udp و چه با doh:

INFO outbound/urltest[auto]: blocked connection to 8.8.8.8:53
DEBUG dns: exchange raw.githubusercontent.com. IN AAAA
ERROR dns: exchange failed for raw.githubusercontent.com. IN A: EOF

@ghost
Copy link
Author

ghost commented Dec 30, 2023

تغییراتی که شما گفتیدو اعمال کردم، فرقی نکرد.
قسمت doh رو به 1.1.1.1 تغییر دادم و detour رو هم به direct تا ببینم وبسایت ایرانی باز میشه یا نه ولی باز نشد.
داخل log فقط اینا میان چه با dns over udp و چه با doh:

INFO outbound/urltest[auto]: blocked connection to 8.8.8.8:53
DEBUG dns: exchange raw.githubusercontent.com. IN AAAA
ERROR dns: exchange failed for raw.githubusercontent.com. IN A: EOF

قسمت 8.8.8.8 چرا باید بیاد؟
من داخل تنظیماتم همچین چیزی ندارم.
فقط تنظیمات خود هیدیفای dns گوگل رو داره

{
  "log": {
    "disabled": false,
    "level": "debug",
    "timestamp": true
  },
  "dns": {
    "servers": [
      {
        "tag": "dns-os",
        "address": "local",
        "address_strategy": "ipv4_only",
        "strategy": "ipv4_only"
      },
      {
        "tag": "dns-doh",
        "address": "https://1.1.1.1/dns-query",
        "address_resolver": "dns-os",
        "address_strategy": "ipv4_only",
        "strategy": "ipv4_only",
        "detour": "fragment"
      }
    ],
    "rules": [],
    "final": "dns-doh",
    "reverse_mapping": true,
    "strategy": "ipv4_only",
    "independent_cache": true
  },
  "inbounds": [
    {
      "type": "tun",
      "tag": "tun-in",
      "domain_strategy": "",
      "interface_name": "tun0",
      "inet4_address": "172.19.0.1/30",
      "mtu": 9000,
      "auto_route": true,
      "strict_route": true,
      "stack": "gvisor",
      "endpoint_independent_nat": true,
      "sniff": true,
      "sniff_override_destination": false
    },
    {
      "type": "mixed",
      "tag": "mixed-in",
      "domain_strategy": "",
      "listen": "127.0.0.1",
      "listen_port": 2080,
      "sniff": true,
      "sniff_override_destination": false
    }
  ],
  "outbounds": [
    {
      "type": "direct",
      "tag": "direct"
    },
    {
      "type": "direct",
      "tag": "fragment",
      "tcp_fast_open": false,
      "tls_fragment": {
        "enabled": true,
        "size": "100-200",
        "sleep": "1-10"
      }
    }
  ],
  "route": {
    "auto_detect_interface": true,
    "override_android_vpn": true,
    "final": "fragment",
    "rules": []
  }
}

@ghost
Copy link
Author

ghost commented Dec 30, 2023

کمی مطمئن شدم که مشکل از کانفیگ من نیست و کلاینت هیدیفای مشکل داره و کانفیگ رو as is اجرا نمیکنه و تنظیمات خودشو میاره تو کانفیگ.

همین کانفیگا با عوض کردن routing asset به chocolate4u وبسایتای ایرانی رو باز میکنه چون داره بایپس میکنه با اینکه من تو کانفیگم قسمت rule رو خالی گذاشتم.

برا بقیه داره دنبال proxy و urltest میگرده که ندارم تو outbound و اون dns گوگل پلاس 8.8.8.8:53 هم باز مربوط به تنظیمات پیشفرض کلاینت هیدیفایه.

خراب کردن کلاینتو و نمیتونم گزینه قدیمی run config as is رو پیدا کنم.

@ghost
Copy link

ghost commented Dec 30, 2023

امیدوارم که تیم هیدیفای برطرف کنند اگر بازم مشکل داشت صبر داشته باشید این درخواست ادغام تکمیل بشه بعدش یک سری کامیت ها رو باید برگردونم و بعدش فایل های اجرایی کامپایل میکنیم در فورک خودم اون موقع بازم با فورک من امتحان کنید.

@ghost
Copy link
Author

ghost commented Dec 30, 2023

خیلی ممنون.
اگه داخل فورک خودتون قسمت issue رو باز کنید، دفعات بعد اونجا مطرح میکنم 🙏

@ghost ghost closed this as completed Dec 31, 2023
This issue was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

0 participants