开源实例之NPS
前言
本篇介绍用 NPS 搭建 ssh、web 内网穿透的方法。了解什么是内网穿透可以参考《开源实例之frp》一文中的介绍。
NPS介绍
NPS is a lightweight, high-performance, powerful intranet penetration proxy server, with a powerful web management terminal.
NPS是一款轻量级、高性能、功能强大的内网穿透代理服务器。支持tcp、udp、socks5、http等几乎所有流量转发,可用来访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析、内网socks5代理等等,并带有功能强大的web管理端。
NPS 比 frp 多了 web 管理后台,配置更加方便,不必每次修改都重启服务。
仓库地址:https://github.com/ehang-io/nps
文档地址:https://ehang-io.github.io/nps
NPS部署
NPS 是 Go 语言编写的独立程序,不需要其他依赖,分为服务端(公网服务器)和客户端(内网服务器)。
以下例子中,192.168.56.10 扮演公网 ip,192.168.56.11 扮演内网 ip。
软件下载
到 git 下载 release 包,以 linux 0.26.10 版为例:
服务端下载地址:
https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_server.tar.gz
客户端下载地址:
https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_client.tar.gz
服务端部署
在公网服务器解压 linux_amd64_server.tar.gz,进入目录执行安装:
sudo nps install
启动程序:
sudo nps start
启动后 web 后台默认监听在 8080 端口。如果有端口冲突,修改 conf/nps.conf 相关配置即可。
特别注意:需要配置公网服务器安全组,开放相关端口。
客户端管理
NPS 使用 web 后台进行管理,登录http://192.168.56.10:8080(初始用户名/密码是 admin/123)。菜单进入“客户端”新增一个客户端配置:
创建后可以看到客户端登录命令:
启动客户端
在内网服务器解压 linux_amd64_client.tar.gz,进入目录执行启动命令(后台所示):
./npc -server=192.168.56.10:8024 -vkey=2w95yh5kdjkuqoxm -type=tcp
建立隧道
使用 web 后台管理隧道。
SSH隧道
菜单进入“TCP 隧道”新增一条 SSH隧道:
此时就可以通过公网(192.168.56.10)端口 SSH 到内网(192.168.56.11):
ssh -p 8088 test@192.168.56.10
WEB隧道
菜单进入“域名解析”新增一条解析:
此时就可以通过外网域名访问部署在内网服务器的项目。