寂寞的夜,
孤独的我,
抱着双手,
瑟瑟发抖;
此时,我多想有一个富婆走近我的身旁,温暖我的身心。不是因为她穿着香奈儿的衣着,挎着古驰的包,开着劳斯莱斯幻影。而是她是唯一能读懂我英俊外表下隐藏的一颗单纯的心。我知道,我的爱情来了,曾荣获王八盖子小区舔瓶盖大王的我必将让她芳心暗许。。。。。。
工地的砖即使在寒冽的冬日也被晒得烫手,天台摸鱼的我不禁陷入沉思,想像着人类历史上众多哲学家悬而未决的问题,我昨晚梦到了啥?直到下班的我打算用新买的NAS搞个外网访问的途径,于是我颤颤巍巍的开始折腾了,将这上古难题抛诸脑后。。。。。。
为什么要内网穿透呢?我猜想了解内网穿透的人,家里基本上没有公网IP,相信大家小学二年级学过知道,ipv4地址是不够用的,所以到了现在,ipv4地址基本用完了,我们常说的外网就是这个玩应,你家能够访问广域网,广域网也能访问你。而不是NAT搞个小局域网,在那自嗨。废话不多说,这篇也不是教你如何获得公网IP的。
现在公网不能想了,还有什么办法能够让我在异地他乡访问我家里的小宝贝呢?事实上解决方案有很多,本次讲得是nps的一些基本使用,教你如何快速让你的群晖nas能够走上机生巅峰。
nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。支持tcp、udp、socks5、http等几乎所有流量转发,可用来访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析、内网socks5代理等等……,并带有功能强大的web管理端。a lightweight, high-performance, powerful intranet penetration proxy server, with a powerful web management terminal.(引用官方文档介绍)
nps的方式是让一台有公网ip的A主机拉皮,呃是做中转,代理转发你添加的家里客户端B,然后你的公司客户端C就可以通过A的ip外网访问到家里的客户端B了。
如果你没有公网主机,也没关系,生命不息,折腾不止,期待之后我的更新吧。
作案工具: 公网ip主机一台,用来安装运行服务端nps;客户端B,比如说你家里的nas老铁,以及客户端nps,nps文档里有群晖专用的安装包,对对对,就是那个后缀.spk的内个;以及一颗聪明伶俐的大脑。
前戏完成了,我们就可以,,嘿嘿嘿 正式开始了。
以我举例,一台CentOS 系统环境的主机。安装nps服务端包,个人习惯我喜欢放到把一些程序放到home文件夹下,也从侧面证明我是个顾家的人,有意的小姐姐请私聊我,谢谢。
首先下载到home目录下
wget -P /home/ https://github.com/ehang-io/nps/releases/download/v0.26.9/linux_amd64_server.tar.gz
然后在home下创建一个nps的文件夹
mkdir /home/nps
接着解压文件到nps文件夹下
tar zxvf /home/linux_amd64_server.tar.gz -C /home/nps/
紧跟着先不要运行启动命令,我们还需要先配置一番,心急吃不了热豆腐。
先进入nps文件夹,然后打开nps下的conf配置文件,按i键进入编辑
cd /home/nps/
vi ./conf/nps.conf
你会看到一大堆没用的东西,不用管它,只需要改几处就可以运行了。
找到bridge那一块,这是nps服务用到的设置,类型为tcp,端口为8024。所以如果你有防火墙的话,请到主机服务商修改外网规则,放开8024端口,如果有用宝塔面板之类的话,面板里也要放开。
##bridge
bridge_type=tcp
bridge_port=8024
bridge_ip=0.0.0.0
接着找到web那一块,这里是nps的网站配置
web_host
一定要改,换成你的服务器的公网ip;
web_username
和 web_password
是设置登录的账户
web_port
是网站运行的端口,这个看你需要改;注意放开防火墙。
#web
web_host=a.o.com
web_username=admin
web_password=123
web_port = 8080
web_ip=0.0.0.0
web_base_url=
web_open_ssl=false
修改完成后按ESC
退出编辑,输入:wq
保存退出
搞定这几个参数就可以运行命令开启了。
安装
sudo ./nps install
运行
sudo nps start
如果发现没有启动成功,可以使用nps(.exe) stop,然后运行nps.(exe)运行调试,或查看日志(Windows日志文件位于当前运行目录下,linux和darwin位于/var/log/nps.log)
好了,一切正常的情况下,现在你可以访问nps的web页面了。
然后我们先需要到nps的web页添加客户端和隧道。
登陆进来后,打开nps左侧客户端,点新增,除了压缩和加密选择是,其他可默认。然后确认新增。
记住你刚建的客户端id,还有唯一验证密钥,接着点新建的客户端右侧的隧道,然后新增
默认tcp隧道,输入刚刚的客户端id, 服务端端口这里填的是你公网主机的端口号,随你,方便记忆的话可以同目标端口,比如群晖web访问一般是5000
;
目标这里,填写你家里的群晖NAS的内网ip加访问端口,如:192.168.99.2:5000
填写完成后,点击新增。如此你的nps设置就此告一段落,如果后续有其他服务,按此添加即可。
回到群晖,下载spk的安装文件到本地电脑。打开群晖,打开套件中心。右上角手动安装,找到你下载的文件安装。
安装打开后,
输入服务器地址:[你的服务端主机ip]:[bridge端口号]
输入链接密钥:[隧道的密钥,即唯一验证密钥]
链接方式默认tcp
点击保存,至此,全部工作完成。通过公网ip和端口即可远程访问你家里的NAS了。当然nps的玩法,不止这么简单,除了群晖里面的其他服务也可以映射出来,家里的其他设备也可以。还有比如设置https,通过域名访问等等。
更多详细设置请看官网文档
当然了访问速度会取决于你的A主机的网速。像我是一台2m小水管的某云服务器,跑个小网站,Drive同步一些常用文件还行,储存大文件和影音播放就别想了。至少不用
p2p的话,或者换一个大带宽的主机,不过那费用,啧啧。。。
除了nps以外,我还通过其他方法实现过远程访问,很好玩。下次一定更新,如果本篇文章有帮到你,还请一键三连。
注:
1, 俺是学渣,可能有说得不对的地方勿杠
2, nps github地址: https://github.com/ehang-io/nps