openziti/ziti-tunnel-sdk-c
GitHub: openziti/ziti-tunnel-sdk-c
为构建零信任网络隧道客户端提供协议转换和TCP/IP映射等通用功能的C语言SDK。
Stars: 54 | Forks: 32
[](https://github.com/openziti/ziti-tunnel-sdk-c/blob/master/LICENSE)
[](https://github.com/openziti/ziti-tunnel-sdk-c/releases/latest)
[](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, 安全访问, 安全隧道, 客户端加密, 客户端加密, 微隔离, 网络协议转换, 网络安全, 网络层安全, 网络连接器, 虚拟专用网络, 请求拦截, 身份识别, 边缘计算, 隐私保护, 隧道技术, 零信任, 零信任网络访问