Skip to content
圆子BLOG
Menu
  • 首页
  • 文章
  • 关于我
Menu

Google Gemini还是有两下子

Posted on 2025年8月5日2026年1月8日 by sisuer

“深度”使用了AI几天,让我这种代码小白也有折腾的勇气了。

这几天完成的项目之一:NPS内网穿透

解决痛点:移动宽度不提供公网IP,远程访问不顺畅;

方案:利用一台HK的服务器做中转Sever,打通内外网设备访问

原理:外网设备↔️ HK VPS(NPS)↔️ 移动宽带内网设备(NPC)

AI总结的流程和坑点,权当记录了:

The following is generated by Gemini:

关于NPS (nat-proxy-server)

NPS是一款轻量级、高性能且功能强大的内网穿透代理服务器。它能帮助您轻松地将部署在内网(例如家庭或办公室网络,没有公网IP)的服务(如网站、NAS、远程桌面、数据库等)安全地暴露到公网上,让您可以从任何地方进行访问。整个系统由部署在公网服务器上的服务端(NPS)和部署在内网设备上的客户端(NPC)组成。


NPS 和 NPC 配置问题总结 (v2.0 – 含 OpenWrt)

第一部分:NPS 服务端(VPS 服务器)配置

下载并解压 NPS

  • 访问 NPS 的官方 GitHub Releases 页面:https://github.com/ehang-io/nps/releases
  • 根据您 VPS 的 CPU 架构下载对应的 server 版本(通常是 linux_amd64_server.tar.gz)。
  1. 安装 NPS
    • 解压后,执行安装命令:sudo ./nps install。
  2. 修改核心配置文件
    • 编辑文件:/etc/nps/conf/nps.conf。
    • 必须修改:
      • web_password: 设置一个强密码。
    • 必须确认/修改(关键):
      • #http_proxy_port=80
      • #https_proxy_port=443
      • 确保这两行被注释掉(行首有 #),避免端口冲突。
    • 必须记住:
      • web_port: Web 管理后台端口(例如 8080)。
      • bridge_port: 客户端通信端口(例如 8024)。
  3. 配置防火墙
    • 在云服务商的安全组和服务器系统防火墙 (UFW) 这两个地方,放行 web_port 和 bridge_port 以及所有您自定义的隧道端口(均为 TCP)。
  4. 启动并设置开机自启(最稳定方式)
    • 创建 systemd 服务文件 sudo vim /etc/systemd/system/nps.service,并填入以下内容:Ini, TOML[Unit] Description=nps a lightweight, high-performance, powerful intranet penetration proxy server After=network.target [Service] Type=simple User=root ExecStart=/usr/bin/nps KillMode=process Restart=on-failure RestartSec=5s [Install] WantedBy=multi-user.target
    • 使用 systemctl 命令管理服务 (daemon-reload, start, status, enable)。

第二部分:NPC 客户端配置

选项 A: 在 OpenWrt 路由器上配置

方法一:图形界面 (LuCI) 方式 (推荐,最简单)

  1. 安装插件:在 OpenWrt 的“系统”->“软件包”中,搜索并安装 luci-app-nps。
  2. 进入配置页面:刷新页面后,在“服务”菜单下找到“NPS 内网穿透客户端”。
  3. 填写基本设置:
    • 勾选 启用。
    • 服务器地址:填写您 VPS 的公网 IP 或域名。
    • 服务器端口:填写您在 nps.conf 中设置的 bridge_port(例如 8024)。
    • 连接密钥(vkey):粘贴您在 NPS 网页后台为 OpenWrt 客户端生成的密钥。
  4. 保存并应用。
  5. 验证:刷新 NPS 网页后台,查看客户端是否变为“在线”状态。注意:NPS 的所有隧道规则都在服务端的网页后台配置,OpenWrt 的这个界面只负责连接,不需要也无法配置隧道。

方法二:命令行方式 (适合没有图形界面的情况)

  1. SSH 登录到 OpenWrt 路由器。
  2. 确定架构:运行 uname -m 来查看 CPU 架构(例如 mipsle, aarch64 等)。
  3. 下载并解压:从 NPS 的 GitHub Releases 页面下载对应的 client 版本。
  4. 运行客户端:Bash# 后台运行,请替换为您自己的信息 nohup ./npc -server=<您的VPS地址:端口> -vkey=<您的连接密钥> &
  5. 设置开机自启:登录 OpenWrt 网页后台,进入“系统”->“启动项”,在“本地启动脚本”中,将上面第4步的 nohup 命令加到 exit 0 之前。
选项 B: 在威联通 (QNAP) NAS 上配置 – Docker 方式
  1. 配置 Docker 镜像加速器:在 Container Station -> 首选项 -> Registry 中添加国内镜像地址(如阿里云、腾讯云的个人专属地址)。
  2. 获取 vkey:在 NPS 网页后台为 NAS 创建一个新客户端,并复制其密钥。
  3. 通过命令行创建 Docker 容器(最可靠方式):
    • SSH 登录到 NAS。
    • 清理:在 Container Station 界面先删除旧的、失败的 npc 容器。
    • 运行命令(请根据您使用的映像名称修改,yisier1/npc 或 ffdf5/npc 等):Bashdocker run -d --restart=always --name=npc-client <您使用的映像名称> npc -server=<您的VPS地址:端口> -vkey=<您的连接密钥> -type=tcp
  4. 验证:使用 docker ps 和 docker logs npc-client 命令查看状态和日志,或直接在 NPS 网页后台查看客户端是否在线。

3. 注意事项 & 4. 避坑提示

  • 双重防火墙:切记,云服务商的安全组和服务器的 UFW 是两个独立的防火墙,都需要配置。安全组是最容易被遗忘的。
  • 端口冲突:NPS 默认的 80/443 端口极易与服务器上已有的 Nginx 等服务冲突,导致 NPS 启动失败。最佳实践是直接在 nps.conf 中注释掉这两行。
  • 客户端连接超时(Timeout):这几乎总是服务器端 bridge_port 的防火墙/安全组问题。
  • 客户端DNS失败 (lookup timeout):这是客户端设备(如 NAS)自身的 DNS 设置有问题,需要手动修改为公共 DNS。
  • 图形界面不可靠:当遇到 QNAP 的 Container Station 图形界面反复配置不生效时,应果断放弃,立即切换到 SSH 命令行使用 docker run 命令,这是最直接、最可靠的解决方案。

发表回复 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

保持乐观,坚持热爱

About This Blog

记录一些乱七八糟的想法和生活点滴,为回忆录积累素材......
2025 年 8 月
一 二 三 四 五 六 日
 123
45678910
11121314151617
18192021222324
25262728293031
    10 月 »
© 2026 圆子BLOG | Powered by Superbs Personal Blog theme