3作者: hubabuba445 个月前原帖
嗨,HN!我开发了RustNet,这是一个基于终端用户界面的网络监控工具,使用Rust编写,能够实时显示连接信息,包括进程识别和协议检测。 可能让它有趣的地方包括: • 对HTTP、HTTPS/TLS(带SNI)、DNS和QUIC协议的深度数据包检测 • 在Linux上使用eBPF(实验性)和在macOS上使用PKTAP进行进程识别,这两者都能捕捉到短暂存在的进程,而使用procfs或lsof可能会遗漏 • 使用无锁数据结构进行多线程数据包处理,以提高用户界面的性能 • 跨平台支持(Linux、macOS、Windows,但目前进程识别仅在Linux/macOS上可用) eBPF的实现比使用PKTAP要复杂一些,但学习如何挂钩tcp_connect、udp_sendmsg等,以便在连接消失之前捕获进程信息,确实非常有趣。 我开发这个工具是为了提供一个轻量级的Wireshark替代方案,便于快速进行基于终端的网络检查和进程识别。 安装方法:运行`cargo build --release`,使用sudo运行或设置权限。也可以通过Homebrew进行安装。 非常希望能收到大家对这个项目的反馈,以及关于额外协议检测或其他建议的想法。谢谢!