需求
家里有一台闲置电脑,想在电脑上部署一个网盘用来存储自己的一些东西,但是部署在电脑上无法公网访问,所以研究了一下发现了开源工具nps,真是感谢开发者。
nps介绍
nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。
可以看到功能十分丰富,不过我在这里只用到了tcp,先记录一下,之后我再买一个域名尝试域名解析功能。
下载
首先进入GitHub中下载,对源码感兴趣的伙伴可以clone下来研究,如果只是使用的话在右下位置releases中点击下载:
分别下载服务端和客户端两个压缩包,服务端如果是Linux系统就下载Linux版的
,不过由于我的服务器是Windows server系统的,所以我下载了Windows系统的服务端和客户端。
安装服务器端
下载下来的两个压缩包,我们先处理server服务器版的,解压后发送到服务器:
我在服务器C盘创建了nps文件夹专门存放:
里面是解压后的内容,进入conf/nps文件,打开:
可以看到有一些端口号需要提前开启:
如果这些端口号已经被占领,需要在这里修改端口号。
返回上一页双击nps.exe启动:
到此服务器配置完成,然后我们打开电脑访问服务器IP+8080
(8080是刚刚conf文件中配置的端口,要根据自己设置的端口访问)。
会打开这个页面,输入用户名密码进入(用户名密码都是conf文件中配置)。
配置远程桌面连接
点击客户端
点击新增按钮
填写内容(基本不用填什么东西):
创建成功后:
此时显示连接时离线状态,然后我们点击左边的加号:
可以看到最下面的客户端命令,待会儿要用到它。
配置客户端
此时打开在内网中的那台电脑,把client那个安装包发过去解压:
正常有这两个文件,但是我为了方便创建了npc.bat
文件,里面存放刚刚的客户端命令:
注意在复制客户端命令时不要复制上./
。
保存以后想启动直接双击npc.bat
文件:
出现这个就是启动成功了,然后返回web页面刷新会发现连接在线了。
此时点击隧道,创建隧道,新建:
这里有个bug,不知道是我的原因还是什么情况,我按照正常一个个填写后会连接失败,但是我什么都不填直接点击新增,创建成功后修改端口会连接成功,晕。
填写服务端IP,端口可以不填,他会自动生成,目标IP端口,如果是创建远程连接时,端口号填3389
。
创建成功,显示运行状态等都是开放,此时就可以进行远程连接了:
win+R+mstsc:
输入你的服务器IP+刚刚生成的端口号:
点击连接,如果出现这个就说明成功了:
此时输入你的用户名密码就可以在公网远程操控内网中的电脑了。
访问内网中部署的项目
同理,和上面一样,在内网电脑上启动项目,比如用nginx等方式,记住该项目使用哪个端口,在服务器开启该端口,同时新增改项目的TCP隧道,方法和上面一样,添加好之后启动client即可。
这是我测试的:
这是一位大佬开源的网盘系统,我拿来使用,在内网电脑启动项目,使用9000端口。
开启tcp服务,使用服务器的9090端口映射内网9000端口。
输入公网IP+9090成功访问。
问题
在使用过程中经常会出现一些问题,而且不清楚是什么原因,有时候昨天可以用但是今天就不行了,很无语,各位看官如果有知道的能不能给小弟个解决方案,问题如下:
有时候会出现连接失败,一直重新连接:
服务端显示客户端验证错误:
还有时候可以远程访问,但是项目无法访问,真是头大。