引言
说起内网穿透,大家首先想到的肯定是frp了,但是我当年也是个小白的时候,硬是没搞懂它是怎么个玩法。但是当我找到nps这个项目,看了几眼教程动手操作了一下,就轻轻松松搭建成功。而且最爽的一点就是,这个项目它安装好之后自己会写自启动和进程守护配置,根本不需要我们管。
注意:本项目客户端(npc)和服务端(nps)都支持几乎所有的系统,为了节省时间,本教程客户端和服务端皆以ubuntu 18.04 amd64系统部署作为参考。
要求:有一台带有公网ip的云服务器,什么系统的都可以,用作服务端
本项目开源地址:https://github.com/ehang-io/nps
本项目官方文档:https://ehang-io.github.io/nps
本项目web管理界面截图:
教程
服务端部署:
注意:搭建之前建议在服务器防火墙以及云服务厂商的安全组放通1-65535所有端口!
- 下载服务端并解
-
sudo apt install tar wget sudo mkdir /opt/nps cd /opt/nps sudo wget https://ghproxy.com/https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_server.tar.gz sudo tar -zxvf linux* sudo chmod 777 ./*
3.修改配置文件,使用sftp或者服务器管理面板打开 /opt/nps/conf/nps.conf 进行编辑,(也可以使用BT面板,如果密码没改,安装完成后的目录为etc/nps/conf,改这个没用)
- 主要是修改以下几个变量
把这两个删掉:因为考虑到有些小伙伴没备案、有些小伙伴80和443端口已经在使用了,以及避免一些部署过程中不必要的错误,虽然nps带有http和https代理功能,但是本教程旨在部署成功以实现tcp代理和udp代理(将http代理删掉)。bridge_port 修改为你想要的端口,该端口为连接端口,不是web界面访问的端口号!log_level 改为0。(注意:里面有一个 public_vkey 本教程用不到,但是建议修改为复杂的值)
web_username web_password web_port 分别对应 web界面管理员用户名 web界面管理员密码 web管理界面访问端口,修改为自己想要的即可。
- 修改之后保存文件,然后执行以下代码,服务端就算是安装完成啦。打开http://你的服务端ip:你的服务端web端口(上面修改的)就可以看到我们的管理面板了,输入用户名和密码登录即可。
sudo /opt/nps/nps install sudo nps start
创建客户端
什么都不用改,直接新增即可。然后点击这个+号!
- 然后把这个客户端命令复制下来,并在 ./npc 和 -server 中间加一个 install,保存起来,我们等下要用
我们保存的命令是长这个样子的sudo ./npc install -server=49.0.252.232:8024 -vkey=nihzee4l1wew0898 -type=tcp
客户端部署:
- 运行以下命令
sudo apt install tar wget sudo mkdir /opt/npc cd /opt/npc sudo wget https://ghproxy.com/https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_client.tar.gz sudo tar -zxvf linux*
- 运行上面我们保存的那个命令
- 运行以下命令启动
-
<span class="pln">sudo npc start</span>
-
- 查看服务端管理面板出现 在线 亮了则代表连接成功了。
windows按下列模式:
将windows客户端下载到一个盘中,解压,使用cmd进入该目录,如cd c:\nps,
npc<span class="token punctuation">.</span>exe install <span class="token operator">-</span>server<span class="token operator">=</span><span class="token keyword">public</span><span class="token operator">-</span>server<span class="token operator">:</span><span class="token number">8024</span> <span class="token operator">-</span>vkey<span class="token operator">=</span><span class="token keyword">inner</span><span class="token operator">-</span>server2唯一验证密钥
npc.exe stop npc.exe start
TCP穿透使用示例:
- 找到TCP隧道并点击新增
- 填写客户端ID、服务端端口、客户端IP:端口
如以上配置就是将客户端ID 2(第一个创建的客户端默认为2)、本地的5700端口穿透到服务器的5701端口,假如你在本地5700搭建了青龙的话,就可以用服务端ip:5701访问到本地的青龙面板。 - 点击新增之后客户端无需任何配置,如果出现端口冲突会有提示。
结语
nps是一个功能很多的内网穿透代理服务器,还有很多功能本教程没有介绍,比如说域名解析代理、http代理、管理面板多用户配置、客户端使用配置文件连接等等,可以自己看看官方文档琢磨琢磨。
安装成功后,如果需要修改服务端的配置文件,需要去/etc/nps/conf/nps.conf修改哦。
如果客户端是群晖的话,项目作者还准备了群晖套件