openziti/ziti-tunnel-sdk-c

GitHub: openziti/ziti-tunnel-sdk-c

为构建零信任网络隧道客户端提供协议转换和TCP/IP映射等通用功能的C语言SDK。

Stars: 54 | Forks: 32

[![Apache 2.0](https://img.shields.io/github/license/openziti/ziti-tunnel-sdk-c)](https://github.com/openziti/ziti-tunnel-sdk-c/blob/master/LICENSE) [![最新版本](https://img.shields.io/github/v/release/openziti/ziti-tunnel-sdk-c)](https://github.com/openziti/ziti-tunnel-sdk-c/releases/latest) [![构建状态](https://github.com/openziti/ziti-tunnel-sdk-c/workflows/CI%20build/badge.svg)](https://github.com/openziti/ziti-tunnel-sdk-c/actions?query=workflow%3A%22CI+build%22) # Ziti Tunneler SDK Ziti Tunneler SDK 提供协议转换和其他通用功能, 这些功能对 Ziti Tunnelers 非常有用。 ## 什么是 Ziti Tunneler? [关于 tunneler 的主要文章在这里](https://openziti.io/docs/reference/tunnelers/linux/)。编辑者可以点击 每个页面上的“Edit this page”链接。 ## 什么是 Ziti Tunneler SDK? Ziti Tunneler SDK 提供了 Ziti Tunnelers 在支持的操作系统上通用的功能: - 与 TCP/IP 对等端通信 - 将 TCP/IP 连接映射到 Ziti 会话 - 响应 Ziti 服务主机名的 DNS 查询 一个使用 Ziti Tunneler SDK 的 Ziti Tunneler 应用程序只需要 实现特定平台的功能,例如创建虚拟网络 接口,并提供用户界面。 一组回调 函数,用于与应用程序使用的特定 _ziti-sdk_ 进行交互(例如 `ziti-sdk-c`、`ziti-sdk-go`)。 Ziti Tunneler SDK 包含了 `ziti-sdk-c` 所需回调 函数的实现。以下是一个用 C 语言编写的最小化 tunneler 应用程序 如何使用 Ziti Tunneler SDK: ``` int main(int argc, char *argv[]) { uv_loop_t *nf_loop = uv_default_loop(); netif_driver tun = tun_open(NULL, 0); /* open a tun device, and */ if (tun == NULL) { fprintf(stderr, "failed to open network interface: %s\n", tun_error); return 1; } tunneler_sdk_options tunneler_opts = { .netif_driver = tun, .ziti_dial = ziti_sdk_c_dial, .ziti_close = ziti_sdk_c_close, .ziti_write = ziti_sdk_c_write }; tunneler_context TUNNEL_CTX = NF_tunneler_init(&tunneler_opts, nf_loop); nf_options opts = { .init_cb = on_nf_init, .config = argv[1], .service_cb = on_service, .ctx = TUNNEL_CTX, /* this is passed to the service_cb */ .refresh_interval = 10, .config_types = cfg_types, }; if (NF_init_opts(&opts, nf_loop, NULL) != 0) { fprintf(stderr, "failed to initialize ziti\n"); return 1; } if (uv_run(nf_loop, UV_RUN_DEFAULT) != 0) { fprintf(stderr, "failed to run event loop\n"); exit(1); } free(TUNNEL_CTX); return 0; } ``` 一旦 Ziti Tunneler SDK 使用网络设备和 ziti-sdk 回调初始化完成,tunneler 应用程序只需要指示哪些服务 应该被 ## 使用 Docker 运行 请参阅 [Docker README](./docker/README.md) 获取使用 Docker 运行 `ziti-edge-tunnel` 的说明。 ## 多平台 Linux 交叉构建容器 请参阅 [BUILD 文章](./BUILD.md) 获取构建 `ziti-edge-tunnel` 的说明,包括交叉构建容器镜像。
标签:DNS拦截, Google搜索, IP 地址批量处理, JSONLines, libuv, OpenZiti, TCP/IP, TUN设备, VPN替代, ZTN, 安全访问, 安全隧道, 客户端加密, 客户端加密, 微隔离, 网络协议转换, 网络安全, 网络层安全, 网络连接器, 虚拟专用网络, 请求拦截, 身份识别, 边缘计算, 隐私保护, 隧道技术, 零信任, 零信任网络访问