category
tags
type
status
slug
date
summary
icon
password

一、NPS 概述

NPS 是一个开源、高效、安全的内网穿透代理软件,可以帮助开发者快速、方便地将内网服务暴露到公网上,使得外网用户可以访问内网服务,提高开发效率和运维效率。
NPS 的全称是 "New Proxy Server",是一个基于 Go 语言编写的轻量级内网穿透代理软件。它支持 tcp、udp 流量转发,内网 http 代理、内网 socks5 代理,同时支持 snappy 压缩、站点保护、加密传输、多路复用、header 修改等。支持 web 图形化管理,集成多用户模式。管理系统比 FRP 方便很多,更容易上手。
NPS 主要有三个组件:客户端、服务端和 Web 界面。其中客户端和服务端是必须的,Web 界面是可选的。NPS 的 Web 界面提供了方便的管理和监控功能,可以查看连接状态、流量统计、日志记录等等,使得使用和管理 NPS 变得更加方便和可靠。
 

二、安装配置教程

配置要求

  1. 一台拥有公网 IP 的服务器
  1. 开放端口例如:(8080,8024,80,443)等可以不是这些端口,nps可以配置任意端口,实现与其它服务共存
  1. 安装 nps 软件包(源码安装、linux、darwin、windows)几种系统安装方法

演示环境说明

演示环境的服务器端是Centos云服务器;客户端是本地的CentOS虚拟机。
 

安装服务端

  • 使用 ftp 等工具上传 linux_amd64_server.tar.gz 到服务器中您的工作目录并解压、安装:
    • notion image
  • 启动nps服务
    • 此时 直接执行命令 nps 即可在控制台启动nps并实时查看日志。
  • 修改nps配置 (可选)
    • 由于我的服务器已经安装了nginx,所以会出现端口占用无法启动,解决方法:修改 /etc/nps/conf/nps.conf 文件中的端口配置:
    • vi /etc/nps/conf/nps.conf (不是 ./conf/nps.conf 配置)
      • 我将其中默认的80 和 443 改为了8010 8020 , 同时这个文件也可以修改面板后台的端口号和账号密码等
        notion image
  • 修改后重启面板
    • nps stop && nps start
    • 启动后访问面板 http://ip:8080/ 默认账号密码是admin/123

分配客户端唯一验证秘钥

登录面板后台,创建一个新的客户端秘钥
notion image

安装客户端

  • 使用 ftp 等工具上传 linux_amd64_client.tar.gz 到你的内网电脑指定目录
    • notion image
  • 解压安装
    • 链接服务端
      • 这里的ip是你的服务器地址,port则是nps服务端的brige_port 默认是8024,客户端唯一验证秘钥,在上一步服务端安装过程中生成的。
        notion image
      • 若要让服务后台运行,而非随着ssh关闭而停止,则执行以下指令(首位加了nohup .. &

      配置转发规则

      • 确保客户端已连接
        • 此处可以看到一个客户端ID为2,连接状态为在线。
          notion image
      • 添加tcp转发
        • 如下配置表示将服务端的 123 端口 转发到 局域网内部 192.168.x.x的22端口。其他的UDP、SOCKS、HTTP也是类似的配置不再赘述。
          notion image

      测试连接

      用SSH客户端 连接 [服务器IP]:[123端口] 即可实现访问 [内网服务器]:[22端口]
       

      设置开机自启动

      (1)npc自启动配置 建立启动脚本编写--start.sh
      可以将start.sh与npc服务放一起
      (2)配置npc.service文件
      将npc.service放置到/lib/systemd/system中 (3)启动并测试
      最后reboot测试,查看是否开机自启。

      总结

      NPS NPC , 的配置安装都很便捷,如果你有一台自己的VPC云服务器,可以尝试一下,将你的家庭本地电脑映射到外网服务器。
       

      参考文章

      1. NPS 配置文档:https://ehang-io.github.io/nps/#/
      1. NPS 安装包:https://github.com/ehang-io/nps/releases
      1. NPS 源码:https://github.com/ehang-io/nps
      NPS 内网穿透工具搭建教程 - 链滴
      NPS 是一款轻量级、功能强大的内网穿透代理服务器。支持 tcp、udp 流量转发,支持内网 http 代理、内网 socks5 代理,同时支持 snappy 压缩、站点保护、加密传输、多路复用、header 修改等。支持 web 图形化管理,集成多用户模式。管理系统比 FRP 方便很多,更容易上手。 详细对比请参考上一篇文章 《 内网穿透工具比较 》 一台拥有公网 IP 的服务器 开放端口例如:(8080,8024,80,443)等 安装 nps 软件包(源码安装、linux、darwin、windows)几种系统安装方法 NPS 配置文档:https://ehang-io.github.io/nps/#/ NPS 安装包:https://github.com/ehang-io/nps/releases NPS 源码:https://github.com/ehang-io/nps 演示环境以 Linux 为例,如大家需要 window 或 Mac 系统演示安装,请留言,后期更新到本文档。 服务端环境,阿里云服务 CentOS7.3 客户端环境,16 年退休老电脑 Deepin20 安装包下载,Github 下载有时较慢,可通过下面百度云链接下载。 下载链接: https://pan.baidu.com/s/1mPQJv3XTEpaZA-xTvhSsGg 关注公众号【码农点九】回复 nps 获取下载密码 使用 ftp 等工具上传 linux_amd64_server.tar.gz 到服务器指定目录 输入服务器的 IP 地址加 8080 端口号,即可进入 NPS 的后台界面,默认用户名:admin 默认密码:123 使用 ftp 等工具上传 linux_amd64_client.tar.gz 到服务器指定目录 nohup ./npc -server=(ip:port) -vkey=(见演示中服务端后管界面中显示的密钥) 🎉 这里就是启动客户端需要的 vkey 值 🎉 1.进入域名后台解析一个域名到你的服务端的 IP 上 2.进入 NPS 后台绑定域名以及设置内网 IP 及端口号
      NPS 内网穿透工具搭建教程 - 链滴