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 变得更加方便和可靠。
二、安装配置教程
配置要求
- 一台拥有公网 IP 的服务器
- 开放端口例如:(8080,8024,80,443)等可以不是这些端口,nps可以配置任意端口,实现与其它服务共存
- 安装 nps 软件包(源码安装、linux、darwin、windows)几种系统安装方法
演示环境说明
演示环境的服务器端是Centos云服务器;客户端是本地的CentOS虚拟机。
安装服务端
- 下载NPS安装包
- 使用 ftp 等工具上传 linux_amd64_server.tar.gz 到服务器中您的工作目录并解压、安装:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fb2be69bb-c6ff-49e8-9d53-d40b8b8929d9%2FUntitled.png?table=block&id=70166c6c-4112-4f1f-82e1-d004b575859a&t=70166c6c-4112-4f1f-82e1-d004b575859a&width=1882&cache=v2)
- 启动nps服务
此时 直接执行命令
nps
即可在控制台启动nps并实时查看日志。- 修改nps配置 (可选)
vi /etc/nps/conf/nps.conf
(不是./conf/nps.conf
配置)
由于我的服务器已经安装了nginx,所以会出现端口占用无法启动,解决方法:修改 /etc/nps/conf/nps.conf 文件中的端口配置:
我将其中默认的80 和 443 改为了8010 8020 , 同时这个文件也可以修改面板后台的端口号和账号密码等
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fdddcf3b4-0fc7-47c5-acac-64ad4d1c1656%2FUntitled.png?table=block&id=dbf44331-df6b-49bc-be28-eb6ac1de17d4&t=dbf44331-df6b-49bc-be28-eb6ac1de17d4&width=1780&cache=v2)
- 修改后重启面板
nps stop && nps start
- 启动后访问面板 http://ip:8080/ 默认账号密码是admin/123
分配客户端唯一验证秘钥
登录面板后台,创建一个新的客户端秘钥
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F16bdd73c-2e4d-4ce1-9055-1f5f50e15e49%2FUntitled.png?table=block&id=da959b75-9c68-4deb-bba8-79f9cdf1fad0&t=da959b75-9c68-4deb-bba8-79f9cdf1fad0&width=3288&cache=v2)
安装客户端
- 使用 ftp 等工具上传 linux_amd64_client.tar.gz 到你的内网电脑指定目录
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fb378e6b4-333b-43af-87a4-ab85195ea01e%2FUntitled.png?table=block&id=4524d836-8325-4606-ba11-6b7222c5ad41&t=4524d836-8325-4606-ba11-6b7222c5ad41&width=1094&cache=v2)
- 解压安装
- 链接服务端
- 若要让服务后台运行,而非随着ssh关闭而停止,则执行以下指令(首位加了
nohup
..&
)
这里的ip是你的服务器地址,port则是nps服务端的brige_port 默认是8024,客户端唯一验证秘钥,在上一步服务端安装过程中生成的。
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fc14c8308-ce8a-43bb-b419-9474deeedf97%2FUntitled.png?table=block&id=cd3763f0-6606-4073-8b5a-17eabcd34266&t=cd3763f0-6606-4073-8b5a-17eabcd34266&width=1884&cache=v2)
配置转发规则
- 确保客户端已连接
此处可以看到一个客户端ID为2,连接状态为在线。
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F5469571d-5506-4b9f-baa1-3d2d7c3cf90d%2FUntitled.png?table=block&id=e3404788-2f1c-491a-bdee-dc7f2890814a&t=e3404788-2f1c-491a-bdee-dc7f2890814a&width=2786&cache=v2)
- 添加tcp转发
如下配置表示将服务端的 123 端口 转发到 局域网内部 192.168.x.x的22端口。其他的UDP、SOCKS、HTTP也是类似的配置不再赘述。
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fa27798c3-aa7e-4937-add2-78975d8c73ef%2FUntitled.png?table=block&id=03247d36-192d-465c-b2d0-2ad8cee321d4&t=03247d36-192d-465c-b2d0-2ad8cee321d4&width=3212&cache=v2)
测试连接
用SSH客户端 连接
[服务器IP]:[123端口]
即可实现访问 [内网服务器]:[22端口]
设置开机自启动
(1)npc自启动配置 建立启动脚本编写--start.sh
可以将start.sh与npc服务放一起
(2)配置npc.service文件
将npc.service放置到/lib/systemd/system中
(3)启动并测试
最后reboot测试,查看是否开机自启。
总结
NPS NPC , 的配置安装都很便捷,如果你有一台自己的VPC云服务器,可以尝试一下,将你的家庭本地电脑映射到外网服务器。
参考文章
- NPS 配置文档:https://ehang-io.github.io/nps/#/
- 作者:Tangly
- 链接:https://blog.tangly1024.com/article/nps-centos-nat-traversal
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。