简单易用的内网穿透工具NPS

内网穿透

百度官方解释:内网穿透,即NAT穿透,网络连接时术语,计算机是局域网内时,外网与内网的计算机节点需要连接通信,有时就会出现不支持内网穿透。就是说映射端口,能让外网的电脑找到处于内网的电脑,提高下载速度。不管是内网穿透还是其他类型的网络穿透,都是网络穿透的统一方法来研究和解决。

为何nas需要内网穿透

对于博主而言,一台称职的nas是需要7*24小时开机的状态默默的待在博主的家里,它的主人需要的时候进行访问;如果博主在家还好,局域网访问没有任何障碍。那如果博主不在局域网环境中该怎么连接nas呢,简言之,你在家如何访问办公室的电脑呢(这里不考虑teamview或者向日葵等远程软件)。那这里就需要内网穿透到nas所在的局域网,来访问nas了。

博主没接触nas时候以为有了一台nas,就可以在世界各地(只要有网络)的地方就可以访问自己的nas,博主当年真是年轻。

白群辉还好,有官方的quickconnect,但是qc这东西也是玄学,博主测试过,速度并不是很稳定。

如果你是一台黑群,那恭喜你,不洗白的话,只能自己找工具进行内网穿透了,不然在博主看来你的nas和一个移动硬盘没有本质的区别,甚至还不如移动硬盘方便。

内网穿透的种类

由于博主目前只接触过群晖nas系统,只以群晖系统举例,QNAP、铁威马等产品应该是大同小异。

官方工具:quickconnect;

黑群晖在未洗白情况下无法使用

DDNS

博主认为ddns是实现外网最简单最方便的途径,但是ddns有一个硬性条件就是宽带服务商必须给你提供公网ip(注意这里是公网ip,并非固定ip,我看到网上有很多博主写的都是固定ip,公网ip可以不是固定的,运营商可以给你免费的公网ip,但是大概率是不会给你固定ip的

机智的你肯定会问,博主为什么不写ddns的教程呢,为啥要用nps,原因就是博主没有拿到公网ip,一般情况下电信的比较容易申请,只要给客服打个电话说需要公网ip,一般就会给开通;联通也还行,但是移动、长城这些就比较困难了,原因是服务商也没多少公网ip资源。但是也要分地区,博主家里的电信就很容易拿到了公网ip,但是工作所在地,给客服打了几次电话,客服给的答复是必须开通企业专线才有公网ip,每月1500。。。

Ngrok、frp、nps

这三类工具一般都需要你有一个带公网ip的vps服务器来搭建服务;只是难易程度不一样,博主认为nps不论从搭建还是后期设置上都是最简单的,ngrok和frp都需要修改配置文件,nps可以直接从网页端进行设置,比较直观,所以博主最推荐nps。

蒲公英等内网穿透工具

蒲公英是一个硬件设备,可以实现内网穿透,博主当时买的时候是90多,可以免费设置两个客户端使用,1m带宽;如果想再增加设备提高速度只能付费了;博主不用的时间比较久了,但是蒲公英设置很简单,如果不想麻烦对速度也没要求,可以百度查下蒲公英x1。

重点来了:开始搭建

实现此套内网穿透需要:

安装centos7的vps(也可以是乌班图或者debain系统,博主的是centos7)

安装群晖系统的nas

域名(可有可无,有域名后期会方便记地址)

xshell或者putty等可以连接vps的软件

服务端搭建

xshell连接vps

简单易用的内网穿透工具NPS

这里博主连接后就直接获取的是root权限,如果你没获得root权限可以输入

sudo -i

安装docker

yum install -y docker

出现complete!就代表docker安装完成了!

创建config目录

cd /

cd home

mkdir shawn

cd shawn

mkdir nps

cd nps

启动docker

service docker start

输入下面docker命令

docker run -d --privileged=true --name nps --net=host -v /home/shawn/nps:/nps/conf oldiy/nps-server:latest

查看config文件夹内是否创建了相关文件

ls

如果出现了这些文件,就代表已经搭建完毕

简单易用的内网穿透工具NPS

至此vps服务端的nps就搭建完毕了,下面进行网页端设置

网页端设置

打开浏览器输入vps的 ip:8080(ip地址:8080),ok打开了

简单易用的内网穿透工具NPS

账号:admin

密码:123

新建客户端

 

 

简单易用的内网穿透工具NPS

按照我下面的设置即可,客户端验证秘钥自己填写一个记住即可,稍后群晖端设置时候要用到。

简单易用的内网穿透工具NPS

配置群晖端

网页打开群晖后台(这里注意一下你的群晖必须支持docker)

安装docker套件

套件中心-搜索docker-安装套件

简单易用的内网穿透工具NPS

安装完成后打开docker,点击注册表,搜索oldiy(这里感谢oldiy大神)找到oldiy/npc-server 双击安装

简单易用的内网穿透工具NPS

选择默认的latest

简单易用的内网穿透工具NPS

点击映像

简单易用的内网穿透工具NPS

稍等一会下载完毕后双击,选择高级设置

简单易用的内网穿透工具NPS

网络-勾上这个选项

简单易用的内网穿透工具NPS

点击环境,修改serverip和vkey

简单易用的内网穿透工具NPS

然后应用一路下一步确定就可以了。

点击容器可以看到nps已经运行了

简单易用的内网穿透工具NPS

回到网页端,这时候就可以看到已经是在线(online)状态了

简单易用的内网穿透工具NPS

这里注意一下,如果你按照我的设置最后网页端显示的是离线(offline)那可能是你的8024端口没开放,解决方法:连接你的vps服务器输入下面命令放行8024端口

iptables -I INPUT -ptcp --dport 8024 -j ACCEPT

刷新网页端应该就在线了。

回到网页端

点击tcp隧道-新增

简单易用的内网穿透工具NPS

这里我们以群晖页面为例,按照如下设置

简单易用的内网穿透工具NPS

点击新增后,可以看到一切都正常了

简单易用的内网穿透工具NPS

这样你在外网情况下浏览器地址输入vps的ip加上5000端口(ip:5000)就可以远程穿透到自己的nas了,测试一下。

简单易用的内网穿透工具NPS

ok,是不是nps的内网穿透很简单,博主也是半路出家曾经花费很长时间研究ngrok和frp,但是一直没成功,但是nps一次就ok了!群主也有一个frp服务(是找别人帮忙搭建的),使用体验就是速度上frp和nps没有本质区别,但是便捷程度上可以说nps对像博主这种半路出家的更友好。

网上也有很多人分享自己的frp给大家用,但是既然自己有vps服务器而且又不麻烦,这种东西还是用自己的好!

对了,开头说到域名,这里简单提一下吧有什么用;

域名的作用就是通过host穿透时候用到,可以把服务器的地址解析到域名上,这样每次就不用记你的vps地址了。效果一样,这里我就不演示了!

博主做穿透时候遇到的坑

博主第一次搭建从头到尾都很顺利,但是有个地方需要注意下,就是vps服务器可能没有开放你所需要的端口,就像文中提到的8024端口开放方法,如果你遇到其他端口未开放只需要把那个命令中的8024换成你需要开放的端口即可。

如果你不喜欢使用命令,可以在vps上安装宝塔面板,宝塔面板中开放端口很方便。

写在最后

NPS穿透真的简单又方便,终于可以愉快的外网访问了;NPS的外网访问速度主要取决于你的vps服务器的速度(延迟和带宽)。我的这个外网看jellyfin 1080p毫无压力,还不错。