7 个版本
0.3.1 | 2023 年 7 月 1 日 |
---|---|
0.3.0 | 2023 年 6 月 9 日 |
0.2.1 | 2023 年 6 月 8 日 |
0.1.2 | 2023 年 6 月 4 日 |
#1678 in 网络编程
27KB
559 行
Uki
Uki (发音为 ookee
) 是一个快速、简单且跨平台的包转发器和加密器。它允许您在两个或多个主机之间转发 UDP 和 TCP 数据包,并加密数据包以保护您的数据免受窥视(你读到“防火墙”了吗!)Uki 使用简单,可以通过简单的命令行界面进行配置。
以下是 Uki 的一些功能
- 快速:Uki 被设计成快速。
- 易于使用:Uki 使用简单,即使是没有任何包转发经验的用户也能轻松使用。
- 安全:Uki 可以加密所有数据包,以保护您的数据免受窥视。
- 跨平台:Uki 可以在任何支持 Rust 编译器的环境中运行。
用法
IP 和端口仅用于说明。支持 IPv4 和 IPv6。对于在 IPv4 上全局监听,请使用 0.0.0.0
,对于 IPv6,请使用 [::]
。
以下是一个示例配置
Client Traffic <==> Uki Client <==> <Uki Traffic> <==> Uki Server <==> Remote Traffic
| |
| |
listen: 127.0.0.1:1111 listen: 127.0.0.1:2222
remote: 127.0.0.1:2222 remote: 127.0.0.1:3333
对于 Uki 客户端,您需要运行
uki --listen 127.0.0.1:1111 --remote 127.0.0.1:2222 --protocol udp client
对于 Uki 服务器,您需要运行
uki --listen 127.0.0.1:2222 --remote 127.0.0.1:3333 --protocol udp server
有关更多信息,请参阅 uki --help
。
支持的协议
- UDP
- TCP
- UDP over TCP
支持的加密方法
- 异或
安装
通过运行 cargo install uki
或使用来自 发布 的最新预构建二进制文件来安装 Uki。
待办事项
- 更多加密方法
- 更多传输/协议
欢迎贡献。
命令行
Usage: uki [OPTIONS] --listen <LISTEN> --remote <REMOTE> --protocol <PROTOCOL> <COMMAND>
Commands:
client
server
help Print this message or the help of the given subcommand(s)
Options:
-l, --listen <LISTEN>
Listen address. e.g. '0.0.0.0:8080' or '[::]:8080' for dual stack listen
-r, --remote <REMOTE>
Remote address. Both IPv4 and IPv6 is supported
--protocol <PROTOCOL>
Protocol of choice. (uot: udp over tcp) [possible values: udp, tcp, uot]
--deadline <DEADLINE>
Enable deadline on open connections. An open connection will be forcibly closed after provided seconds
--timeout <TIMEOUT>
Connections that fail or are idle for `timeout` seconds will be closed. (udp related protocols only) [default: 20]
--encryption <ENCRYPTION>
Enable encryption. Usage format: '<method>:<arg>', e.g. 'xor:mysecurekey'. This should be enabled on both server and client. Currently only XOR is supported
--custom-handshake <CUSTOM_HANDSHAKE>
Enable sending custom handshake data. Format: '<request-file-path>,<response-file-path>'. When enabled, it should be enabled on both server and client with the same request and response file
--daemonize
Run the app as a daemon
--log-level <LOG_LEVEL>
Log level. Possible values from most to least priority: trace, debug, info, warn, error [default: ERROR]
--log-path <LOG_PATH>
Path of the log file
--mtu <MTU>
Maximum datagram size [default: 4096]
-h, --help
Print help
-V, --version
Print version
许可证
根据您的选择,许可为以下之一
- Apache 许可证第 2 版 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确表示否则,您根据Apache-2.0许可证定义的,有意提交供工作包含的贡献,应双许可如上所述,不附加任何额外条款或条件。
依赖项
~6–16MB
~186K SLoC