diff --git a/doc/README-zh-CN.md b/doc/README-zh-CN.md new file mode 100644 index 000000000..0f4c08180 --- /dev/null +++ b/doc/README-zh-CN.md @@ -0,0 +1,6 @@ +手册页和其他文档 +===== + +使用“./build.sh”构建手册页。 + +您需要安装 Node.js/npm(脚本会自动安装 npm *marked-man* 包)或 */usr/bin/ronn*。后者是一个 Ruby 程序,在某些发行版中打包为 *rubygem-ronn* 或 *ruby-ronn*,或者可以使用 *gem install ronn* 安装。Node 的 *marked-man* 包和 RubyGems 的 *ronn* 是将 Markdown 编译为 roff/man 格式的两个大致相同的替代方案。 \ No newline at end of file diff --git a/doc/zerotier-cli.1-zh-CN.md b/doc/zerotier-cli.1-zh-CN.md new file mode 100644 index 000000000..2f9e8ac63 --- /dev/null +++ b/doc/zerotier-cli.1-zh-CN.md @@ -0,0 +1,68 @@ +zerotier-cli(1) -- 控制本地 ZeroTier 虚拟网络服务 +================================================================= + +## 概要 + +`zerotier-cli` [-switches] [arguments] + +## 描述 + +**zerotier-cli** 提供了一个简单的命令行界面,用于访问 ZeroTier 虚拟网络端点服务 zerotier-one(8) 的本地 JSON API。 + +默认情况下,**zerotier-cli** 必须以 root 身份或使用 `sudo` 运行。如果您想允许非特权用户使用 **zerotier-cli** 控制系统 ZeroTier 服务,您可以在用户的主目录中创建 ZeroTier 服务授权令牌的本地副本: + + sudo cp /var/lib/zerotier-one/authtoken.secret /home/user/.zeroTierOneAuthToken + chown user /home/user/.zeroTierOneAuthToken + chmod 0600 /home/user/.zeroTierOneAuthToken + +(ZeroTier 服务主目录的位置可能因平台而异。请参见 zerotier-one(8)。) + +请注意,这使用户拥有了将系统连接或断开与任何虚拟网络的权限,这是一个重要的权限。 + +**zerotier-cli** 有几个命令行参数,可以在 `help` 输出中看到。最常用的两个是 `-j` 用于原始 JSON 输出和 `-D` 用于指定替代的 ZeroTier 服务工作目录。原始 JSON 输出更容易在脚本中解析,还包含表格输出中没有的详细信息。`-D` 选项指定了服务的 zerotier-one.port 和 authtoken.secret 文件的位置,如果服务未在系统的默认位置运行。 + +## 命令 + + * `help`: + 显示 **zerotier-cli** 帮助。 + + * `info`: + 显示有关此设备的信息,包括其 10 位 ZeroTier 地址和明显的连接状态。使用 `-j` 获取更详细的输出。 + + * `listpeers`: + 此命令列出了此服务已知并在最近(大约在过去 30 分钟内)通信过的 ZeroTier VL1(虚拟层 1,点对点网络)对等方。这些不一定都是您虚拟网络上的所有设备,也可能包括一些您未加入的任何虚拟网络的设备。这些通常要么是根服务器,要么是网络控制器。 + + * `listnetworks`: + 这将列出您的系统所属的网络以及有关它们的一些信息,例如您被分配的任何 ZeroTier 管理的 IP 地址。(手动分配给 ZeroTier 接口的 IP 地址不会在此处列出。使用标准网络接口命令查看这些地址。) + + * `join`: + 要加入网络,只需使用 `join` 和其 16 位十六进制网络 ID。就是这样。然后使用 `listnetworks` 查看状态。您要么会收到网络控制器的回复,其中包含证书和其他信息,如 IP 分配,要么会收到"访问被拒绝"。在这种情况下,您需要网络管理员在控制器上通过您的 10 位设备 ID(通过 `info` 可见)授权您的设备。 + + * `leave`: + 离开网络就像加入网络一样简单。这会断开与网络的连接并从系统中删除其接口。请注意,网络上的对等方可能会在 `listpeers` 中停留长达 30 分钟,直到由于缺乏流量而超时。但如果它们不再与您共享网络,它们实际上无法以任何有意义的方式与您通信。 + +## 示例 + +加入"Earth",ZeroTier 的大型公共派对线网络: + + $ sudo zerotier-cli join 8056c2e21c000001 + $ sudo zerotier-cli listnetworks + ( 等待直到您获得 Earth IP ) + $ ping earth.zerotier.net + ( 您现在应该能够 ping 通我们的 Earth 测试 IP ) + +离开"Earth": + + $ sudo zerotier-cli leave 8056c2e21c000001 + +列出 VL1 对等方: + + $ sudo zerotier-cli listpeers + +## 版权 + +(c)2011-2016 ZeroTier, Inc. -- https://www.zerotier.com/ -- https://github.com/zerotier + +## 另请参见 + +zerotier-one(8), zerotier-idtool(1) \ No newline at end of file diff --git a/doc/zerotier-idtool.1-zh-CN.md b/doc/zerotier-idtool.1-zh-CN.md new file mode 100644 index 000000000..822866339 --- /dev/null +++ b/doc/zerotier-idtool.1-zh-CN.md @@ -0,0 +1,65 @@ +zerotier-idtool(1) -- 用于创建和操作 ZeroTier 身份的工具 +============================================================================ + +## 概要 + +`zerotier-idtool` [args] + +## 描述 + +**zerotier-idtool** 是一个用于处理 ZeroTier 身份的命令行实用程序。ZeroTier 身份由公钥/私钥对组成(或者如果只是 identity.public,则只有公钥)以及通过基于工作量证明的哈希函数从公钥派生的 10 位十六进制 ZeroTier 地址。 + +## 命令 + +当命令参数需要公钥或私钥(完整)身份时,身份可以指定为文件路径或直接在命令行上指定。 + + * `help`: + 显示帮助。(不带命令运行也会显示帮助。) + + * `generate` [secret file] [public file] [vanity]: + 生成新的 ZeroTier 身份。如果指定了私钥文件,包含私钥的完整身份将写入此文件。如果指定了公钥文件,公钥部分将写入那里。如果未指定文件路径,完整的私钥身份将输出到 STDOUT。虚荣前缀是生成身份地址应以开头的一系列十六进制数字。通常不使用此功能,如果指定,由于身份生成的工作量证明函数的固有成本,生成可能需要很长时间。在 2.8ghz Core i5(使用一个核心)上生成具有已知 16 位(4 位数字)前缀的身份平均需要两个小时。 + + * `validate` : + 本地验证身份的密钥和工作量证明函数对应关系。 + + * `getpublic` : + 提取 identity.secret 的公钥部分并打印到 STDOUT。 + + * `sign` : + 使用 SHA512+ECC-256 (ed25519) 对文件内容进行签名。签名以十六进制格式输出到 STDOUT。 + + * `verify` : + 验证使用 `sign` 创建的签名。 + + * `mkcom` [id,value,maxdelta] [...]: + 创建并签署网络成员证书。这通常不常用,因为网络控制器会自动执行此操作,主要包含用于测试目的。 + +## 示例 + +生成并转储新身份: + + $ zerotier-idtool generate + +生成并写入新身份,包括私钥和公钥部分: + + $ zerotier-idtool generate identity.secret identity.public + +生成以十六进制数字"beef"开头的虚荣地址(这将需要一段时间!): + + $ zerotier-idtool generate beef.secret beef.public beef + +使用身份的私钥对文件进行签名: + + $ zerotier-idtool sign identity.secret last_will_and_testament.txt + +使用公钥验证文件签名: + + $ zerotier-idtool verify identity.public last_will_and_testament.txt + +## 版权 + +(c)2011-2016 ZeroTier, Inc. -- https://www.zerotier.com/ -- https://github.com/zerotier + +## 另请参见 + +zerotier-one(8), zerotier-cli(1) \ No newline at end of file diff --git a/doc/zerotier-one.8-zh-CN.md b/doc/zerotier-one.8-zh-CN.md new file mode 100644 index 000000000..dbd6e951f --- /dev/null +++ b/doc/zerotier-one.8-zh-CN.md @@ -0,0 +1,95 @@ +zerotier-one(8) -- ZeroTier 虚拟网络端点服务 +============================================================ + +## 概要 + +`zerotier-one` [-switches] [working directory] + +## 描述 + +**zerotier-one** 是负责将 Unix(Linux/BSD/OSX)系统连接到一个或多个 ZeroTier 虚拟网络并将这些网络呈现给系统作为虚拟网络端口的服务/守护进程。您可以将其视为点对点 VPN 客户端。 + +它通常由 systemd(Linux)或 launchd(Mac)等 init 系统运行,而不是由用户直接运行,并且必须以 root 身份运行,除非您给它 `-U` 开关并且不打算实际加入网络(例如,仅运行网络控制器微服务)。 + +**zerotier-one** 服务将其状态和其他文件保存在工作目录中。如果在启动时未指定此目录,则在 Linux 上默认为"/var/lib/zerotier-one",在 Mac 上默认为"/Library/Application Support/ZeroTier/One",在 FreeBSD 和其他类似的 BSD 上默认为"/var/db/zerotier-one"。工作目录应该是持久的。它不应该被系统清理守护进程自动清理或存储在易失性位置。丢失其 identity.secret 文件会导致丢失此系统的唯一 10 位 ZeroTier 地址和密钥。 + +只要使用不同的主端口(请参见开关)和不同的工作目录,就可以在同一系统上运行多个 **zerotier-one** 实例。但由于单个服务可以加入任意数量的网络,通常这样做没有意义。 + +**zerotier-one** 服务通过在 127.0.0.1:<主端口> 上可用的 JSON API 进行控制,默认主端口为 9993。访问此 API 需要通常在服务工作目录中的 authtoken.secret 文件中找到的授权令牌。在某些平台上,如果启用了其他安全选项,访问可能受到其他措施(如套接字对等 UID/GID 查找)的保护(这不是默认设置)。 + +首次在新的工作目录中启动服务时,它会生成 ZeroTier 身份。在慢速系统上,由于 ZeroTier 在地址生成中使用了反 DDOS/反伪造的工作量证明函数,此过程可能需要十秒或更长时间。这只发生一次,一旦生成,结果将保存在工作目录中的 identity.secret 中。此文件代表并定义/声明您的 ZeroTier 地址和相关的 ECC-256 密钥对。 + +## 开关 + + * `-h`: + 显示帮助。 + + * `-v`: + 显示 ZeroTier One 版本。 + + * `-U`: + 跳过权限检查并允许非特权用户运行。这通常在使用包含网络控制器选项构建 **zerotier-one** 时使用。在这种情况下,ZeroTier 服务可能仅充当网络控制器,可能永远不会实际加入网络,在这种情况下,它不需要提升的系统权限。 + + * `-p`: + 指定不同的主端口。如果未给出,则默认为 9993。如果给定零,则每次选择随机端口。 + + * `-d`: + 作为守护进程分叉并运行。 + + * `-i`: + 调用 **zerotier-idtool** 个性,在这种情况下,二进制文件的行为类似于 zerotier-idtool(1)。如果二进制文件(或指向它的符号链接)的名称是 zerotier-idtool,则会自动发生。 + + * `-q`: + 调用 **zerotier-cli** 个性,在这种情况下,二进制文件的行为类似于 zerotier-cli(1)。如果二进制文件(或指向它的符号链接)的名称是 zerotier-cli,则会自动发生。 + +## 示例 + +使用 OS 默认工作目录和默认端口作为守护进程运行: + + $ sudo zerotier-one -d + +使用不同的工作目录和端口作为守护进程运行: + + $ sudo zerotier-one -d -p12345 /tmp/zerotier-working-directory-test + +## 文件 + +这些文件位于服务的工作目录中。 + + * `identity.public`: + 您的 ZeroTier 身份的公共部分,即您的 10 位十六进制地址和相关的公钥。 + + * `identity.secret`: + 您的完整 ZeroTier 身份,包括其私钥。此文件标识网络上的系统,这意味着您可以通过复制此文件来移动 ZeroTier 地址,如果您想保存系统的静态 ZeroTier 地址,应该备份此文件。此文件必须受到保护,因为窃取其私钥将允许任何人冒充您的设备在任何网络上并解密流量。对于网络控制器,此文件特别敏感,因为它构成了控制器网络的证书颁发机构的私钥。 + + * `authtoken.secret`: + 用于向服务的本地 JSON API 验证请求的机密令牌。如果它不存在,则在服务启动时从安全随机源生成。要使用,请在发送到 127.0.0.1:<主端口> 的 HTTP 请求中将"X-ZT1-Auth"标头发送。 + + * `devicemap`: + 记住 zt# 接口编号到 ZeroTier 网络的映射,以便在重新启动时保持映射。在某些支持可以编码网络 ID 的较长接口名称的系统上(如 FreeBSD),此文件可能不存在。 + + * `zerotier-one.pid`: + ZeroTier 的 PID。此文件在正常关闭时删除。 + + * `zerotier-one.port`: + ZeroTier 的主端口,也是其 JSON API 在 127.0.0.1:<此端口> 上的位置。此文件在启动时创建,并由 zerotier-cli(1) 读取以确定它应该在哪里找到控制 API。 + + * `controller.db`: + 如果 ZeroTier One 服务内置了网络控制器,则此文件包含控制器的 SQLite3 数据库。 + + * `controller.db.backup`: + 如果 ZeroTier One 服务内置了网络控制器,则它会定期在此文件中备份其 controller.db 数据库(目前每 5 分钟一次,如果有更改)。由于此文件不是当前正在使用的 SQLite3 数据库,因此在不损坏的情况下备份更安全。在新备份中,文件被轮换而不是就地重写。 + + * `iddb.d/` (目录): + 缓存 ZeroTier 在过去 60 天内与之通信的每个对等方的公共身份。此目录及其内容可以删除,但这可能导致连接启动较慢,因为需要我们出去重新获取与我们通信的对等方的完整身份。 + + * `networks.d` (目录): + 这会缓存您所属网络的网络配置和证书信息。ZeroTier 在启动时扫描此目录以查找 <网络 ID>.conf 文件以回忆其网络,因此在此目录中"touch"一个空的 <网络 ID>.conf 文件是预配置 ZeroTier 在启动时加入特定网络而不使用 API 的方法。如果配置文件为空,ZeroTier 将从网络的控制器获取它。 + +## 版权 + +(c)2011-2016 ZeroTier, Inc. -- https://www.zerotier.com/ -- https://github.com/zerotier + +## 另请参见 + +zerotier-cli(1), zerotier-idtool(1) \ No newline at end of file