mirror of
https://github.com/awfufu/traudit
synced 2026-03-01 05:29:44 +08:00
b36ece9d8697b83870781ba52b3521d191b4b314
traudit (Traffic Audit)
English | 简体中文
traudit is a reverse proxy supporting TCP/UDP/Unix Sockets, focused on connection auditing with support for multiple databases.
Features
- Multi-Protocol Support: TCP, UDP, Unix Domain Sockets.
- Proxy Protocol: Support Proxy Protocol to record real IP.
- Audit Logging: Store connection information in databases (ClickHouse, MySQL, PostgreSQL, SQLite).
- Zero-Copy Forwarding: Uses
spliceon Linux for zero-copy forwarding.
What? You don't need a database? Then go use HAProxy.
Configuration
See config_example.yaml.
TODO List
- Core Implementation
- Configuration parsing (
serde_yaml) - TCP/UDP/Unix Listener abstraction
- Proxy Protocol parsing & handling
- Zero-copy forwarding loop (
splice)
- Configuration parsing (
- Database Integration
- Define Audit Log schema
- Implement
AuditLoggertrait - ClickHouse adapter
- SQLite/MySQL adapters
- Testing
- Unit tests for config & protocol
- End-to-end forwarding tests
- Documentation
- Detailed configuration guide
- Deployment guide
Languages
Rust
100%