
نفق خفي عالي السرعة يخفي حركة مرور 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 │
└────────────────────────────────┘
| الميزة | الوصف |
|---|---|
| 🔒 تشفير TLS | جميع حركة المرور مشفرة باستخدام TLS 1.2+ بعد STARTTLS |
| 🎭 تجنب DPI | المصافحة الأولية تحاكي خوادم SMTP الحقيقية (Postfix) |
| ⚡ سرعة عالية | بروتوكول تدفق ثنائي بعد المصافحة - عبء إضافي ضئيل |
| 👥 متعدد المستخدمين | أسرار خاصة لكل مستخدم، قوائم IP مسموح بها، وإعدادات تسجيل دخول |
| 🔑 المصادقة | مفاتيح مشتركة مسبقة لكل مستخدم مع HMAC-SHA256 |
| 🌐 وكيل SOCKS5 | واجهة وكيل قياسية - تعمل مع أي تطبيق |
| 📡 تعدد الإرسال | اتصالات متعددة عبر نفق واحد |
| 🛡️ القائمة البيضاء للـ IP | التحكم في الوصول لكل مستخدم حسب عنوان IP / CIDR |
| 📦 تثبيت سهل | تثبيت الخادم بسطر واحد مع خدمة systemd |
| 🎁 حزم العميل | ملفات ZIP مولّدة تلقائياً لكل مستخدم |
| 🔄 إعادة اتصال تلقائي | يتصل العميل تلقائياً عند فقدان الاتصال |
📚 للحصول على تفاصيل تقنية متعمقة ومواصفات البروتوكول وتحليل الأمان، راجع 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 |
| 🐧 Linux | قم بتشغيل ./start.sh |
| 🍎 macOS | قم بتشغيل ./start.sh |
سوف يقوم المُشغّل بتثبيت التبعيات تلقائياً وبدء تشغيل العميل.
✅ يجب أن ترى:
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)| الخيار | الوصف | الافتراضي |
|---|---|---|
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 |
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 | سر المصادقة للمستخدم | مطلوب |
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 للتحقق | موصى به |
# التحقق من الحالة
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]