diff --git a/README.md b/README.md index 905afbf..7dddb2c 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,9 @@ This repository provides an always-up-to-date list of free MTProto proxies that - No clutter, no ads – just clean proxy addresses ready to use Example line: +``` tg://proxy?server=example.com&port=443&secret=ee00000000000000000000000000000000000000 - +``` --- @@ -42,6 +43,7 @@ You can also manually paste the proxy link into Telegram's "Data and Storage" se If you find this useful, consider giving the repo a ⭐️ - [English](README.md) +- [العربية](README_AR.md) - [中文](README_CN.md) - [Русский](README_RU.md) - [فارسی](README_FA.md) diff --git a/README_AR.md b/README_AR.md new file mode 100644 index 0000000..c7c677a --- /dev/null +++ b/README_AR.md @@ -0,0 +1,47 @@ +# 🌐 بروكسيات MTProto الجديدة – تُحدَّث تلقائياً كل 12 ساعة + +هل تبحث عن بروكسيات MTProto جديدة وفعّالة لتيليغرام؟ +يوفر هذا المستودع قائمة دائمة التحديث من بروكسيات MTProto المجانية، تُمكّنك من تجاوز الرقابة والاتصال بتيليغرام بأمان وسرعة. + +> **✅ الملف:** [`all_proxies.txt`](https://raw.githubusercontent.com/SoliSpirit/mtproto/master/all_proxies.txt) +> **🕒 التحديث:** تلقائي كل 12 ساعة + +--- + +## 📄 المحتويات + +- ملف نصي بسيط: `all_proxies.txt` +- كل سطر يحتوي على بروكسي MTProto فعّال بالصيغة القياسية +- بدون إعلانات أو فوضى — فقط عناوين بروكسي نظيفة وجاهزة للاستخدام + +مثال على السطر: +`tg://proxy?server=example.com&port=443&secret=ee00000000000000000000000000000000000000` + +--- + +## 🔄 نظام التحديث التلقائي + +تُولَّد هذه القائمة وتُنشر بواسطة بوت كل **12 ساعة** باستخدام سكريبت مخصص. +يقوم السكريبت بمسح البروكسيات المتاحة للعموم والتحقق منها قبل النشر. + +--- + +## 💡 كيفية استخدام بروكسيات MTProto؟ + +1. انسخ سطراً من `all_proxies.txt` +2. افتحه في متصفح هاتفك أو جهاز الكمبيوتر +3. سيعرض تيليغرام تلقائياً خيار الاتصال عبر البروكسي + +يمكنك أيضاً لصق رابط البروكسي يدوياً في إعدادات تيليغرام ضمن **"البيانات والتخزين" ← "البروكسي"**. + +--- + +## ☕ الدعم + +إذا كان هذا مفيداً، فكّر في إعطاء ⭐️ للمستودع + +- [English](README.md) +- [العربية](README_AR.md) +- [中文](README_CN.md) +- [Русский](README_RU.md) +- [فارسی](README_FA.md) diff --git a/README_CN.md b/README_CN.md index 526ad89..f6fa093 100644 --- a/README_CN.md +++ b/README_CN.md @@ -15,7 +15,9 @@ - 无广告,无杂乱,只有干净的代理地址 示例行: +``` tg://proxy?server=example.com&port=443&secret=ee00000000000000000000000000000000000000 +``` --- @@ -32,7 +34,7 @@ tg://proxy?server=example.com&port=443&secret=ee00000000000000000000000000000000 2. 在手机或桌面浏览器打开 3. Telegram会自动提示连接代理 -你也可以手动将代理链接粘贴到Telegram“数据和存储”设置下的“代理”中。 +你也可以手动将代理链接粘贴到Telegram **"数据和存储"** 设置下的 **"代理"** 中。 --- @@ -40,7 +42,8 @@ tg://proxy?server=example.com&port=443&secret=ee00000000000000000000000000000000 如果你觉得有用,请给本仓库点个⭐️ -- [English](README.md) +- [English](README.md) +- [العربية](README_AR.md) - [中文](README_CN.md) - [Русский](README_RU.md) - [فارسی](README_FA.md) diff --git a/README_FA.md b/README_FA.md index 08dd0c3..e82d68e 100644 --- a/README_FA.md +++ b/README_FA.md @@ -15,7 +15,9 @@ - بدون تبلیغات و شلوغی، فقط آدرسهای تمیز و آماده استفاده نمونه خط: +``` tg://proxy?server=example.com&port=443&secret=ee00000000000000000000000000000000000000 +``` --- @@ -32,7 +34,7 @@ tg://proxy?server=example.com&port=443&secret=ee00000000000000000000000000000000 2. آن را در گوشی یا مرورگر دسکتاپ خود باز کنید 3. تلگرام بهصورت خودکار پیشنهاد اتصال با پروکسی را میدهد -همچنین میتوانید لینک پروکسی را به صورت دستی در تنظیمات "دادهها و ذخیرهسازی" تلگرام زیر بخش "پروکسی" وارد کنید. +همچنین میتوانید لینک پروکسی را بهصورت دستی در تنظیمات **«دادهها و ذخیرهسازی»** تلگرام زیر بخش **«پروکسی»** وارد کنید. --- @@ -40,7 +42,8 @@ tg://proxy?server=example.com&port=443&secret=ee00000000000000000000000000000000 اگر این مخزن برایتان مفید بود، لطفاً ⭐️ بدهید -- [English](README.md) +- [English](README.md) +- [العربية](README_AR.md) - [中文](README_CN.md) - [Русский](README_RU.md) - [فارسی](README_FA.md) diff --git a/README_RU.md b/README_RU.md index 93368bd..a5e341c 100644 --- a/README_RU.md +++ b/README_RU.md @@ -15,7 +15,9 @@ - Без рекламы, без мусора – только чистые адреса прокси Пример строки: +``` tg://proxy?server=example.com&port=443&secret=ee00000000000000000000000000000000000000 +``` --- @@ -32,7 +34,7 @@ tg://proxy?server=example.com&port=443&secret=ee00000000000000000000000000000000 2. Откройте её на телефоне или браузере 3. Telegram автоматически предложит подключиться через прокси -Вы также можете вручную вставить ссылку прокси в настройках Telegram в разделе "Данные и хранилище" → "Прокси". +Вы также можете вручную вставить ссылку прокси в настройках Telegram в разделе **«Данные и хранилище» → «Прокси»**. --- @@ -40,7 +42,8 @@ tg://proxy?server=example.com&port=443&secret=ee00000000000000000000000000000000 Если вам это полезно, поставьте ⭐️ этому репозиторию -- [English](README.md) +- [English](README.md) +- [العربية](README_AR.md) - [中文](README_CN.md) - [Русский](README_RU.md) - [فارسی](README_FA.md) diff --git a/functions/check.js b/functions/check.js new file mode 100644 index 0000000..5427c42 --- /dev/null +++ b/functions/check.js @@ -0,0 +1,75 @@ +import { connect } from 'cloudflare:sockets'; + +export async function onRequest(context) { + if (context.request.method === 'OPTIONS') { + return new Response(null, { + status: 204, + headers: { + 'Access-Control-Allow-Origin': '*', + 'Access-Control-Allow-Methods': 'GET, OPTIONS', + 'Access-Control-Max-Age': '86400' + } + }); + } + + const url = new URL(context.request.url); + const hdrs = { + 'Content-Type': 'application/json', + 'Access-Control-Allow-Origin': '*', + 'Cache-Control': 'no-store' + }; + + if (url.searchParams.get('ping') === '1') { + return new Response(JSON.stringify({ pong: true }), { headers: hdrs }); + } + + const server = (url.searchParams.get('server') || '').replace(/\.+$/, '').trim(); + const port = parseInt(url.searchParams.get('port') || '0', 10); + + if (!server || port < 1 || port > 65535) { + return new Response(JSON.stringify({ up: false, lat: 0 }), { headers: hdrs }); + } + + const t0 = Date.now(); + let sock = null; + + try { + sock = connect({ hostname: server, port }, { secureTransport: 'off' }); + const writer = sock.writable.getWriter(); + const reader = sock.readable.getReader(); + + // 1. انتظار فتح الاتصال (بحد أقصى 2.5 ثانية) + await Promise.race([ + writer.ready, + new Promise((_, r) => setTimeout(() => r(new Error('timeout')), 2500)) + ]); + const tcpLat = Date.now() - t0; + + // 2. إرسال بيانات عشوائية لاستفزاز البروكسي (MTProto proxy سيرفضها فوراً) + const dummy = new Uint8Array([0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef]); + await writer.write(dummy); + + // 3. قراءة استجابة السيرفر (الخطوة الأهم) + // السيرفر الميت/المحجوب سيظل صامتاً. البروكسي الحقيقي سيغلق الاتصال فوراً لأنه بروتوكول خاطئ. + const readResult = await Promise.race([ + reader.read(), + new Promise(res => setTimeout(() => res({ isHoneypot: true }), 1500)) + ]); + + writer.releaseLock(); + reader.releaseLock(); + + // إذا لم يستجب السيرفر وابتلع البيانات، فهو سيرفر وهمي أو جدار حماية + if (readResult.isHoneypot) { + throw new Error('Dead Server'); + } + + // إذا استجاب أو أغلق الاتصال بنجاح، فهو بروكسي حيّ + return new Response(JSON.stringify({ up: true, lat: tcpLat }), { headers: hdrs }); + + } catch (e) { + return new Response(JSON.stringify({ up: false, lat: 4500 }), { headers: hdrs }); + } finally { + if (sock) sock.close().catch(() => {}); + } +} \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..84eaf9e --- /dev/null +++ b/index.html @@ -0,0 +1,1187 @@ + + + +
+ + +