<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>扩展 on NPS Plus</title><link>/extend/</link><description>Recent content in 扩展 on NPS Plus</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Fri, 02 Oct 2026 14:15:40 +0800</lastBuildDate><atom:link href="/extend/index.xml" rel="self" type="application/rss+xml"/><item><title>使用示例</title><link>/extend/example.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/extend/example.html</guid><description>&lt;h2 id="统一准备工作"&gt;统一准备工作&#10;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;开启 NPS 服务端，假设服务端公网 IP 为 &lt;code&gt;1.1.1.1&lt;/code&gt;，配置文件中的 &lt;code&gt;bridge_port&lt;/code&gt; 为 &lt;code&gt;8024&lt;/code&gt;，&lt;code&gt;web_port&lt;/code&gt; 为 &lt;code&gt;8080&lt;/code&gt;。&lt;/li&gt;&#10;&lt;li&gt;访问 &lt;code&gt;1.1.1.1:8080&lt;/code&gt;。&lt;/li&gt;&#10;&lt;li&gt;在客户端管理中新增一个客户端，记录客户端验证密钥。&lt;/li&gt;&#10;&lt;li&gt;在内网设备上运行 NPC（Windows 使用 CMD 运行 &lt;code&gt;.exe&lt;/code&gt; 文件）。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="td-code td-code--untitled" id="td-code-bb0b8688-fence-0" data-td-code data-td-code-auto-id&#10; data-td-language="shell" data-td-line-count="1"&gt;&#10; &lt;div class="td-code__viewport" id="td-code-bb0b8688-fence-0-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./npc -server&lt;span class="o"&gt;=&lt;/span&gt;1.1.1.1:8024 -vkey&lt;span class="o"&gt;=&lt;/span&gt;客户端验证密钥&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;&lt;strong&gt;注意：运行服务端后，请确保客户端设备能正常访问配置文件中的 &lt;code&gt;bridge_port&lt;/code&gt; 端口，可使用 Telnet、Netcat 等工具检查。&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Web API 鉴权</title><link>/extend/api.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/extend/api.html</guid><description>&lt;p&gt;在 &lt;code&gt;nps.conf&lt;/code&gt; 中配置 &lt;code&gt;auth_key&lt;/code&gt; 即可启用 API 鉴权（首次启动自动生成）。&lt;/p&gt;&#10;&lt;h2 id="鉴权方式"&gt;鉴权方式&#10;&lt;/h2&gt;&#10;&lt;p&gt;每个请求需附带两个参数：&lt;/p&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;参数&lt;/th&gt;&#10; &lt;th scope="col"&gt;说明&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;auth_key&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;&lt;code&gt;md5(配置文件中的 auth_key + 当前时间戳)&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;timestamp&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;当前 unix 时间戳（秒）&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;时间戳有效范围为 &lt;strong&gt;20 秒&lt;/strong&gt;，每次请求须重新生成。&lt;/p&gt;</description></item><item><title>Web API</title><link>/extend/webapi.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/extend/webapi.html</guid><description>&lt;blockquote&gt;&#10;&lt;p&gt;除 &lt;code&gt;AuthController&lt;/code&gt; 和 &lt;code&gt;LoginController&lt;/code&gt; 外，所有接口均需通过鉴权，详见 &lt;a href="/extend/api.html"&gt;API 鉴权说明&lt;/a&gt;&#10;。&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;h2 id="通用响应格式"&gt;通用响应格式&#10;&lt;/h2&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;响应类型&lt;/th&gt;&#10; &lt;th scope="col"&gt;格式&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;成功&lt;/td&gt;&#10; &lt;td&gt;&lt;code&gt;{&amp;quot;status&amp;quot;: 1, &amp;quot;msg&amp;quot;: &amp;quot;success&amp;quot;}&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;成功（含 ID）&lt;/td&gt;&#10; &lt;td&gt;&lt;code&gt;{&amp;quot;status&amp;quot;: 1, &amp;quot;msg&amp;quot;: &amp;quot;success&amp;quot;, &amp;quot;id&amp;quot;: 123}&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;失败&lt;/td&gt;&#10; &lt;td&gt;&lt;code&gt;{&amp;quot;status&amp;quot;: 0, &amp;quot;msg&amp;quot;: &amp;quot;error message&amp;quot;}&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;列表&lt;/td&gt;&#10; &lt;td&gt;&lt;code&gt;{&amp;quot;rows&amp;quot;: [...], &amp;quot;total&amp;quot;: 100}&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;单个查询接口（&lt;code&gt;GetClient&lt;/code&gt;、&lt;code&gt;GetOneTunnel&lt;/code&gt;、&lt;code&gt;GetHost&lt;/code&gt;）返回 &lt;code&gt;{&amp;quot;code&amp;quot;: 1, &amp;quot;data&amp;quot;: {...}}&lt;/code&gt; 或 &lt;code&gt;{&amp;quot;code&amp;quot;: 0}&lt;/code&gt;。&lt;/p&gt;&#10;&lt;/blockquote&gt;</description></item><item><title>术语表</title><link>/extend/glossary.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/extend/glossary.html</guid><description>&lt;p&gt;本页解释 NPS 管理界面和配置文档中的专有名词，以及容易混淆的字段。新增、编辑、保存等通用操作，以及版本、备注等含义明确的字段不再重复说明。&lt;/p&gt;&#10;&lt;h2 id="角色与对象"&gt;角色与对象&#10;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;NPS 服务端&lt;/strong&gt;：通常部署在有公网入口的设备上，负责接收 NPC 连接、监听隧道入口并转发流量。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;NPC 客户端&lt;/strong&gt;：运行在内网设备上的进程，主动连接 NPS，并从所在网络访问目标服务。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;客户端&lt;/strong&gt;：Web 管理中保存的一条逻辑记录，包含验证密钥、配额和所属隧道。NPC 使用对应密钥接入这条记录。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;访问端&lt;/strong&gt;：最终使用隧道的人或设备。私密代理和 P2P 模式下，访问端也要运行 NPC。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;隧道&lt;/strong&gt;：一条转发规则，描述入口、所属客户端、目标地址和转发方式。“隧道”本身不表示使用了 TLS 或端到端加密。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;客户端 ID&lt;/strong&gt;：NPS 为逻辑客户端分配的内部数字编号，用于关联隧道；连接 NPC 时使用的是客户端验证密钥。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;客户端状态&lt;/strong&gt;：NPC 是否已连接 NPS。在线表示控制连接可用，不代表每个目标服务都能访问。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;运行状态&lt;/strong&gt;：某条隧道是否启用并正在监听或等待连接。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;允许客户端通过配置文件连接&lt;/strong&gt;：允许该客户端通过 &lt;code&gt;npc.conf&lt;/code&gt; 提交并创建隧道配置。关闭后，Web 中创建的隧道仍可使用。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;管理员 / 用户&lt;/strong&gt;：管理员管理全局配置和所有客户端；普通用户只管理分配给自己的客户端及隧道。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="隧道类型"&gt;隧道类型&#10;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;TCP 隧道&lt;/strong&gt;：将 NPS 的一个 TCP 监听端口转发到 NPC 可访问的目标，适用于 SSH、远程桌面、数据库等。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;UDP 隧道&lt;/strong&gt;：将 NPS 收到的 UDP 数据转发到 NPC 可访问的目标。服务端防火墙需要放行对应 UDP 端口。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;HTTP(S) 隧道&lt;/strong&gt;：按域名和 URL 路径把请求反向代理到内网站点，多个站点可以共享 NPS 的 HTTP/HTTPS 端口。域名仍需自行解析到 NPS。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;HTTP 正向代理&lt;/strong&gt;：浏览器或应用显式配置代理后，通过 NPC 所在网络访问应用指定的 HTTP/HTTPS 资源。它与发布固定内网站点的 HTTP(S) 隧道方向不同。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;SOCKS5 代理&lt;/strong&gt;：支持 SOCKS5 的应用通过 NPC 所在网络连接应用指定的目标。只有配置了该代理的应用会经过 NPS。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;私密代理&lt;/strong&gt;：访问端运行 NPC，并用隧道访问密钥连接内网 TCP 服务。业务流量由 NPS 中转，但不必为每条隧道开放单独的公网端口。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;P2P 连接&lt;/strong&gt;：NPS 协调 NAT 穿透，尝试让访问端与提供服务的 NPC 直接传输业务流量。能否直连取决于双方网络和 NAT 类型。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;文件服务&lt;/strong&gt;：由 NPC 将本地路径中的文件通过 HTTP 提供出来，不提供文件同步或备份能力。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;透明代理&lt;/strong&gt;：P2P 访问端的一种本地接入方式，不是 Web 中单独创建的隧道类型。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;具体配置参阅&lt;a href="/extend/example.html"&gt;配置示例&lt;/a&gt;&#10;。&lt;/p&gt;</description></item></channel></rss>