2020-8-23 6,478
上个礼拜看到威联通的 TS-453Bmin 在狗东又又又促销到了低价,索性入了一台来体验一下正经大厂的系统之类。之前 NAS 用的是捡来的矿渣播酷云,跑的 windows server 系统,一直作为普通的文件存储使用,也没啥外网访问需求,偶尔要访问一下也可以通过 ipv6 远程桌面完成,用的很佛系。
不过现在既然换了正经产品,有些功能就有必要研究一下了。本人家里用的宽带为移动大内网,得益于工信部政策推进,ipv6 是早就有了,但公网 ipv4 就彻底没的指望。而平时待的公司这边企业宽带又只有 ipv4,于是要从公司这边访问 NAS 就成了问题,v6 和 v4 压根就不能直接互通。
因此本文就来记录一下内网穿透工具 NPS 的使用,让家里大内网宽带下的设备也能被外网访问到。
NPS 是 Go 语言编写的一款内网穿透软件,支持各种系统平台,比起另一款常见的穿透工具 FRP 的最大好处是有图形界面配置,要方便不少。
官方项目地址:https://github.com/ehang-io/nps/blob/master/README_zh.md
使用说明:https://ehang-io.github.io/nps/
准备工作
1. 一个自己的域名(可选,如果需要域名访问的话) 2. 一台用来中转数据的 VPS,作为服务器端 3. 想要被外网访问到的内网设备,我这里是自己的 NAS,这是客户端
首先在用来中转数据的 VPS 上安装 NPS 的服务器端,我这里用的是 Linux 系统,直接拉取目前最新版本并解压,我这里把程序放在 home 里:
cd / home
wget https://github.com/ehang-io/nps/releases/download/v0.26.8/linux_amd64_server.tar.gz &&tar -zxvf linux_amd64_server.tar.gz
然后直接安装:
./nps install
装完也会提示程序常用的操作命令,比如停止,重启,启动等:
nps start|stop|restart|uninstall|update or nps-update update
这里先启动程序:
nps start
然后浏览器打开 IP+8080 端口,就会看到如下图所示的登陆界面了,CentOS 这类记得防火墙放行对应端口。
默认用户名 admin,默认密码 123
登陆进去可以看到默认连接端口为 8024,接着点击客户端选项,新建一个客户端连接:
新建客户端的选项里默认其实也就备注写个名字,加密和压缩也打开,直接创建即可,密钥可以不用填,程序自己会生成一个随机的,然后可以看到列表对应的项,此时显示客户端未连接:
接着来配置本地 NAS 上的客户端,这一边采用 Docker 来配置。先到威联通商店里装上 ContainerStation 套件,也就是 Docker 环境。
如果是首次使用的话,建议先在属性的 Registry 服务器里添加几个 Docker 的国内镜像源,比如网易源,阿里源或者中科大等。威联通默认是调用的官方 dockerhub,那个在国内使用速度实在是过于感人:
然后到镜像文件选项里,点击提取,选择国内源,然后镜像名字填写 ffdfgdfg/npc,版本默认 lateset 最新,提取一份 NPS 的镜像:
拉下来的镜像实际很小,10M 出头,点击镜像后面的加号,创建容器:
然后看情况自己限制一下最大 CPU 和内存资源占用,接着网络里务必要把容器联网模式改成 Host,不要用默认的 NAT 联网:
主要要设置一个外界目录,映射给容器里的 conf 目录,比如我这里设定成 Container/Docker/nps/conf,用来存放配置文件,读写权限务必都勾上:
去 https://github.com/ehang-io/nps/tree/master/conf 下载客户端的配置文件,也就是 npc.conf
下载后用文本编辑器把里头第二行的服务器 IP 地址和第四行的验证密钥换成自己服务器的,其他不用动,然后放到配置文件目录里:
都准备好后创建容器即可。
一切顺利的话 NAS 这边的容器就会直接开始运行了,然后服务器端的客户端列表里也会显示客户端在线了:
到此,NPS 的服务器端和客户端就都配置完成了。
于是问题来了,怎么使用呢?
其实也很简单,比如说威联通的默认网页管理界面为 5000 端口,如果想要在外网访问管理界面的话,就在 NPS 服务端添加一个 TCP 隧道配置。
客户端 ID 填写对应的,我这里前面的图上可以看到是 2
服务端端口意思是访问中转服务器时所用的端口,按自己喜好随意指定一个
目标里就写内网的 NAS 的 IP 地址
点击新增规则即可,然后浏览器里就可以直接输入中转 VPS 的 IP 地址+5050 端口,就能看到 NAS 登陆界面了:
要映射别的内网设备也就依葫芦画瓢即可,用法非常的简单。
用 IP 访问不便于记忆,于是还可以用自己的域名来访问,首先准备个自己的域名,然后在对应的解析记录里添加一个或多个 A 记录,还可以添加整段子域名。
下图这种,比如域名是 test.com,添加一个*.nps 开头的解析,那么就把所有*.nps.test.com 解析到了同一个 IP 上,整个三级域名都可以随意使用:
然后在 NPS 的管理界面里添加一个域名解析,域名填写自己想要的,目标 IP 填写 NAS 内网的即可,如下图:
设置好之后保存即可,然后即可使用自定义的三级域名+端口来访问 NAS 了,比如按照上图设定,浏览器访问 web.nps.test.com:5050 即可看到威联通管理界面了。
要是还嫌域名访问也麻烦,那还可以创建一个 SOCKS5 代理,代理的话也需要设定一个专用端口,比如我这里设定个 2333:
设定好之后保存,然后我自己常用的是火狐浏览器,去插件商店里下载个 SwitchyOmega 这类插件,设定一下代理,协议选择 SOCKS5,填写好中转 VPS 的 IP 和设定的端口:
后面要连家里设备的话,浏览器插件切换开启对应代理即可,然后直接输入内网 IP 即可查看对应设备,就像在家里使用一样,更加方便。
总之 NPS 作为内网穿透软件可以说是比较友好了,安装方便,而且最大特点配置简单,所有操作修改都在服务器端的 web 界面操作,客户端只要运行个程序就行,省事省心。
- 瀚存 见方 L 8 盘位 NAS 机箱开箱 - 2024 年 10 月 24 日
- 你这学习机正经么,开箱个联想天骄 16 AIO 一体机 - 2024 年 10 月 1 日
- 【捡垃圾】技嘉 G+ Pixer 墨水屏相框体验 - 2024 年 9 月 22 日