# 使用说明

> 使用 Web 管理和服务端脚本，完成更新与数据迁移

---

LLMS 索引： [llms.txt](/llms.txt)

---

## Web 管理

访问 Web 管理界面：`http://服务端 IP:Web 管理端口`（默认端口为 `8081`）。启用 `web_open_ssl` 后改用 HTTPS；配置了 `web_base_url` 时还要附加该路径。

> 仅当运行目录中不存在 `conf/nps.conf` 时，NPS 才会生成默认配置。管理员用户名固定为 `admin`，`web_password`、`auth_key` 和 `auth_crypt_key` 会随机生成并打印到终端。已有配置文件不会被改写。

修改 `nps.conf` 后请重启 NPS。Web 中保存的客户端和隧道设置通常会直接生效，二者的区别见 [Web 配置何时生效](/extend/feature/hot-reload.html)。

## 服务端管理脚本

```shell
./nps -server         # linux/darwin（操作系统服务时需 sudo）
nps.exe -server       # windows（操作系统服务时需管理员）
```

交互菜单提供安装、卸载、状态查询、启停、重启和更新操作。

![img.png](/image/new/server.png)

## 工作目录与配置文件位置

配置位置取决于启动方式：

| 启动方式                         | 默认运行目录                                                                 |
| -------------------------------- | ---------------------------------------------------------------------------- |
| 直接执行 `nps`                   | 可执行文件所在目录                                                           |
| 通过 `nps -server` 菜单安装服务  | 可执行文件所在目录；服务会带上对应的 `-conf_path`                             |
| 执行传统的 `nps install`         | Linux/macOS 通常为 `/etc/nps`，Windows 通常为 `C:\Program Files\nps`         |
| 指定 `-conf_path=/path/to/nps`   | `/path/to/nps`                                                               |

运行目录结构如下：

```text
nps_dir/
├── conf/
│   ├── nps.conf     # NPS 主配置文件
│   ├── clients.json # 客户端列表
│   ├── tasks.json   # 普通隧道列表
│   ├── hosts.json   # HTTP(S) 隧道列表
│   └── global.json  # Web 全局设置
└── nps              # Windows 下为 nps.exe
```

启动日志中的 `the config path is:` 会显示当前实际运行目录。排查“修改配置不生效”时，应先确认编辑的是该目录下的文件。

## 更新

```shell
./nps -server   # 选择 “更新” 菜单项
```

菜单更新只替换当前目录中的 `nps` 二进制文件，不改写 `conf`。更新完成后需要重新启动服务。

> 如果无法成功更新，可直接下载 releases 压缩包覆盖原有的 `nps` 二进制文件。

## 数据迁移

先停止旧服务，再完整复制实际运行目录中的 `conf` 目录。目标端直接运行二进制时，可把 `conf` 放在 `nps`/`nps.exe` 同级目录；安装为服务或使用自定义目录时，应放到目标实例的 `-conf_path` 下。Web 静态资源已经嵌入二进制，不需要迁移单独的 `web` 目录。

迁移后先核对 `nps.conf` 中的监听地址、端口、证书路径和凭据，再启动目标服务；不要同时运行两个使用同一组客户端验证密钥的实例。

---

反链：

- [桥接证书与身份验证](/extend/feature/bridge-tls-certificates.html)
