nps内网穿透使用记录

  • 需求
  • nps介绍
  • 下载
  • 安装服务器端
  • 配置远程桌面连接
  • 配置客户端
  • 访问内网中部署的项目
  • 问题


需求

家里有一台闲置电脑,想在电脑上部署一个网盘用来存储自己的一些东西,但是部署在电脑上无法公网访问,所以研究了一下发现了开源工具nps,真是感谢开发者。

nps介绍

github链接: nps项目 文档链接: nps文档

nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。

可以看到功能十分丰富,不过我在这里只用到了tcp,先记录一下,之后我再买一个域名尝试域名解析功能。

下载

首先进入GitHub中下载,对源码感兴趣的伙伴可以clone下来研究,如果只是使用的话在右下位置releases中点击下载:

nps 和npc怎么使用 docker nps文件_服务器


分别下载服务端和客户端两个压缩包,服务端如果是Linux系统就下载Linux版的

nps 和npc怎么使用 docker nps文件_nps 和npc怎么使用 docker_02


,不过由于我的服务器是Windows server系统的,所以我下载了Windows系统的服务端和客户端。

安装服务器端

nps 和npc怎么使用 docker nps文件_linux_03


下载下来的两个压缩包,我们先处理server服务器版的,解压后发送到服务器:

nps 和npc怎么使用 docker nps文件_nps 和npc怎么使用 docker_04


我在服务器C盘创建了nps文件夹专门存放:

nps 和npc怎么使用 docker nps文件_linux_05


里面是解压后的内容,进入conf/nps文件,打开:

nps 和npc怎么使用 docker nps文件_nps 和npc怎么使用 docker_06

可以看到有一些端口号需要提前开启:

nps 和npc怎么使用 docker nps文件_nps 和npc怎么使用 docker_07


nps 和npc怎么使用 docker nps文件_网络_08


如果这些端口号已经被占领,需要在这里修改端口号。

返回上一页双击nps.exe启动:

nps 和npc怎么使用 docker nps文件_nps 和npc怎么使用 docker_09


到此服务器配置完成,然后我们打开电脑访问服务器IP+8080(8080是刚刚conf文件中配置的端口,要根据自己设置的端口访问)。

nps 和npc怎么使用 docker nps文件_nps 和npc怎么使用 docker_10


会打开这个页面,输入用户名密码进入(用户名密码都是conf文件中配置)。

nps 和npc怎么使用 docker nps文件_内网_11

配置远程桌面连接

点击客户端

nps 和npc怎么使用 docker nps文件_内网_12


点击新增按钮

nps 和npc怎么使用 docker nps文件_linux_13


填写内容(基本不用填什么东西):

nps 和npc怎么使用 docker nps文件_网络_14


创建成功后:

nps 和npc怎么使用 docker nps文件_网络_15


此时显示连接时离线状态,然后我们点击左边的加号:

nps 和npc怎么使用 docker nps文件_服务器_16


可以看到最下面的客户端命令,待会儿要用到它。

配置客户端

此时打开在内网中的那台电脑,把client那个安装包发过去解压:

nps 和npc怎么使用 docker nps文件_网络_17


正常有这两个文件,但是我为了方便创建了npc.bat文件,里面存放刚刚的客户端命令:

nps 和npc怎么使用 docker nps文件_nps 和npc怎么使用 docker_18


注意在复制客户端命令时不要复制上./

保存以后想启动直接双击npc.bat文件:

nps 和npc怎么使用 docker nps文件_服务器_19


出现这个就是启动成功了,然后返回web页面刷新会发现连接在线了。

nps 和npc怎么使用 docker nps文件_nps 和npc怎么使用 docker_20


此时点击隧道,创建隧道,新建:

nps 和npc怎么使用 docker nps文件_nps 和npc怎么使用 docker_21


这里有个bug,不知道是我的原因还是什么情况,我按照正常一个个填写后会连接失败,但是我什么都不填直接点击新增,创建成功后修改端口会连接成功,晕。

nps 和npc怎么使用 docker nps文件_linux_22


填写服务端IP,端口可以不填,他会自动生成,目标IP端口,如果是创建远程连接时,端口号填3389

nps 和npc怎么使用 docker nps文件_网络_23


创建成功,显示运行状态等都是开放,此时就可以进行远程连接了:

win+R+mstsc:

nps 和npc怎么使用 docker nps文件_nps 和npc怎么使用 docker_24


输入你的服务器IP+刚刚生成的端口号:

nps 和npc怎么使用 docker nps文件_nps 和npc怎么使用 docker_25

nps 和npc怎么使用 docker nps文件_linux_26


点击连接,如果出现这个就说明成功了:

nps 和npc怎么使用 docker nps文件_nps 和npc怎么使用 docker_27


此时输入你的用户名密码就可以在公网远程操控内网中的电脑了。

访问内网中部署的项目

同理,和上面一样,在内网电脑上启动项目,比如用nginx等方式,记住该项目使用哪个端口,在服务器开启该端口,同时新增改项目的TCP隧道,方法和上面一样,添加好之后启动client即可。

这是我测试的:

这是一位大佬开源的网盘系统,我拿来使用,在内网电脑启动项目,使用9000端口。

nps 和npc怎么使用 docker nps文件_服务器_28


开启tcp服务,使用服务器的9090端口映射内网9000端口。

nps 和npc怎么使用 docker nps文件_网络_29


输入公网IP+9090成功访问。

nps 和npc怎么使用 docker nps文件_网络_30

问题

在使用过程中经常会出现一些问题,而且不清楚是什么原因,有时候昨天可以用但是今天就不行了,很无语,各位看官如果有知道的能不能给小弟个解决方案,问题如下:

有时候会出现连接失败,一直重新连接:

nps 和npc怎么使用 docker nps文件_nps 和npc怎么使用 docker_31


服务端显示客户端验证错误:

nps 和npc怎么使用 docker nps文件_nps 和npc怎么使用 docker_32


还有时候可以远程访问,但是项目无法访问,真是头大。