上个礼拜看到威联通的 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_cserver.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 界面操作,客户端只要运行个程序就行,省事省心。

2222
Latest posts by 2222 (see all)

【娱乐】32M 内存 VPS 建站

两个多月前,在某商家处看到了个 32M 内存的 NAT VPS 小鸡,价格仅为 5 元人民币一季度,遂下了一单。然而下单后等了好几天迟迟没有开通,又加上购买时提示...

阅读全文

Debian/Ubuntu/CentOS 的防火墙差异

写这篇文章的原因是之前和朋友讨论时,对 Linux 的防火墙问题产生了截然不同的观点,继续交流后才发现原来是各自常用的发行版不同,朋友日常都用 Ubuntu 居...

阅读全文

几种快速下载 VPS 文件的方法

日常在折腾 VPS 时,都会涉及到本地和服务器直接的文件传输,比如上传程序文件,或者拖几个文件回来修改之类。对于少量的小文件,那么 sftp 基本足够,但如...

阅读全文

欢迎留言