引言

说起内网穿透,大家首先想到的肯定是frp了。但是当我找到nps这个项目,看了几眼教程动手操作了一下,就轻轻松松搭建成功。而且最爽的一点就是,这个项目它安装好之后自己会写自启动和进程守护配置,根本不需要我们管。

注意:本项目客户端(npc)和服务端(nps)都支持几乎所有的系统,为了节省时间,本教程客户端和服务端皆以Centos 7.9 系统(amd64位镜像)部署作为参考。

要求:有一台带有公网ip的云服务器,什么系统的都可以,用作服务端

本项目开源地址:https://github.com/ehang-io/nps

本项目官方文档:https://ehang-io.github.io/nps

本项目web管理界面截图:

1679491047451.png

教程

服务端部署:

注意:搭建之前建议在服务器防火墙以及云服务厂商的安全组放通1-65535所有端口!

1、下载服务端并解压

yum install tar wget vim -y
mkdir /opt/nps
cd /opt/nps
wget https://ghproxy.com/https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_server.tar.gz
tar -zxvf linux*
chmod 777 ./*

2、修改配置文件,使用sftp或者服务器管理面板打开 /opt/nps/conf/nps.conf 进行编辑1679491327779.png

3、主要是修改以下几个变量

1679491840081.png 把这两个删掉:因为考虑到有些小伙伴没备案、有些小伙伴80443端口已经在使用了,以及避免一些部署过程中不必要的错误,虽然nps带有http和https代理功能,但是本教程旨在部署成功以实现tcp代理和udp代理(将http代理删掉)。 

1679491963455.png bridge_port 修改为你想要的端口,该端口为连接端口,不是web界面访问的端口号!log_level 改为0。(注意:里面有一个 public_vkey 本教程用不到,但是建议修改为复杂的值)

1679492010162.png web_username ,web_password ,web_port 分别对应 web界面管理员用户名 ,web界面管理员密码 ,web管理界面访问端口,修改为自己想要的即可。

4、修改之后保存文件,然后执行以下代码,服务端就算是安装完成啦。

/opt/nps/nps install
nps start

打开http://你的服务端ip:你的服务端web端口(上面修改的)就可以看到我们的管理面板了,输入用户名和密码登录即可。

1679492360987.png5、创建客户端

7327e324006962461_1_post.png732792356aa11a3a2_1_post.png什么都不用改,直接新增即可。然后点击这个+号!73279a3bf93106921_1_post.png

6、然后把这个客户端命令复制下来,并在 ./npc 和 -server 中间加一个 install,保存起来,我们等下要用

732713b2f6e290832_1_post-kjgh.png

./npc install -server=49.XX.XX.232:9999 -vkey=nihzee4l1wew0898 -type=tcp

客户端部署:

1、运行以下命令(本地是用的N1盒子环境,所以选择arm64下载)

yum install tar wget
sudo mkdir /opt/npc
cd /opt/npc
wget https://ghproxy.com/https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_client.tar.gz
tar -zxvf linux*

2、运行上面我们保存的那个命令

./npc install -server=49.XX.XX.232:9999 -vkey=nihzee4l1wew0898 -type=tcp

3、运行以下命令启动

cd /opt/npc
npc start

4、查看服务端管理面板出现 在线 亮了则代表连接成功了。

732792d3166f47211_1_post.png

TCP穿透使用示例:

1、找到TCP隧道并点击新增

732729d16e0736024_1_post.png

2、填写客户端ID、服务端端口、客户端IP:端口

7327683129573f920_1_post.png如以上配置就是将客户端ID 2(第一个创建的客户端默认为2)、本地的5700端口穿透到服务器的5701端口,假如你在本地5700搭建了某某服务的话,就可以用服务器端ip:5701访问到本地的某某服务了。

3、点击新增之后客户端无需任何配置,如果出现端口冲突会有提示。

结语

nps是一个功能很多的内网穿透代理服务器,还有很多功能本教程没有介绍,比如说域名解析代理、http代理、管理面板多用户配置、客户端使用配置文件连接等等,可以自己看看官方文档琢磨琢磨。

安装成功后,如果需要修改服务端的配置文件,需要去/etc/nps/conf/nps.conf修改哦。