چگونگی یافتن آیپی تمیز کلادفلر - Xen-neX/Hiddify-Manager GitHub Wiki
بزرگترین ارائه دهنده خدمات CDN در جهان کلادفلر است و احتمالا می دانید؛ به دلیل فیلترینگ شدید اینترنت در ایران اختلال زیادی روی سرویس های آن وجود دارد زیرا امکان فیلتر نمودن کامل آن برای فیلترچی مقدور نیست اما می تواند روی آن اختلال ایجاد کند.
در اینجا اگر شما نیز از سرویس های CDN کلادفلر استفاده می کنید؛ متاثر از این اختلالات خواهید شد. برای کاهش تاثیر این اختلالات می بایست آیپی های تمیز (آیپی هایی که اختلالی روی آن نیست) را پیدا کرد.
در اینجا چند راه کار برای این موضوع معرفی و بررسی می گردد.
نکته:
قبل از شروع تاکید می شود تمامی این تست ها روی سیستم کلاینت و بدون اتصال به VPN باید انجام شوند.
فهرست مطالب:
آقای باشسیز یک مهندس ایرانی است که برنامه ای تحت عنوان CFScanner توسعه داده است که با استفاده از آن می توان لیست آیپی های کلادفلر را بر روی شبکه های مختلف تست نمود و به آیپی های تمیز کلادفلر رسید.
این برنامه در نسخههای متعدد از جمله لینوکس و ویندوز منتشر شده است. نسخههای در دسترس تا تاریخ ویرایش این مطلب:
- بَش
- داکر
- ویندوز
- پایتون
- گولنگ
- اندروید
برای این کار در ابتدا از اینجا نسخه مدنظر خود را دانلود کنید و سپس نحوه اجرای آن را بر اساس سیستم عامل مورد نظر دنبال کنید.
(کلیک کنید)
فایل های برنامه را دانلود کنید و ابتدا توضیحات آقای باشسیز درباره نحوه اجرا را در ویدئوی زیر ببینید.
این برنامه پیش نیازهایی دارد که باید از قبل نصب باشند. jq git tput bc curl parallel
سپس ابتدا آن را با کد زیر روی سیستم خود clone کنید.
git clone https://github.com/MortezaBashsiz/CFScanner.git
به پوشه دانلود برنامه بروید و به آن دسترسی اجرا دهید.
cd CFScanner/bash
chmod +x ../bin/*
فایل config.real را دانلود کنید.
curl -s https://raw.githubusercontent.com/MortezaBashsiz/CFScanner/main/bash/ClientConfig.json -o config.real
توصیه می شود فایل config.real را بر اساس کانفیگ خود تغییر دهید.
اگر می خواهید فایل کانفیگ خود را داشته باشید آن را به اسم دیگری ذخیره کنید که هنگام آپدیت اسکریپت تغییر نکند.
به محل فایل اسکریپت دانلود شده بروید و سپس اسکریپت را به شکل زیر اجرا کنید
bash cfScanner.sh SUBNET DOWN threads tryCount config.real speed custom.subnets
bash cfScanner.sh SUBNET DOWN 8 1 config.real 100 custom.subnets
در نهایت نتیجه تست در پوشه result قرار می گیرد که میتوانید آن را ملاحظه کنید و از آن استفاده نمایید. اطلاعات بیشتر در ویکی برنامه
(کلیک کنید)
ابتدا باید پیشنیازهایی وجود داشته باشند که به ترتیب توضیح داده خواهند شد:
-
دانلود اپ اسکنر ویندوز از گیتهاب پروژه
-
اپ .NET Desktop Runtime 6 را نصب کنید از سایت اصلی برنامه که در زیر آورده شده
https://dotnet.microsoft.com/en-us/download/dotnet/6.0
- چک نمودن TLS Handshake
برای این کار ابتدا باید وارد پوشه برنامه بشید و Command Prompt از داخل آن پوشه را باز نمایید. یعنی در پوشه شیفت+راستکلیک
را بزنید و گزینه Open in Windows Terminal
را بزنید.
در محیط ترمینال کامند زیر را اجرا کنید.
.\v2ray.exe tls ping sub.yourdomain.com
به جای sub.yourdomain.com
سابدامین خودتون را بذارید. اگر پیغام handshake succeeded
ظاهر شد؛ یعنی اسکنر آماده استفاده است در غیر اینصورت باید در تنظیمات سرتیفیکت در سایت کلادفلر به صورت موقت تغییراتی اعمال کنید.
ورژن TLS را روی TLS 1.0 بذارید و گزینه TLS 1.3 را غیر فعال کنید.
- نکته: یادتون نره بعد انجام تست این گزینهها را به حالت اول برگردونید.
- ساختارهای الگوی کانفیگ را برای تست آماده کنید.
اگر میخواهید کانفیگهای خودتون را تست کنید باید در فایل Json مربوط به کانکشن درون پوشه برنامه اعمال کنید. نیاز است در inbound
این تغییر اعمال گردد.
{
"inbounds": [{
"port": "PORTPORT",
"listen": "127.0.0.1",
"tag": "socks-inbound",
"protocol": "socks",
"settings": {
...
و همینطور در outbound
نیز این تغییر اعمال گردد.
{
"outbounds": [
{
"protocol": "vmess",
"settings": {
"vnext": [{
"address": "IP.IP.IP.IP",
...
حالا برای راحتی کار، چند نمونه الگوی کانفیگ که iSegaro زحمت کشیده حاضر کرده؛ قرار داده میشه میتوانید مطابق با نیازتون یکی را انتخاب کنید.
- دقت کنید در این ساختار ها فقط در قسمت
outbounds
باید مشخصات کانفیگ شامل ۵ قسمتPort , UUID, PATH , HOST , SNI
را تغییر بدهید که با عبارتxxxxx
مشخص شده , پس هرجا که عبارتxxxxx
وجود داره رو فقط بسته به کانفیگ خودتون تغییر بدید و در باقی کدها تغییری انجام ندهید.
- نمونه الگوی Vmess+WS+TLS :
{
"inbounds": [{
"port": "PORTPORT",
"listen": "127.0.0.1",
"tag": "socks-inbound",
"protocol": "socks",
"settings": {
"auth": "noauth",
"udp": false,
"ip": "127.0.0.1"
},
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls"]
}
}],
"outbounds": [
{
"protocol": "vmess",
"settings": {
"vnext": [{
"address": "IP.IP.IP.IP",
"port": xxxxx,
"users": [{"id": "xxxxx" }]
}]
},
"streamSettings": {
"network": "ws",
"security": "tls",
"wsSettings": {
"headers": {
"Host": "xxxxx"
},
"path": "xxxxx"
},
"tlsSettings": {
"serverName": "xxxxx",
"allowInsecure": false,
"fingerprint": "chrome",
"alpn": [
"http/1.1"
]
}
}
}],
"other": {}
}
- نمونه الگوی Vless+GRPC+TLS :
{
"inbounds": [{
"port": "PORTPORT",
"listen": "127.0.0.1",
"tag": "socks-inbound",
"protocol": "socks",
"settings": {
"auth": "noauth",
"udp": false,
"ip": "127.0.0.1"
},
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls"]
}
}],
"outbounds": [
{
"protocol": "vless",
"settings": {
"vnext": [{
"address": "IP.IP.IP.IP",
"port": xxxxx,
"users": [{"id": "xxxxx",
"encryption": "none"
}]
}]
},
"streamSettings": {
"network": "grpc",
"security": "tls",
"tlsSettings": {
"allowInsecure": false,
"serverName": "xxxxx",
"alpn": [
"http/1.1"
],
"fingerprint": "chrome"
},
"grpcSettings": {
"serviceName": "",
"multiMode": false
}
}
}],
"other": {}
}
- نمونه الگوی Trojan+WS+TLS :
{
"inbounds": [{
"port": "PORTPORT",
"listen": "127.0.0.1",
"tag": "socks-inbound",
"protocol": "socks",
"settings": {
"auth": "noauth",
"udp": false,
"ip": "127.0.0.1"
},
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls"]
}
}],
"outbounds": [
{
"tag": "proxy",
"protocol": "trojan",
"settings": {
"servers": [
{
"address": "IP.IP.IP.IP",
"method": "chacha20",
"ota": false,
"password": "xxxxx",
"port": xxxxx,
"level": 1,
"flow": ""
}
]
},
"streamSettings": {
"network": "ws",
"security": "tls",
"tlsSettings": {
"allowInsecure": false,
"serverName": "xxxxx",
"alpn": [
"http/1.1"
],
"fingerprint": "chrome"
},
"wsSettings": {
"path": "xxxxx",
"headers": {
"Host": "xxxxx"
}
}
},
"mux": {
"enabled": false,
"concurrency": -1
}
}
],
"other": {}
}
- نمونه الگوی Vless+WS+TLS :
{
"inbounds": [{
"port": "PORTPORT",
"listen": "127.0.0.1",
"tag": "socks-inbound",
"protocol": "socks",
"settings": {
"auth": "noauth",
"udp": false,
"ip": "127.0.0.1"
},
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls"]
}
}],
"outbounds": [
{
"tag": "proxy",
"protocol": "vless",
"settings": {
"vnext": [{
"address": "IP.IP.IP.IP",
"port": xxxxx,
"users": [{"id": "xxxxx",
"encryption": "none"
}]
}]
},
"streamSettings": {
"network": "ws",
"security": "tls",
"tlsSettings": {
"allowInsecure": false,
"serverName": "xxxxx",
"alpn": [
"http/1.1"
],
"fingerprint": "chrome"
},
"wsSettings": {
"path": "xxxxx",
"headers": {
"Host": "xxxxx"
}
}
}
}
],
"other": {}
}
در نهایت شما کانفیگ خودتون را طبق نمونهها برای مرحله بعد حاضر کنید یا از کانفیگ دیفالت استفاده کنید.
حالا فرض کنیم پیشنیازها را انجام دادید؛ کافیه فایل کانفیگ نمونه برنامه یا فایل کانفیگ ساخته شده توسط خودتون را که به فرمت Json است؛ از منوی Tools > Add custom v2ray config
در برنامه قرار بدید تا اسکن بر اساس اون انجام بشه در غیر اینصورت برنامه با کانفیگ دیفالت اسکن میکند.
۱. از مسبر Tools > Add custom v2ray config
میتوانید فایل مورد نظر خود را مطابق با الگوی توضیح داده شده به نرمافزار بدید تا اسکن بر اساس اون انجام بشه.
۲. میتوانید نوع تست دانلود یا آپلود یا هردو را تعیین کنید.
۳. در این قسمت می توانید تعداد همزمانی آیپیها برای تست توسط اسکنر را مشخص کنید. پیشنهاد میگردد به صورت مرحلهای این عدد را بالا ببرید و بر اساس قدرت پردازش CPU سیستم خود آن را کم یا زیاد کنید. مثدار دیفالت آن ۴ میباشد.
۴. سریعترین آیپی بعد از اتمام اسکن نمایش داده میشه
۵. رنج آیپیهای تست شده نمایش داده میشه
۶. از این قسمت میتونید رنج آیپیهای مورد نظر خود را به نرمافزار بدید که اسکن بر اساس آن انجام بشه.
- پیشنهاد: میتونید نرمافزار را تنظیم کنید که یکبار کل رنج آیپی دیفالت را اسکن کنه. برای دفعالت بعد میتونید این خروجی را فقط اسکن کنید (با دقت بالاتر) احتمالا نتیجه بهتری خواهید گرفت. همچنین اگر تست آپلود بگیرید احتمالا نتیجه بهتری خواهید گرفت. همه اینها به تلاش و خلاقیت خودتون بستگی داره.
این برنامه در نسخههای مختلف بر اساس پلتفرمهای متفاوت تهیه شده است که میتوانید متناسب با نیازتان از آنها استفاده نمایید.
نسخههای در دسترس تا تاریخ ویرایش این مطلب:
- مک
- ویندوز
- اندروید
- وب
- ابتدا پایتون را بر اساس سیستم عامل خود دانلود کنید.
- فایل فشرده مربوط به کد را از اینجا دانلود کنید و سپس آن را اکسترکت کنید.
- حالا نیاز هست requests را نیز نصب کنید.
pip install requests
-
جهت اجرا در پوشه اکسترکت شده برنامه ترمینال را باز نمایید. یعنی مثلا در ویندوز وارد پوشه برنامه شوید و
شیفت+راستکلیک
کنید و سپس Open in Command Prompt را بزنید تا از آن پوشه وارد ترمینال شوید. -
حالا کامند زیر را بزنید تا برنامه اجر شود.
python start.py
- در ابتدا تعداد آیپی مورد نیاز را وارد میکنید.
- در مرحله بعد حداکثر تاخیر مورد نظر خود را بر حسب میلی ثانیه وارد کنید. مثلا ۵۰۰ یعنی ۵۰۰ میلی ثانیه
- رنج مورد نظر خود برای اسکن را میتوانید انتخاب کنید. برای انتخاب چند رنج از کاما استفاده نمایید و برای نادیده گرفتن یک رنج از
-
استفاده کنید. - میتوانید چند رنج را از جستجو مستثنا کنید. برای انتخاب چند رنج از کاما استفاده نمایید و برای نادیده گرفتن یک رنج از
-
استفاده کنید. - در مرحله بعد می توانید حجم بستههای ارسالی جهت اسکن را بر حسب کیلوبایت مشخص نمایید. هر چه این حجم بالاتر باشد، دقت اسکن بالاتر میرود اما از آن طرف، حجم ترافیک نیز افزایش مییابد.
- بر اساس نیازتان سرعت دانلود را تعیین کنید تا آیپیهایی که سرعت دانلودشان بالاتر از این مقدار است را پیدا کند. سرعت را بر اساس مگابیت بر ثانیه وارد کنید.
- در مرحله بعد سرعت آپلود را بر اساس نیازتان تعیین کنید تا آیپیهایی که سرعت آپلودشان بالاتر از این مقدار است را پیدا کند. این مقدار را بر اساس مگابیت بر ثانیه وارد کنید.
- در مرحله بعد در صورت نیاز میتوانید نتایج اسکن شده را مستقیما وارد کلادفلر کنید یا اینکه آن را نادیده بگیرید تا اسکن شروع شود.
- در صورتی که در جواب مرحله قبل
y
زدهاید، باید اینجا ایمیل متصل به اکانت خود در کلادفلر را بدهید. - سپس در مرحله بعد
Zone ID
را کپی کنید. برای پیدا کردنZone ID
وارد تنظیمات دامنه در اکانت خود شوید سپس مانند تصویر زیرZone ID
را پیدا کنید و کپی کنید.
- در این مرحله باید توکن گلوبال خود را به نرمافزار بدهید. برای این کار در همان صفحه اصلی داشبورد روی
Get your API token
کلیک کنید.
- سپس در صفحه توکنها در
Global API Key
گزینهView
را انتخاب کنید.
- در اینجا از شما رمز اکانتتان را میخواهد و سپس توکن شما را نمایش میدهد.
- این توکن را در نرمافزار کپی کنید.
- سپس سابدامین مورد نظر برای ثبت این آیپیها روی دامنه خود را بدهید. مثلا
cf.yourdomain.com
- پس از آن اسکنر شروع به اسکن میکند و در پایان آیپیها بر اساس مشخصات داده شده به شما نمایش داده خواهد شد. همچنین اگر بخش مربوط به ثبت آیپی در کلادفلر را انجام داده باشید، این آیپیها در کلادفلر هم روی سابدامین مورد نظر ثبت میگردند. یعنی شما در کلادفلر سابدامنههایی خواهید داشت که با نام
cf.yourdomain.com
و با آیپیهای یافته شده توسط اسکنر با پروکسی خاموش به صورت خودکار ثبت شدهاند.
این اسکنر در چند نسخه توسعه داده شده است که میتوانید متناسب با نیازتون از آن استفاده کنید.
نسخههای در دسترس تا تاریخ ویرایش این مطلب:
- ویندوز
- مک
- اندروید
- ابتدا از این لینک پایتون را دانلود کنید.
- در هنگام نصب پایتون تیک مربوط به نصب pip و اضافه کردن پایتون به PATH را فراموش نکنید.
- فایل اصلی اسکنر فشرده را دانلود کنید و آن را از حالت فشرده خارج کنید.
- در مسیر اکسترکت شده یک ترمینال
Command Prompt
باز کنید. یعنی وارد مسیر اکسترکت شده شوید.شیفت+راستکلیک
را بزنید تا ترمینال باز شود. - برای نصب پیشنیازها از کامند زیر استفاده کنید.
pip install -r ./requirements.txt
- بعد از نصب پیشنیازها کار تمام است و نوبت به اجرای برنامه میرسد.
- برای نصب روی سیستم عامل اندروید، نیاز به برنامهای تحت عنوان ترموکس (Termux) میباشد که از اینجا میتوانید دانلود کنید.
- در اینجا با چندین فایل apk مواجه میشوید که باید یکی را بر اساس نوع دستگاه خود انتخاب کنید. اگر نوع دستگاه اندرویدی خود را نمیدانید، نسخه armeabi-v7a را دانلود و نصب کنید.
- در ادامه با باز کردن برنامه ترموکس، خط فرمان به شما نشان داده میشود به ترتیب دستورات زیر را وارد کنید.
- در هنگان نصب تمام پرسشها را با
y
جواب دهید.
pkg update -y; pkg install -y python python-pip openssl python-cryptography
- سپس کامند زیر را اجرا کنید.
curl -sLo main.zip https://github.com/SafaSafari/ss-cloud-scanner/archive/refs/heads/main.zip && unzip -qq main.zip && rm main.zip
- بعد از آن وارد پوشه برنامه شوید و پیشنیازها را نصب کنید.
cd ss-cloud-scanner-main
pip install -r ./requirements.txt
- بعد از نصب پیشنیازها کار تمام است و نوبت به اجرای برنامه میرسد.
- با دستور زیر، عملکرد برنامه آغاز میشود.
python main.py
- به محض اجرا، برنامه از شما تعداد آیپی مورد نیاز را درخواست میکند.
- در مرحله بعد نوع اسکن را میتوان مشخص نمود.
- سپس از شما میپرسد که عملیات اسکن با
https
انجام بشود یاhttp
. - و سپس شروع به اسکن میکند و پس از مدتی آیپیهای سالم (در صورت وجود) در صفحه ظاهر میشوند
- اگر نوع ۲ انتخاب بشود در ادامه از شما
uuid
ودامنه
،پورت
،path
پروکسی مورد استفاده را درخواست میکند و به محض وارد کردن آنها در جاهای مورد نظر، عملیات اسکن شروع میشود. بدین ترتیب حالت ۲ با تنظیمات کانفیگ شما اسکن میکند.
این نوع از اسکن، با توجه به وایت لیست بودن SNI در ایران (منبع) از یک ورکر جایگزین استفاده میکند که بازدهی این مدل اسکن را به شدت بالا میبرد
این مدل اسکن با ساخت پکت Vmess و ارسال آن به سمت سرور با Websocket عملا یک ارتباط پروکسی را شبیه سازی میکند اسکنر های جایگزین، این کار با استفاده از هسته های V2ray یا Xray انجام میدهند، اما این اسکنر این اقدام را بصورت خالص با پایتون پیاده سازی نموده است.
پس از یافتن آیپی تمیز؛ می توانید آن را با یک رکورد dns بدون پروکسی ثبت نمایید. یعنی در سایت کلادفلر یک ساب دامین بسازید. پروکسی را خاموش کنید و آیپی را وارد کنید.
در صورت نیاز به توضیحات بیشتر درباره دامنه اینجا کلیک کنید.
سپس در پنل هیدیفای می توانید آن را در تنظیمات دامنه CDN در فیلد اجبار به استفاده از هاست در کانفیگ CDN قرار دهید. توضیحات بیشتر