服务主程序
gmztad是飞网客户端的服务主程序,负责飞网客户端的启动停止、身份验证、加密通讯,网络配置和运行环境监控等。
1. 服务的启动和停止
通常gmztad
服务自动启动,您也可以通过如下命令调整。
在 Linux 中,使用
sudo systemctl start/restart/stop gmztad
来启动/重启/停止gmztad
服务。在 Windows 中,以管理员权限,在命令行中使用
net stop gmztad
或net start gmztad
,或者使用 Windows 服务管理界面中调整。
2. 服务启动参数
在命令行中查看服务启动参数说明:
gmztad --help //或:gmztad -h
下面详细介绍服务启动参数:
参数 | 类型 | 说明 |
---|---|---|
-config | string | 配置文件的绝对路径;设置为“kube+冒号+机密数据键名”的方式引用Kubernetes Secrets中存储的机密数据;设置为“mem+冒号”的方式表示以不存储配置数据的方式启动且标记该设备为临时设备。如果不配置config则配置文件默认保存在configdir参数指定的路径 。默认值为:C:\ProgramData\Gmzta\server-state.conf |
-configdir | string | 用于调整飞网客户端程序“默认的配置文件、系统下发的TLS证书、设备间共享的文件”等文件的保存路径 |
-disablelogs | 是否禁用日志上传功能 | |
-flush | 清理系统状态并退出 | |
-httpproxy | string | 开启HTTP代理,指定HTTP代理运行的IP地址和端口,格式如:localhost:1080 |
-port | value | 监听其他设备通讯的UDP端口;0表示自动选择(默认值:0) (默认值:41520) |
-socket | string | UNIX套接字或Windows命名管道的地址 (默认值:"\\.\pipe\ProtectedPrefix\Administrators\Gmzta\gmztad") |
-socks5 | string | 开启SOCK5代理,指定SOCK5代理运行的IP地址和端口,格式如:localhost:1080 |
-tun | string | 指定飞网客户端程序TUN模式中的网络接口名称;若设置为"gvisor"时,表示使用gvisor模式 (默认值:"gmzta") |
-version | 查看飞网客户端服务主程序版本号 |
3. TUN模式或Gvisor模式介绍
飞网支持TUN或Gvisor两种网络模式。
- TUN模式工作在系统空间,飞网将自动创建TUN设备(即虚拟网卡或虚拟网络接口),并利用TUN设备的编程接口接管和处理(如:加解密)IP数据报文。TUN模式需要容器具备相应的启动权限,该模式具备较高的处理性能,以及较好的程序兼容性。
- Gvisor模式工作在操作系统的用户空间,通过接管飞网程序进程中的网络调用实现报文代理和转发,无需配置特殊的启动权限。此时处于相同网络命名空间(Network Namespace)中的服务端程序可以正常收发来自飞网网络的报文;但处于相同网络命名空间中的客户端程序仍然需要通过该网络命名空间收发报文,即默认不会进入飞网网络。如需在相同网络命名空间中的客户端程序通过飞网收发报文,则该客户端程序需要指定飞网程序作为其通信代理。简单理解,即:外部进来的连接飞网可以帮忙转达,内部出去的连接默认不经过飞网,需要手动配置代理或配置环境变量,需要注意的是这里仅限连接过程,连接一旦建立后的通信过程会使用连接过程的通道。
以下分别展示了普通模式、TUN模式和Gvisor模式下操作系统处理流量转发的流程示意图:
通过数据包报文结构分析,Gvisor模式采用传输层封装加密,TUN模式则采用网络层封装加密。