
एक हाई-स्पीड कवर्ट टनल जो टीसीपी ट्रैफिक को एसएमटीपी ईमेल संचार के रूप में प्रच्छन्न करके डीप पैकेट इंस्पेक्शन (DPI) फायरवॉल को बायपास करता है।
एक उच्च-गति वाली गुप्त सुरंग जो डीप पैकेट इंस्पेक्शन (DPI) फ़ायरवॉल को बायपास करने के लिए TCP ट्रैफ़िक को SMTP ईमेल संचार के रूप में छिपाती है।
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌──────────────┐
│ 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 (आपका VPS IP)
curl -sSL https://raw.githubusercontent.com/x011/smtp-tunnel-proxy/main/install.sh | sudo bash
इंस्टॉलर निम्न कार्य करेगा:
बस इतना ही! आपका सर्वर तैयार है।
smtp-tunnel-adduser bob # Add user + generate client ZIP
smtp-tunnel-listusers # List all users
smtp-tunnel-deluser bob # Remove a user
smtp-tunnel-update # Updates code, preserves config/certs/users
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
# Download files
scp [email protected]:/etc/smtp-tunnel/ca.crt .
# Create 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
# Run client
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
# Environment variable
export ALL_PROXY=socks5://127.0.0.1:1080
# Should show your VPS IP
curl -x socks5://127.0.0.1:1080 https://ifconfig.me
config.yaml)users.yaml)प्रत्येक उपयोगकर्ता के पास अलग-अलग सेटिंग्स हो सकती हैं:
users:
alice:
secret: "auto-generated-secret"
# whitelist: # Optional: restrict to specific IPs
# - "192.168.1.100"
# - "10.0.0.0/8" # CIDR notation supported
# logging: true # Optional: disable to stop logging this user
bob:
secret: "another-secret"
whitelist:
- "203.0.113.50" # Bob can only connect from this IP
logging: false # Don't log Bob's activity
| विकल्प | विवरण | डिफ़ॉल्ट |
|---|---|---|
# Check status
sudo systemctl status smtp-tunnel
# Restart after config changes
sudo systemctl restart smtp-tunnel
# View logs
sudo journalctl -u smtp-tunnel -n 100
# Uninstall
sudo /opt/smtp-tunnel/uninstall.sh
python server.py [-c CONFIG] [-d]
-c, --config Config file (default: config.yaml)
-d, --debug Enable debug logging
python client.py [-c CONFIG] [--server HOST] [--server-port PORT]
[-p SOCKS_PORT] [-u USERNAME] [-s SECRET] [--ca-cert FILE] [-d]
-c, --config Config file (default: config.yaml)
--server Override server domain
--server-port Override server port
-p, --socks-port Override local SOCKS port
-u, --username Your username
-s, --secret Override secret
--ca-cert CA certificate path
-d, --debug Enable debug logging
smtp-tunnel-adduser <username> [-u USERS_FILE] [-c CONFIG] [--no-zip]
Add a new user and generate client package
smtp-tunnel-deluser <username> [-u USERS_FILE] [-f]
Remove a user (use -f to skip confirmation)
smtp-tunnel-listusers [-u USERS_FILE] [-v]
List all users (use -v for detailed info)
smtp-tunnel-update
Update server to latest version (preserves config/certs/users)
smtp_proxy/
├── 📄 server.py # Server (runs on VPS)
├── 📄 client.py # Client (runs locally)
├── 📄 common.py # Shared utilities
├── 📄 generate_certs.py # Certificate generator
├── 📄 config.yaml # Server/client configuration
├── 📄 users.yaml # User database
├── 📄 requirements.txt # Python dependencies
├── 📄 install.sh # One-liner server installer
├── 📄 smtp-tunnel.service # Systemd unit file
├── 🔧 smtp-tunnel-adduser # Add user script
├── 🔧 smtp-tunnel-deluser # Remove user script
├── 🔧 smtp-tunnel-listusers # List users script
├── 🔧 smtp-tunnel-update # Update server script
├── 📄 README.md # This file
└── 📄 TECHNICAL.md # Technical documentation
/opt/smtp-tunnel/ # Application files
/etc/smtp-tunnel/ # Configuration files
├── config.yaml
├── users.yaml
├── server.crt
├── server.key
└── ca.crt
/usr/local/bin/ # Management commands
├── 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.yaml में मेल खाते हैंsmtp-tunnel-listusers -v चलाएँ10.0.0.0/8)server_host प्रमाणपत्र होस्टनाम से मेल खाता हैca.crt है# Enable detailed logging
python server.py -d
python client.py -d
# View systemd logs
journalctl -u smtp-tunnel -f
ca_cert का उपयोग करें मैन-इन-द-मिडल हमलों को रोकने के लिएsmtp-tunnel-adduser का उपयोग करें स्वचालित रूप से मजबूत रहस्य उत्पन्न करने के लिएusers.yaml की सुरक्षा करें - इसमें सभी उपयोगकर्ता रहस्य शामिल हैं (chmod 600)logging: false के साथ📚 विस्तृत सुरक्षा विश्लेषण और खतरे के मॉडल के लिए, TECHNICAL.md देखें।
यह प्रोजेक्ट केवल शैक्षिक और अधिकृत उपयोग के लिए प्रदान किया गया है। जिम्मेदारी से और लागू कानूनों के अनुसार उपयोग करें।
यह उपकरण वैध गोपनीयता और सेंसरशिप से बचने के उद्देश्यों के लिए डिज़ाइन किया गया है। उपयोगकर्ता यह सुनिश्चित करने के लिए जिम्मेदार हैं कि उनका उपयोग लागू कानूनों और विनियमों का अनुपालन करता है।
इंटरनेट स्वतंत्रता के लिए ❤️ से बनाया गया
| विशेषता | विवरण |
|---|
| 🔒 TLS एन्क्रिप्शन | STARTTLS के बाद सभी ट्रैफ़िक TLS 1.2+ से एन्क्रिप्ट होता है |
| 🎭 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 |
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 प्रमाणपत्र | अनुशंसित |