文章摘要
该项目是一个SMTP隧道代理工具,通过将TCP流量伪装成SMTP邮件通信来绕过深度包检测防火墙,实现高速隐蔽传输。其核心原理是在客户端和服务器之间建立看似正常的SMTP会话,从而隐藏实际传输的数据。
文章总结
SMTP隧道代理项目概述
核心功能
该项目是一个高性能隐蔽隧道工具,通过将TCP流量伪装成SMTP电子邮件通信,有效规避深度包检测(DPI)防火墙的审查。主要特点包括:
加密与伪装
- 采用TLS 1.2+加密所有流量
- 初始握手阶段模拟真实Postfix服务器行为
- 握手后启用二进制流协议,降低开销
高级功能
- 支持多用户管理(IP白名单、独立密钥)
- 提供SOCKS5代理接口,兼容各类应用
- 单隧道多路复用连接
- 自动重连机制
部署便捷性
- 一键式服务器安装(含systemd服务)
- 自动生成客户端配置包
- 支持Windows/macOS/Linux全平台
技术架构
应用层 → 客户端(SOCKS5:1080) → 服务器(587端口) → 互联网
│ │
└─ 防火墙检测为普通SMTP会话 ─┘
快速入门指南
服务器要求
- Linux VPS + Python 3.8+
- 开放587端口
- 需配置域名(推荐免费服务:DuckDNS/No-IP)
安装流程
bash curl -sSL https://raw.githubusercontent.com/x011/smtp-tunnel-proxy/main/install.sh | sudo bash安装脚本将自动完成:- 域名绑定
- TLS证书生成
- 防火墙配置
- 初始用户创建
客户端使用
- 解压管理员提供的ZIP包
- 运行对应平台的启动脚本(Windows双击start.bat,Linux/macOS执行start.sh)
- 默认在127.0.0.1:1080建立SOCKS5代理
安全建议
- 必须使用域名而非IP地址
- 启用CA证书验证防止中间人攻击
- 定期使用
smtp-tunnel-update更新服务 - 敏感用户建议关闭日志记录(设置
logging: false)
文件结构
/opt/smtp-tunnel/ # 主程序
/etc/smtp-tunnel/ # 配置文件(含TLS证书)
/usr/local/bin/ # 管理命令(用户增删/服务更新)
注意:该项目仅限合法用途,使用者需自行承担合规责任。技术细节详见TECHNICAL.md。
(编辑说明:删减了重复的配置参数表格和冗余的客户端设置步骤,保留核心功能与典型使用场景,突出安全警告和基础架构要点。)
评论总结
以下是评论内容的总结,平衡呈现不同观点:
支持SMTP协议选择的观点
- 认为SMTP是常见过滤对象,这种选择具有隐蔽性(评论2:"SMTP is probably the most filtered protocol")
- 类似技术可扩展到其他使用STARTTLS的协议(评论1:"same technique could be applied to other protocols")
质疑SMTP协议适用性的观点
- SMTP流量特征(单向大数据流、快速关闭连接)容易被识别(评论7:"Real SMTP will have significant data flow in one direction")
- 大流量SMTP会触发滥用监测(评论5:"Large volumes of SMTP-like traffic are a huge red flag")
技术替代方案建议
- HTTPS是更优伪装选择(评论5:"best thing to disguise as is HTTPS")
- 直接使用443端口更可靠(评论6:"Get yourself an IP with Port 443 free")
其他补充观点
- 历史类比:90年代就有人通过POP3端口运行IRC(评论9:"ran telnet on the POP3 port")
- 功能延伸建议:可考虑兼容真实SMTP服务(评论8:"worked as SMTP server")
关键引用保留:
- 支持方:"SMTP is probably the most filtered protocol"(评论2)
- 反对方:"hard to think of a worst protocol to try to hide a proxy in"(评论7)
- 技术建议:"best thing to disguise as is HTTPS"(评论5)