轻量级内网穿透代理服务器nps试用

什么是 nps

一款轻量级、高性能、功能强大的内网穿透代理服务器,几乎支持所有协议,支持内网http代理、内网socks5代理、p2p等,简洁但功能强大的WEB管理界面,支持服务端、客户端同时控制,扩展功能强大,全平台兼容,一键注册为服务。【官网中文说明:https://ehang-io.github.io/nps/#/?id=nps

准备工作

1、一台具有公网IP的服务器,系统可以是Windows、Linux。
2、根据自己服务器和客户端的系统,下载对应的源码、安装包或者镜像文件;
3、准备一个有效的域名,国内主机可能需要备案。

服务端

安装

官方提供了三种安装方式,包括用安装包安装、源码安装和docker安装。我们用最省事的安装包,下载地址:https://github.com/cnlh/nps/releases

因为是 VPS 是 CentOS 7,所以下载了 linux_amd64_server.tar.gz,目前最新的版本是v0.26.8

title

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 下载安装包
https://github.com/ehang-io/nps/releases/download/v0.26.8/linux_amd64_server.tar.gz

# 新建目录
mkdir /usr/local/nps

# 解压缩
tar -zxvf linux_amd64_server.tar.gz -C /usr/local/nps/

# 进入 nps 目录
cd /usr/local/nps/

# 注册为服务
./npc install

title

配置

上图显示配置文件在 /etc/nps

1
vi /etc/nps/conf/nps.conf

关于服务端配置文件,在官网文档有详细的注释,这里只针对几个要改的做了简单说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 因为云主机还有 web 服务,所以 80 和 443 端口已经被占用了,
# 所以域名代理监听端口不能使用默认的 80 和 443,而是改成了 8080 和 8443 端口。

#HTTP(S) proxy port, no startup if empty
http_proxy_ip=0.0.0.0
http_proxy_port=8080
https_proxy_port=8443
https_just_proxy=true
#default https certificate setting
https_default_cert_file=conf/server.pem
https_default_key_file=conf/server.key

# 这段是关于 web 管理页面的设置,同样不能用已占用的端口,所以改成了 8081。

#web
web_host=laosu.ml
web_username=admin
web_password=1111111
web_port = 8081
web_ip=0.0.0.0
web_base_url=
web_open_ssl=false
web_cert_file=conf/server.pem
web_key_file=conf/server.key
# if web under proxy use sub path. like http://host/nps need this.
#web_base_url=/nps

其他的根据需要修改,比如 public_vkey 等。

启动

1
2
# 启动 nps
nps start

这个时候在浏览器中输入 http://laosu.ml:8081,就可以看到 web 管理界面了

title

第一次建议不带 start 参数,可以进到 console 模式,实时显示运行状态。

title

web 设置

新增客户端

title

先用 nas 试试

title

添加成功

title

因为还没有安装客户端,所以添加完成后,连接显示还是 离线 的。

客户端

安装

这次我们下载群晖的版本

title

打开 套件中心,选择 手动安装

title

选择刚才下载的 npc_syno.spk

title

安装完成后,运行 nps 客户端

title

返回 web 管理界面。可以看到客户端已经在线了

title

配置

添加隧道,把 nas 的后台管理界面映射到公网

title

填写 nas 后台管理页面的端口 5000

title

添加成功

title

在浏览器中输入 http://laosu.ml:5000 就可以看到 nas的后台了,效果和我们在局域网中访问
192.168.0.199:5000 是一样的。

title

卸载 nps

1
2
3
4
5
6
7
8
9
10
# 停止 nps 服务
nps stop

# 搜索 nps 目录
whereis nps

# 删除相关目录
rm -rf /usr/bin/nps
rm -rf /etc/nps
rm -rf /usr/local/nps

title

结论

具备可视化操作界面,而且增加隧道只要在服务器端操作即可,这些都比 frp 强,但是感觉目前还没有 frp 成熟,文档也不多,遇到问题有点抓瞎。等有空了再慢慢研究其他功能。

参考文档

nps官网
地址:https://ehang-io.github.io/nps/#/

IT男的VPS系列教程 篇七:超强内网穿透nps 解决所有无公网IP问题(上)
地址:https://post.smzdm.com/p/a07md2nr/