#udp-packet #udp #tcp #encryption #tunnel #command-line #udp-over-tcp

bin+lib uki

Uki 是一个快速、简单且跨平台的 UDP 和 TCP 数据包转发和加密器

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 网络编程

MIT/Apache

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.0许可证定义的,有意提交供工作包含的贡献,应双许可如上所述,不附加任何额外条款或条件。

依赖项

~6–16MB
~186K SLoC