项目简介
本项目是基于libev库的事件驱动端口映射工具,能实现TCP和UDP的端口转发功能。它提供轻量级、高性能的解决方案,可将接收到的TCP或UDP数据在本地地址和端口与指定远程地址和端口间相互转发。
项目的主要特性和功能
- 事件驱动机制:利用libev库的事件驱动机制,实现高效的I/O多路复用,支持同时处理多个文件描述符的读写事件。
- 协议支持:支持TCP和UDP协议的端口转发,能将客户端数据转发到指定远程地址和端口,也能将远程数据转发到本地。
- 命令行参数解析:可通过命令行参数指定监听地址和远程地址,以及是否启用TCP或UDP转发。
- 连接管理:实现TCP和UDP连接的LRU缓存,管理最近使用的连接,清除不活跃连接。
- 信号处理:接收到SIGPIPE、SIGTERM和SIGINT信号时,程序可正常退出。
安装使用步骤
假设用户已经下载了本项目的源码文件,可按以下步骤操作:
1. 解压源码:将下载的源码压缩包解压到本地目录。
2. 构建项目:使用GCC或兼容的编译器构建项目,生成可执行文件。例如在Linux环境下,使用以下命令编译:
bash
gcc -o tinymapper_amd64 -Wall -Wextra -pedantic -O2 -D__STDC_LIMIT_MACROS -D_GNU_SOURCE -I./libev/ common.cpp fd_manager.cpp log.cpp main.cpp my_ev.cpp -lev -lpthread
此命令将生成名为tinymapper_amd64
的可执行文件,支持TCP和UDP的端口转发功能。
3. 运行程序:在命令行中运行可执行文件,通过命令行参数指定监听地址、远程地址以及是否启用TCP/UDP转发。示例运行命令如下:
bash
./tinymapper_amd64 -l 0.0.0.0:1234 -r 10.222.2.1:443 -t -u
此命令将启动一个端口映射工具,监听本地地址的1234端口,并将接收到的数据转发到10.222.2.1的443端口,同时启用TCP和UDP转发。
注意事项
- 请确保系统支持libev库,并安装相应的依赖库。
- 根据实际情况调整监听地址、远程地址以及是否启用TCP/UDP转发。
- 根据项目需求,可以编译生成不同平台下的可执行文件。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】