
نفق خفي عالي السرعة يخفي حركة مرور TCP كاتصالات بريد إلكتروني SMTP لتجاوز جدران الحماية للتفتيش العميق للحزم (DPI).
نفق خفي عالي السرعة يُخفي حركة مرور TCP على شكل اتصالات بريد إلكتروني SMTP لتجاوز جدران الحماية التي تقوم بفحص الحزم العميق (DPI).
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌──────────────┐
│ Application │─────▶│ Client │─────▶│ Server │─────▶│ Internet │
│ (Browser) │ TCP │ SOCKS5:1080 │ SMTP │ Port 587 │ TCP │ │
│ │◀─────│ │◀─────│ │◀─────│ │
└─────────────┘ └─────────────┘ └─────────────┘ └──────────────┘
│ │
│ Looks like │
│ Email Traffic │
▼ ▼
┌────────────────────────────────┐
│ DPI Firewall │
│ ✅ Sees: Normal SMTP Session │
│ ❌ Cannot see: Tunnel Data │
└────────────────────────────────┘
📚 للحصول على تفاصيل تقنية متعمقة ومواصفات البروتوكول وتحليل الأمان، راجع TECHNICAL.md.
احصل على نطاق مجاني يشير إلى VPS الخاص بك:
مثال: myserver.duckdns.org → 203.0.113.50 (عنوان IP لـ VPS الخاص بك)
curl -sSL https://raw.githubusercontent.com/x011/smtp-tunnel-proxy/main/install.sh | sudo bash
المثبت سيقوم بما يلي:
هذا كل شيء! خادمك جاهز.
smtp-tunnel-adduser bob # إضافة مستخدم + توليد ملف ZIP للعميل
smtp-tunnel-listusers # عرض جميع المستخدمين
smtp-tunnel-deluser bob # إزالة مستخدم
smtp-tunnel-update # تحديث الكود، الحفاظ على الإعدادات/الشهادات/المستخدمين
username.zip من مسؤول الخادم| المنصة | كيفية التشغيل |
|---|---|
| 🪟 Windows | انقر نقرًا مزدوجًا على start.bat |
سوف يقوم المُشغّل بتثبيت التبعيات تلقائياً وبدء تشغيل العميل.
✅ يجب أن ترى:
SMTP Tunnel Proxy Client
User: alice
[INFO] Starting SMTP Tunnel...
[INFO] SOCKS5 proxy will be available at 127.0.0.1:1080
Connecting to myserver.duckdns.org:587
Connected - binary mode active
SOCKS5 proxy on 127.0.0.1:1080
cd alice
pip install -r requirements.txt
python client.py
# تنزيل الملفات
scp [email protected]:/etc/smtp-tunnel/ca.crt .
# إنشاء config.yaml:
cat > config.yaml << EOF
client:
server_host: "myserver.duckdns.org"
server_port: 587
socks_port: 1080
username: "alice"
secret: "your-secret-from-admin"
ca_cert: "ca.crt"
EOF
# تشغيل العميل
python client.py -c config.yaml
اضبط وكيل SOCKS5 على: 127.0.0.1:1080
127.0.0.1، المنفذ: 1080127.0.0.1:1080الإعدادات → الشبكة والإنترنت → الوكيل → الإعداد اليدوي → socks=127.0.0.1:1080
تفضيلات النظام → الشبكة → خيارات متقدمة → الخوادم الوكيلة → وكيل SOCKS → 127.0.0.1:1080
export ALL_PROXY=socks5://127.0.0.1:1080
# curl
curl -x socks5h://127.0.0.1:1080 https://ifconfig.me
# git
git config --global http.proxy socks5://127.0.0.1:1080
# متغير البيئة
export ALL_PROXY=socks5://127.0.0.1:1080
# يجب أن يظهر عنوان IP لـ VPS الخاص بك
curl -x socks5://127.0.0.1:1080 https://ifconfig.me
config.yaml)users.yaml)يمكن لكل مستخدم الحصول على إعدادات فردية:
users:
alice:
secret: "auto-generated-secret"
# whitelist: # اختياري: تقييد لعناوين IP محددة
# - "192.168.1.100"
# - "10.0.0.0/8" # تدوين CIDR مدعوم
# logging: true # اختياري: تعطيل لتوقف تسجيل هذا المستخدم
bob:
secret: "another-secret"
whitelist:
- "203.0.113.50" # يمكن لـ Bob الاتصال فقط من هذا الـ IP
logging: false # لا تسجل نشاط Bob
| الخيار | الوصف | الافتراضي |
|---|---|---|
secret |
# التحقق من الحالة
sudo systemctl status smtp-tunnel
# إعادة التشغيل بعد تغيير التكوين
sudo systemctl restart smtp-tunnel
# عرض السجلات
sudo journalctl -u smtp-tunnel -n 100
# إلغاء التثبيت
sudo /opt/smtp-tunnel/uninstall.sh
python server.py [-c CONFIG] [-d]
-c, --config ملف التكوين (الافتراضي: config.yaml)
-d, --debug تفعيل تسجيل التصحيح
python client.py [-c CONFIG] [--server HOST] [--server-port PORT]
[-p SOCKS_PORT] [-u USERNAME] [-s SECRET] [--ca-cert FILE] [-d]
-c, --config ملف التكوين (الافتراضي: config.yaml)
--server تجاوز نطاق الخادم
--server-port تجاوز منفذ الخادم
-p, --socks-port تجاوز منفذ SOCKS المحلي
-u, --username اسم المستخدم الخاص بك
-s, --secret تجاوز السر
--ca-cert مسار شهادة CA
-d, --debug تفعيل تسجيل التصحيح
smtp-tunnel-adduser <username> [-u USERS_FILE] [-c CONFIG] [--no-zip]
إضافة مستخدم جديد وتوليد حزمة العميل
smtp-tunnel-deluser <username> [-u USERS_FILE] [-f]
إزالة مستخدم (استخدم -f لتخطي التأكيد)
smtp-tunnel-listusers [-u USERS_FILE] [-v]
عرض جميع المستخدمين (استخدم -v للحصول على معلومات تفصيلية)
smtp-tunnel-update
تحديث الخادم إلى أحدث إصدار (يحافظ على الإعدادات/الشهادات/المستخدمين)
smtp_proxy/
├── 📄 server.py # الخادم (يعمل على VPS)
├── 📄 client.py # العميل (يعمل محلياً)
├── 📄 common.py # الأدوات المشتركة
├── 📄 generate_certs.py # مولد الشهادات
├── 📄 config.yaml # تكوين الخادم/العميل
├── 📄 users.yaml # قاعدة بيانات المستخدمين
├── 📄 requirements.txt # تبعيات Python
├── 📄 install.sh # مثبت الخادم بسطر واحد
├── 📄 smtp-tunnel.service # ملف وحدة systemd
├── 🔧 smtp-tunnel-adduser # برنامج إضافة مستخدم
├── 🔧 smtp-tunnel-deluser # برنامج إزالة مستخدم
├── 🔧 smtp-tunnel-listusers # برنامج عرض المستخدمين
├── 🔧 smtp-tunnel-update # برنامج تحديث الخادم
├── 📄 README.md # هذا الملف
└── 📄 TECHNICAL.md # الوثائق التقنية
/opt/smtp-tunnel/ # ملفات التطبيق
/etc/smtp-tunnel/ # ملفات التكوين
├── config.yaml
├── users.yaml
├── server.crt
├── server.key
└── ca.crt
/usr/local/bin/ # أوامر الإدارة
├── smtp-tunnel-adduser
├── smtp-tunnel-deluser
├── smtp-tunnel-listusers
└── smtp-tunnel-update
systemctl status smtp-tunnel أو ps aux | grep server.pynetstat -tlnp | grep 587ufw statususername و secret في users.yamlsmtp-tunnel-listusers -v للتحقق من وجود المستخدم10.0.0.0/8)server_host يتطابق مع اسم مضيف الشهادةca.crt الصحيح من الخادم# تفعيل التسجيل التفصيلي
python server.py -d
python client.py -d
# عرض سجلات systemd
journalctl -u smtp-tunnel -f
ca_cert لمنع هجمات الوسيطsmtp-tunnel-adduser لتوليد أسرار قوية تلقائياًusers.yaml - يحتوي على جميع أسرار المستخدمين (chmod 600)logging: false📚 لتحليل الأمان التفصيلي ونموذج التهديد، راجع TECHNICAL.md.
هذا المشروع مقدم للاستخدام التعليمي والمصرح به فقط. استخدمه بمسؤولية ووفقاً للقوانين المعمول بها.
تم تصميم هذه الأداة لأغراض الخصوصية المشروعة وتجاوز الرقابة المشروعة. يتحمل المستخدمون مسؤولية ضمان امتثال استخدامهم للقوانين واللوائح المعمول بها.
صُنع بـ ❤️ من أجل حرية الإنترنت
| الميزة | الوصف |
|---|
| 🔒 تشفير TLS | جميع حركة المرور مشفرة باستخدام TLS 1.2+ بعد STARTTLS |
| 🎭 تجنب DPI | المصافحة الأولية تحاكي خوادم SMTP الحقيقية (Postfix) |
| ⚡ سرعة عالية | بروتوكول تدفق ثنائي بعد المصافحة - عبء إضافي ضئيل |
| 👥 متعدد المستخدمين | أسرار خاصة لكل مستخدم، قوائم IP مسموح بها، وإعدادات تسجيل دخول |
| 🔑 المصادقة | مفاتيح مشتركة مسبقة لكل مستخدم مع HMAC-SHA256 |
| 🌐 وكيل SOCKS5 | واجهة وكيل قياسية - تعمل مع أي تطبيق |
| 📡 تعدد الإرسال | اتصالات متعددة عبر نفق واحد |
| 🛡️ القائمة البيضاء للـ IP | التحكم في الوصول لكل مستخدم حسب عنوان IP / CIDR |
| 📦 تثبيت سهل | تثبيت الخادم بسطر واحد مع خدمة systemd |
| 🎁 حزم العميل | ملفات ZIP مولّدة تلقائياً لكل مستخدم |
| 🔄 إعادة اتصال تلقائي | يتصل العميل تلقائياً عند فقدان الاتصال |
| 🐧 Linux | قم بتشغيل ./start.sh |
| 🍎 macOS | قم بتشغيل ./start.sh |
| الخيار | الوصف | الافتراضي |
|---|
host | واجهة الاستماع | 0.0.0.0 |
port | منفذ الاستماع | 587 |
hostname | اسم مضيف SMTP (يجب أن يتطابق مع الشهادة) | mail.example.com |
cert_file | مسار شهادة TLS | server.crt |
key_file | مسار المفتاح الخاص لـ TLS | server.key |
users_file | مسار ملف تكوين المستخدمين | users.yaml |
log_users | إعداد تسجيل الدخول العام | true |
| سر المصادقة للمستخدم |
| مطلوب |
whitelist | عناوين IP المسموح بها لهذا المستخدم (مدعوم CIDR) | جميع عناوين IP |
logging | تفعيل تسجيل النشاط لهذا المستخدم | true |
| الخيار | الوصف | الافتراضي |
|---|
server_host | اسم نطاق الخادم | مطلوب |
server_port | منفذ الخادم | 587 |
socks_port | منفذ SOCKS5 المحلي | 1080 |
socks_host | واجهة SOCKS5 المحلية | 127.0.0.1 |
username | اسم المستخدم الخاص بك | مطلوب |
secret | سر المصادقة الخاص بك | مطلوب |
ca_cert | شهادة CA للتحقق | موصى به |