介绍

nps 是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持 tcpudp 流量转发,可支持任何 tcpudp 上层协议(访问内网网站、本地支付接口调试、ssh 访问、远程桌面,内网 dns 解析等等……),此外还支持内网 http 代理、内网 socks5 代理,可实现在非内网环境下如同使用 vpn 一样访问内网资源和设备的效果。

目前市面上提供类似服务的有花生壳、TeamViewGoToMyCloud 等等,但要使用第三方的公网服务器就必须为第三方付费,并且这些服务都有各种各样的限制,此外,由于数据包会流经第三方,因此对数据安全也是一大隐患。

为什么要用内网穿透?
举个例子,假如你家里有台 黑群晖NAS,然后你家里没有公网 IP 地址(现在很多的家庭网络都不会分配公网地址了),但是你又想在公司(外网)能访问你的 黑群晖NAS,这时候就需要用到内网穿透,来让你在公司(外网)也能访问家里的 黑群晖NAS 了~

这里用到的 docker 镜像:

https://hub.docker.com/r/oldiy/nps-server

https://hub.docker.com/r/oldiy/npc-client

nps 项目地址:

https://github.com/cnlh/nps/


准备工作

环境

服务端:有公网 IPcentos7
客户端:群晖 NAS
软件:Xshell

域名解析

首先,要有个域名,然后到域名解析商那里做个域名解析,具体的自行百度,下面是一些阿里云解析的资料

参考资料:
https://help.aliyun.com/knowledge_detail/39397.html?spm=5176.13394938.0.0.43a22fc3ihtv5Y

https://help.aliyun.com/knowledge_detail/39783.html?spm=5176.13394938.0.0.43a22fc3ihtv5Y

https://jingyan.baidu.com/article/48b558e3f25e6d7f38c09aec.html

我配置的域名解析:

47210-groc6apqk2j.png

11900-jiddlveuoon.png


安装 docker

使用 Xshell 远程连接到服务端开始做配置

19074-ub2jumhzdk.png

58024-1391hwvvwr4q.png

关闭防火墙(或者开启对应端口),安装 docker

[root@nas ~]# systemctl stop firewalld
[root@nas ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@nas ~]# curl https://download.docker.com/linux/centos/docker-ce.repo -o  /etc/yum.repos.d/docker.repo
[root@nas ~]# yum -y install docker-ce.x86_64
[root@nas ~]# systemctl start docker.service && systemctl enable docker.service
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

安装配置 nps 服务端

命令行配置

使用 docker 部署 nps 服务端

[root@nas ~]# mkdir -p /data/nps/conf
[root@nas ~]# docker run -d --privileged=true --name nps --net=host -v /data/nps/conf:/nps/conf --restart=always oldiy/nps-server:latest
Unable to find image 'oldiy/nps-server:latest' locally
latest: Pulling from oldiy/nps-server
c87736221ed0: Pull complete 
279154eae597: Pull complete 
9f3d73efe602: Pull complete 
c6b3ecbbb567: Pull complete 
Digest: sha256:e1b9889aee7b5faecbccf6d66f2d6db7ea280f0edc415e9f6cac8073ffd29ecc
Status: Downloaded newer image for oldiy/nps-server:latest
e0ceb8b49d5038a7f7fb516f44e6c739d54cc9ecb2ac0edfb5c5445aaf340608
[root@nas ~]# docker ps
CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS              PORTS               NAMES
e0ceb8b49d50        oldiy/nps-server:latest   "/bin/sh -c /nps/nps…"   27 seconds ago      Up 26 seconds                           nps

在配置文件修改 web 登陆界面的密码(如果不修改的话,默认用户和密码为 admin/123)

[root@nas ~]# vi /data/nps/conf/nps.conf
web_password=OPS@123
[root@nas ~]# docker restart nps
web 端配置

使用浏览器登录 nps web 页面,端口为 8080

16115-nvfx4dzenv9.png

添加客户端

76526-ducr6fxuvhh.png

95236-1mhtavv8sd7.png

给对应客户端添加域名解析

62722-t2hnzdjt6p.png

08686-lw1wy0wjh8.png

89890-qduq2hknl.png


安装配置 nps 客户端

群晖基本配置

在群辉的套件中心安装 docker

32746-9cyd5dkgz.png

在群晖 控制面板 – 网络 – DSM 设置中配置 HTTPS ,同时也能见到群晖的 HTTPS 端口号,一般默认是 5001

02396-1zxwpn7ybys.png

安装 docker nps 客户端

84141-s93hg9aogfs.png

50491-lt49mcs8xor.png

63257-54mtp16fn2u.png

62921-jlde8xjgvcg.png

57729-0mst948z2lna.png

94039-eqlcaqwh03s.png

06742-d8wgfhezace.png

75238-q3n3qras8l.png

检查

返回 web 页面,可以见到客户端状态已经是 online,说明连接上来了

70975-jxb4rh6oig.png


测试

在外网的机器上,使用浏览器访问域名
可以见到,打开成功!
至此~群晖内网穿透就搞掂了!

36682-dbv84oh7tuf.png


文章作者: Runfa Li
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Linux 小白鼠
Linux 网络 Linux 网络 docker nps nas 群晖 内网穿透
觉得文章不错,打赏一点吧,1分也是爱~
打赏
微信 微信
支付宝 支付宝