diff --git a/docs/about.md b/docs/about.md index 19567ab7..c54b93d6 100644 --- a/docs/about.md +++ b/docs/about.md @@ -1,7 +1,7 @@ --- layout: page title: About -nav_order: 7 +nav_order: 8 permalink: /about/ --- diff --git a/docs/build.md b/docs/build.md index ba7950e1..e555ccc2 100644 --- a/docs/build.md +++ b/docs/build.md @@ -1,7 +1,7 @@ --- layout: page title: How to Build -nav_order: 4 +nav_order: 5 permalink: /build/ --- diff --git a/docs/code.md b/docs/code.md index 4b6b8c9d..b918a96b 100644 --- a/docs/code.md +++ b/docs/code.md @@ -1,7 +1,7 @@ --- layout: page title: Understand the Code -nav_order: 5 +nav_order: 6 permalink: /code/ --- diff --git a/docs/comparison.md b/docs/comparison.md new file mode 100644 index 00000000..9972bc97 --- /dev/null +++ b/docs/comparison.md @@ -0,0 +1,10 @@ +--- +layout: page +title: Comparison +nav_order: 3 +permalink: /comparison/ +--- + +# Comparison between NHP and SPA + + diff --git a/docs/deploy.md b/docs/deploy.md index cb0ac806..43a4f615 100644 --- a/docs/deploy.md +++ b/docs/deploy.md @@ -1,7 +1,7 @@ --- layout: page title: How to Deploy -nav_order: 3 +nav_order: 4 permalink: /deploy/ --- diff --git a/docs/server_plugin.md b/docs/server_plugin.md index 83355009..876cd807 100644 --- a/docs/server_plugin.md +++ b/docs/server_plugin.md @@ -1,7 +1,7 @@ --- layout: page title: Server Plugins -nav_order: 6 +nav_order: 7 permalink: /server_plugin/ --- diff --git a/docs/zh-cn/about.zh-cn.md b/docs/zh-cn/about.zh-cn.md index 556e36d5..e3fcc6b9 100644 --- a/docs/zh-cn/about.zh-cn.md +++ b/docs/zh-cn/about.zh-cn.md @@ -2,9 +2,10 @@ layout: page title: 关于我们 parent: 中文版 -nav_order: 7 +nav_order: 8 permalink: /zh-cn/about/ --- # 关于OpenNHP开源项目 + diff --git a/docs/zh-cn/build.zh-cn.md b/docs/zh-cn/build.zh-cn.md index 371c78bc..dbde56fb 100644 --- a/docs/zh-cn/build.zh-cn.md +++ b/docs/zh-cn/build.zh-cn.md @@ -2,16 +2,18 @@ layout: page title: 编译源代码 parent: 中文版 -nav_order: 4 +nav_order: 5 permalink: /zh-cn/build/ --- # 编译OpenNHP +## 1. WSL环境准备 + **提示:** Windows 10/11下可以通过`WSL`子系统来运行Linux,详细请见WSL官方文档: - **【开启WSL功能】** 在Win10上,需要首先开启WSL才能使用WSL安装Linux,设置界面请见下图。 - ![Win10上WSL设置](./docs/images/win10wsl.png) + ![Win10上WSL设置](../images/win10wsl.png) - **【WSL上安装Linux】** 推荐在WSL上安装Ubuntu Linux,通过PowerShell运行以下命令安装: ```bat @@ -32,9 +34,9 @@ permalink: /zh-cn/build/ | WSL中Linux主机 | `hostname -I \| awk '{print $1}'` | | WSL宿主Windows主机 | `ip route show \| grep -i default \| awk '{ print $3}'` | -## 系统需求 +## 2. 系统需求 -- 3.1.1 `Go语言`环境:**Go 1.18** 或以上。安装包下载地址: +- 2.1 `Go语言`环境:**Go 1.18** 或以上。安装包下载地址: - **Windows与macOS**环境下,通过下载的安装程序来安装Go。 - **Linux**环境下可以直接通过管理工具安装: :`sudo apt install golang ` - 安装成功后,运行命令`go version` 来查看Go版本号。 @@ -53,13 +55,13 @@ permalink: /zh-cn/build/ ``` - 安装成功后,运行命令`go version` 来查看Go版本号。 -- `GCC`环境: +- 2.2 `GCC`环境: - **Linux与macOS**:**GCC 8.0**或以上。 - 查看GCC版本的命令:`gcc -v` - 安装GCC: `sudo apt install build-essential` - **Windows**: 1. 第一步:**安装mingw64**。mingw64可以通过msys2的包管理工具进行下载。安装msys2系统要求、下载与安装教程见:。 - ![install_msys2](./docs/images/install_msys2.png) + ![install_msys2](../images/install_msys2.png) 2. 第二步:**安装GCC**。在msys2的控制台输入命令: @@ -82,7 +84,8 @@ permalink: /zh-cn/build/ ```bat wsl --install --distribution Ubuntu-22.04 ``` -## 构建 + +## 3. 编译 1. 拉取代码仓库 @@ -102,3 +105,13 @@ permalink: /zh-cn/build/ - **Windows**:运行代码根目录下*BAT*文件 `build.bat` +## 4. 结果 + +编译出来的二进制文件都在代码目录下的`release`子目录下。 + +- **NHP-Server**的可执行文件和配置文件: `release\nhp-server` 子目录下 +- **NHP-AC**的可执行文件和配置文件: `release\nhp-ac` 子目录下 +- **NHP-Agent**的可执行文件和配置文件: `release\nhp-agent` 子目录下 +- 所有二进制文件打包成一个`tar`文件: `release\archive` 子目录下 + +--- \ No newline at end of file diff --git a/docs/zh-cn/code.zh-cn.md b/docs/zh-cn/code.zh-cn.md index 41b4b019..07e34540 100644 --- a/docs/zh-cn/code.zh-cn.md +++ b/docs/zh-cn/code.zh-cn.md @@ -2,7 +2,7 @@ layout: page title: 代码解读 parent: 中文版 -nav_order: 5 +nav_order: 6 permalink: /zh-cn/code/ --- diff --git a/docs/zh-cn/comparison.zh-cn.md b/docs/zh-cn/comparison.zh-cn.md new file mode 100644 index 00000000..b88f910a --- /dev/null +++ b/docs/zh-cn/comparison.zh-cn.md @@ -0,0 +1,10 @@ +--- +layout: page +title: 对比 +parent: 中文版 +nav_order: 3 +permalink: /zh-cn/comparison/ +--- + +# NHP与SPA的对比 + diff --git a/docs/zh-cn/deploy.zh-cn.md b/docs/zh-cn/deploy.zh-cn.md index 87037b82..b945d98d 100644 --- a/docs/zh-cn/deploy.zh-cn.md +++ b/docs/zh-cn/deploy.zh-cn.md @@ -2,13 +2,13 @@ layout: page title: 部署OpenNHP parent: 中文版 -nav_order: 3 +nav_order: 4 permalink: /zh-cn/deploy/ --- # 部署OpenNHP -## OpenNHP组件说明 +## 1. OpenNHP组件说明 根据上一章中的构建步骤,构建结果将输出到 *release* 目录下,该目录下的三个子目录分别包含OpenNHP的三大核心组件:*nhp-agent*、*nhp-server*和*nhp-ac*。 @@ -16,16 +16,16 @@ permalink: /zh-cn/deploy/ - **nhp-server服务器:** 处理并验证敲门请求的模块,通常是服务器程序。其功能包括验证敲门请求并与外部授权服务提供商进行交互实现鉴权操作,以及控制NHP门禁进行开门动作。 - **nhp-ac门禁:** 访问控制的执行模块,通常是服务器程序。该模块执行默认“拒绝一切”(deny all)的安全策略并确保被保护资源的网络隐身状态,通常位于被保护资源所在的同一主机上。负责向已授权的NHP代理开放访问权限或向已失去授权的NHP代理关闭访问权限,并根据NHP服务器返回参数执行针对NHP代理的放行动作。 -## OpenNHP开发测试环境搭建 +## 2. OpenNHP开发测试环境搭建 -### 开发测试环境:Windows/MacOS开发主机 + Linux虚拟机 +### 2.1 开发测试环境:Windows/MacOS开发主机 + Linux虚拟机 假设开发主机为Windows或者macOS,可通过安装虚拟机环境(如VirualBox)并创建两台Linux虚拟机来搭建简单的OpenNHP测试环境。在创建虚拟机时,请将网卡选项设置为`"Host-only Adapter"`(如下图),可使虚拟机的IP与开发主机IP在同一个网段。 - ![VirualBox Network](./docs/images/vbnetwork.png) + ![VirualBox Network](../images/vbnetwork.png) **提示:** 如需该虚拟机同时具备访问互联网能力,可以另外增加一个`"NAT"`网卡: - ![VirualBox Network](./docs/images/vbnetwork2.png) + ![VirualBox Network](../images/vbnetwork2.png) 至此,NHP三大组件的环境搭建如下: @@ -33,9 +33,9 @@ permalink: /zh-cn/deploy/ - 【nhp-ac】 运行在Linux虚拟主机上,IP地址为*192.168.56.102* - 【nhp-agent】 运行在Windows/macOS开发主机上,IP地址为*192.168.56.1* -### 开发测试环境的网络拓扑与基础信息 +### 2.2 开发测试环境的网络拓扑与基础信息 - ![OpenNHP-Dev-WSL](./docs/images/dev_wsl.png) + ![OpenNHP-Dev-WSL](../images/dev_wsl.png) | 服务器名称 | IP地址 | 基础配置信息 | |:--:|:--:|:--:| @@ -47,13 +47,13 @@ permalink: /zh-cn/deploy/ **【提示】** 从0.3.3版本起,各组件配置文件中的大多数字段都支持动态更新,详见各配置文件注释说明。 -### NHP-Server的配置与运行 +### 2.3 NHP-Server的配置与运行 -#### NHP-Server系统要求 +#### 2.3.1 NHP-Server系统要求 - Linux服务器或者Windows -#### NHP-Server运行 +#### 2.3.2 NHP-Server运行 将*release*目录下*nhp-server*目录复制到目标机器上。配置好*etc*目录下 `toml`文件(详细参数见下一节),运行`nhp-serverd run`。 @@ -71,19 +71,19 @@ permalink: /zh-cn/deploy/ *【可选项】* 禁止UDP端口暴露:运行`iptables_default.sh` -#### NHP-Server服务器的配置文件 +#### 2.3.3 NHP-Server服务器的配置文件 -- 基础配置:[config.toml](server/main/etc/config.toml) -- 门禁peer列表配置:[ac.toml](server/main/etc/ac.toml) -- 客户端peer列表配置:[agent.toml](server/main/etc/agent.toml) -- http服务配置:[http.toml](server/main/etc/http.toml) -- 服务器插件读取配置:[resource.toml](server/main/etc/resource.toml) -- 源地址关联列表:[srcip.toml](server/main/etc/srcip.toml) -- 服务器插件资源配置:[resource.toml](server/plugins/example/etc/resource.toml) +- 基础配置:[config.toml](https://github.com/OpenNHP/opennhp/tree/main/server/main/etc/config.toml) +- 门禁peer列表配置:[ac.toml](https://github.com/OpenNHP/opennhp/tree/main/server/main/etc/ac.toml) +- 客户端peer列表配置:[agent.toml](https://github.com/OpenNHP/opennhp/tree/main/server/main/etc/agent.toml) +- http服务配置:[http.toml](https://github.com/OpenNHP/opennhp/tree/main/server/main/etc/http.toml) +- 服务器插件读取配置:[resource.toml](https://github.com/OpenNHP/opennhp/tree/main/server/main/etc/resource.toml) +- 源地址关联列表:[srcip.toml](https://github.com/OpenNHP/opennhp/tree/main/server/main/etc/srcip.toml) +- 服务器插件资源配置:[resource.toml](https://github.com/OpenNHP/opennhp/tree/main/server/main/etc/resource.toml) -### NHP-AC的配置与运行 +### 2.4 NHP-AC的配置与运行 -#### NHP-AC系统要求 +#### 2.4.1 NHP-AC系统要求 - Linux服务器,内核需支持**ipset**。可通过以下命令查看ipset支持情况 @@ -91,7 +91,7 @@ permalink: /zh-cn/deploy/ lsmod | grep ip_set ``` -#### NHP-AC运行 +#### 2.4.2 NHP-AC运行 将*release*目录下*nhp-ac*目录复制到目标机器上。配置好*etc*目录下 `toml`文件(详细参数见下一章),运行`iptables_default.sh`,添加防火墙规则,此时外部连接将无法建立。再运行`nhp-acd run`。 @@ -111,18 +111,18 @@ permalink: /zh-cn/deploy/ iptables -F ``` -#### NHP-AC门禁配置文件 +#### 2.4.3 NHP-AC门禁配置文件 -- 基础配置:[config.toml](ac/main/etc/config.toml) -- 服务器peer列表:[server.toml](ac/main/etc/server.toml) +- 基础配置:[config.toml](https://github.com/OpenNHP/opennhp/tree/main/ac/main/etc/config.toml) +- 服务器peer列表:[server.toml](https://github.com/OpenNHP/opennhp/tree/main/ac/main/etc/server.toml) -### NHP-Agent的配置与运行 +### 2.5 NHP-Agent的配置与运行 -#### NHP-Agent系统要求 +#### 2.5.1 NHP-Agent系统要求 - 所有平台:Windows、Linux、macOS、Android、iOS -#### NHP-Agent运行 +#### 2.5.2 NHP-Agent运行 将*release*目录下*nhp-agent*目录复制到目标机器上。配置好*etc*目录下 `toml`文件(详细参数见下一章),运行`nhp-agentd run`。 @@ -138,13 +138,13 @@ permalink: /zh-cn/deploy/ nhp-agentd.exe run ``` -#### NHP-Agent的配置文件 +#### 2.5.3 NHP-Agent的配置文件 -- 基础配置:[config.toml](agent/main/etc/config.toml) -- 敲门目标配置:[resource.toml](agent/main/etc/resource.toml) -- 服务器peer列表:[server.toml](agent/main/etc/server.toml) +- 基础配置:[config.toml](https://github.com/OpenNHP/opennhp/tree/main/agent/main/etc/config.toml) +- 敲门目标配置:[resource.toml](https://github.com/OpenNHP/opennhp/tree/main/agent/main/etc/resource.toml) +- 服务器peer列表:[server.toml](https://github.com/OpenNHP/opennhp/tree/main/agent/main/etc/server.toml) -### 测试NHP网络隐身效果 +### 2.6 测试NHP网络隐身效果 验证NHP网络隐身效果,可以通过nhp-agent主机 *(IP:192.168.56.1)*进行`ping` nhp-ac主机 *(IP:192.168.56.102)*来测试。 @@ -153,9 +153,9 @@ permalink: /zh-cn/deploy/ | nhp-agent未运行 |`ping 192.168.56.102` | 测试AC对Agent隐身 | ping 失败 | | nhp-agent已运行 |`ping 192.168.56.102` | 测试AC对Agent开放 | ping 成功 | -## 日志说明 +## 3. 日志说明 -### 日志文件位置 +### 3.1 日志文件位置 日志文件生成于每个组件各自的*logs*目录下,以日期作为文件名,可通过`tail`命令查看。 @@ -177,7 +177,7 @@ permalink: /zh-cn/deploy/ tail -f release/nhp-agent/logs/agent-2024-03-10.log ``` -### 日志文件格式 +### 3.2 日志文件格式 日志的格式如下: @@ -193,7 +193,7 @@ permalink: /zh-cn/deploy/ - Info - Debug -## 附录A:常见问题FAQ +## 4. 附录A:常见问题FAQ - **Q:** Windows平台上编译错误:`running gcc failed: exec: "gcc": executable file not found in %PATH%` **A:** 原因是没有安装`gcc`编译工具。请按照上文中3.1.3中步骤安装GCC。 @@ -206,4 +206,5 @@ permalink: /zh-cn/deploy/ 【方法】在nhp-server/plugins/下对应的插件模块中,找到etc/resource.toml文件,里面能配置资源的端口、时长、id等信息;如果用的是nhp-agent敲门,则默认是example插件。如果是微信扫码敲门,用的是wxweb插件。 - 如何检查配置是否生效? - 【方法】server和ac的日志里有记录。也可以在ac的系统里输入ipset -L命令查看授权的源ip目的端口和时长。 \ No newline at end of file + 【方法】server和ac的日志里有记录。也可以在ac的系统里输入ipset -L命令查看授权的源ip目的端口和时长。 + diff --git a/docs/zh-cn/server_plugin.zh-cn.md b/docs/zh-cn/server_plugin.zh-cn.md index 1d51cb6e..ba02ef08 100644 --- a/docs/zh-cn/server_plugin.zh-cn.md +++ b/docs/zh-cn/server_plugin.zh-cn.md @@ -2,7 +2,7 @@ layout: page title: 服务器插件开发 parent: 中文版 -nav_order: 6 +nav_order: 7 permalink: /zh-cn/server_plugin/ ---