Skip to content

pitiless0514/https-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

HTTP/HTTPS加密代理系统

本项目是一个基于加密算法的 HTTP/HTTPS 本地代理与远程中转服务器。客户端将浏览器流量加密后转发至服务器,由服务器解密并转发至目标网站,并记录日志数据到 SQLite 数据库,同时提供一个实时监控 Web 面板。


🧩 功能简介

  • 支持多种加密/编码方式:
    • fernet(推荐)
    • aes_cbc
    • manual_base64
    • xor
    • des
    • caesar
  • 支持完整的 HTTP/HTTPS 流量转发
  • 提供 Web 实时监控面板(基于 Flask + SQLite)
  • 自动记录访问日志(客户端IP、目标域名、流量、时间)

🛠 安装依赖

pip install cryptography flask

🚀 使用说明

1. 启动远程服务器

python server.py -p YOUR_PASSWORD --method fernet

可选参数:

  • -lp:监听端口(默认 8888)
  • -lh:监听地址(默认 0.0.0.0)
  • --dashboard-port:Web监控面板端口(默认 9999)
  • --method:加密方式,需与客户端一致

示例:

python server.py -p mypass --method aes_cbc --dashboard-port 9999

2. 启动本地客户端

python client.py -rh SERVER_IP -p YOUR_PASSWORD --method fernet

可选参数:

  • -lp:本地监听端口(默认 1080)
  • -rp:远程服务器端口(默认 8888)

示例:

python client.py -rh 192.168.1.100 -p mypass --method aes_cbc

3. 浏览器代理设置

请将浏览器的 HTTP 和 HTTPS 代理设置为以下地址:

地址:127.0.0.1
端口:1080

例如在 Chrome 中安装 SwitchyOmega 扩展进行配置。


📊 监控面板访问

浏览器访问:

http://<服务器IP>:9999

可实时查看:

  • 请求总数
  • 客户端 IP 数量
  • 总传输流量
  • Top 5 热门访问目标
  • 可搜索与分页的访问日志表

📁 日志数据库

SQLite 数据库存储在 proxy_log.db 文件中,包含以下表结构:

CREATE TABLE access_log (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    client_ip TEXT,
    target_host TEXT,
    target_port INTEGER,
    bytes_sent INTEGER,
    bytes_received INTEGER,
    event_time TEXT
);

⚠️ 安全提示

  • xordescaesar 等加密方式仅用于教学或测试,不要在生产环境中使用
  • manual_base64 并非加密算法,只是编码方法,不具备安全性
  • 推荐使用 fernetaes_cbc 模式进行加密通信

📜 License

MIT License - For educational and research use only.

About

用于计算机网络课程项目的设计

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages