去年9月到现在使用飞牛NAS一年左右时间,对它的喜爱和依赖越来越深了,已经上升到除了工作以外都在研究怎么用飞牛来玩些新花样,整天就是捣鼓、逛论坛、看教程,上的最多的就是谷歌、Chatgpt、gemini、百度和youtube,当然,还有linuxdo。
由于对电脑有一定的了解,所以安装飞牛系统对我来说就是小菜一碟了,这里就不作介绍了。
我对飞牛最初的玩法就是拿来看看电影、保存相册,使用最长时间的是一台dell的小主机,直到上个月才退役,8100的cpu,8g内存,128g固态加500g机械,好像是vostro3470的型号,闲鱼560淘的。因为电影太占容量了,所以安装好飞牛测试完之后把500g机械换成了12T的服务器硬盘,那时候真便宜,不到600块钱,现在这块硬盘价格,估计得1000了吧。还是太保守了,不然买上几块,还能增值。刚玩的时候飞牛群友对我来说,都是大伽级别,很多压根没接触到的东西,我根本理解不了。比如使用Alist网盘的时候怎么挂载各平台的网盘,让Alist统一管理,当然了,现在为止我也没有明白这个原理,我只是会实操而已。当时网盘注册的有百度、天翼、夸克、123等,目前还在用的是百度了,夸克也很少了,会员马上到期了。之所以现在不用网盘了,是因为现在两块大容量的硬盘(12T加14T)已经够用了,而且网盘资料有些还会被和谐,又要买会员,繁琐着,还有就是百度后来和飞牛合作搞了个NAS会员,可以直接下载到飞牛,很方便,所以现在我没有再挂载网盘了。
后来我发现飞牛还能自建博客,于是我的第一个个人博客就出来了。虽然都是零零星星的一些COPY,偶尔夹杂着自己的流水账,也还看得过去。最重要的作用是,有些经常需要用到的教程,我可以直接在个人网站中打开查阅,不需要再百度了。建站我是使用的1panel中的halo,比较简单吧,因为我没太多时间去研究代码这些,拿来主义。
再到现在,我使用飞牛建游戏服务器,可以和大学同学一起玩曾经的华夏Online了,这个服务端是21年左右流出来的,虽然不是完美版本,但是也是比较完善了,游戏各种模块都有,也没有什么bug。我从最开始的单机虚拟机一键玩起,慢慢的懂得修改代码,到后来可以自己增加玩法了,也不枉自己一番折腾吧。如果有想玩的小伙伴,可以找我啊,哈哈,我免费给你充值,给你顶级装备。但是服里边没几个人,因为我不想去宣传,我怕我的服务器被攻击呀。
接下来,我还要继续研究其他的服务,比如邮件服务器,ERP系统等等。
好了,还是回归正题吧。
刚开始的时候远程连接飞牛使用的是自带的fnconnect,这个是飞牛系统自带的功能,特点就是能用,但是速度不快,如果要看高清电影可能就会卡顿。为了解决这个问题,我还是向群友们请教,群友们提供的两个方案,一个是使用公网ip,这个是最简单最直接的方法;另一种就是中转。公网ip这个说法也是第一次听说,原来家庭宽带还能有公网,这公网到底有啥用呢,当时也没多想。按照群友的思路,我在网上查阅了不少资料,如何获取公网,包括v4和v6。在百度查了ip地址发现和路由器上的地址不一致,初步判断我这条宽带是没有v4的了,于是转而看v6。对于大多数宽带来说,v6是有的,只是我查看我的电脑之后发现我家并没有获取到v6地址。当时我家移动宽带360一年,光猫路由是同一个设备,我按照设备背面的网址进入了管理页面,发现没有开启ipv6,所以我当时很兴奋,我觉得只要开启了v6,我就可以远程连接飞牛并愉快的看电影了(这想法很天真)。电脑端的确是获取到了ipv6的地址,2409开头一大串数字,我在ddns中设置了域名,使用域名加端口访问,结果还是无法访问成功,于是我又开始看教程找答案,原来问题出在防火墙上,我把光猫中的防火墙关了,这次通了,顺利的连接上了。我使用域名加端口就顺利的连接上了我的飞牛,飞牛连接显示公网连接,这让我好不欢喜。
然而,这仅仅只是开始的甜头,在某一天,我在公司(电信千兆网络)访问相册的时候,突然发觉很卡,加载速度超级慢。我寻思着,这不可能啊,家庭1000M宽带40M上行,足够了。我看着用大疆拍出来的漂亮视频一顿一顿的,心里特别不是滋味,让我下定决定,一定要找出原因。甚至上厕所的时候我都拿出手机测试到底通不通畅,我使用中国联通和中国电信的手机网络进行测试,发现都是很慢,但是慢的程度不一,有时候联通会快一些。再后来,我就分时段测试,发现,早上一起来的时候,很顺畅,没有卡顿,同时查看了nas的上行速度,也起来了。有了这些测试结果,我总结问题出在了运营商之间跨网访问上,但是在网上各种搜索,却几乎找不到类似的解决方法,甚至连case都很少。针对这个问题,我电话投诉过移动客服,我觉得是他们限制了跨网访问的速度,可是他们也没有这方面的经验,只是叫师傅联系我们解决,师傅让我测网速是否正常,这一测网速当然是没问题的,这跨网访问他们也无法解释无法解决。在网上寻找答案的时候,零星看到有人说是qos问题,在光猫中设置就行,而且要超级管理员才能修改。经过网上搜索,这超级管理员密码试了个遍,没一个是正确的。不得已,我找到安装师傅,找他们要密码,他们一开始并不同意给我密码的,因为怕我不懂会把网络搞坏,后来我说要路由器设置拨号并强烈要求下把密码给我了,进入之后也没有发现所谓的qos设置,我把光猫拨号改为路由器拨号之后就退出了,没多久,这密码就失效了,登陆不了了,估计这密码就是临时给我用一下罢了。我当时还和移动的师傅说电信宽带上行可以到100M的事,其实当时我是在想,如果换个电信的网络是否就可以解决这个跨网问题呢(后来我才知道这方法也是行不通的)。
这是用公司电信网络访问nas的速度,下载速度才几十kb/s。
尽管在多数时候跨网都是速度不理想的状态,但是有公网v6总比没有更强,勉强还是可以看看电影,只是网速不太稳定。于是还是继续使用着。让我想彻底改变的转折点是,有一次回老家的时候,我想在老家宽带能够连接上深圳的飞牛观看大片,于是在家里电视安装了飞牛TV,可是很奇怪的是,一直无法连接上。后来我跑我叔家去尝试,结果却非常流畅,他们家也是移动宽带,而我家却是用的广电的宽带。经过一番排查,我发现原来是我家广电的并没有分配v6地址,这就说得通了,因为我的飞牛是使用的v6地址在连接的。本来抱着很大的希望,准备在家里享受看片的喜悦的,这让我心情直接跌落谷底,非常失望。
既然第一种方案行不通,我就开始了研究第二种方案了。
第二种方案就是今天要说的重点,FRP中转。FRP(Fast Reverse Proxy)其实就是一款软件,它是一个开源、免费、高性能的工具,其核心功能是内网穿透 (NAT Penetration)。所谓内网穿透,就是让处于内网(比如家庭、公司局域网)中的设备,能够安全地被外网访问。这工具就是我要的。但是要使用FRP中转,还得有一台有公网ip的服务器才行。经过多个平台的综合对比,阿里云200M的轻量云非常符合我的需求,新用户首年69元,第二年可以再换个新用户重新换个ip。这个服务器是2H2G的配置,勉强够用。
一开始不懂得FRP如何配置,不太熟悉linux系统的命令。我直接先安装个1panel,在1panel中安装个frps服务端,都是可视化操作。最后在飞牛中安装frpc客户端。按照对应的ip和端口号,设置好转发端口。这一通下来,就直接连通了。ip加端口就可以直接公网访问了,这就是所谓的FRP中转访问,然后测试了一下访问速度和下载速度,这真的让我欣喜啊,直接跑满带宽40M的上行,看相册视频和看电影都是飞起的速度。
为了方便访问,我把域名指向了服务器的ip,取消了飞牛的ddns,因为有了v4访问,现在完全不需要v6了。出乎意外的事,我使用域名加端口访问竟然无法连接,与此同时,我1panel中的博客也是域名绑定了,访问的时候出现了提示,需要备案,网站打不开了。我猜想这一定就是这个原因,因为域名没有备案,服务器无法使用域名直接访问服务器。于是乎,花了几天的时间做了域名备案,一切都还算比较顺利,先是阿里云审核,再是交管局短信验证等等,过了几天就能收到域名审核通过的邮件了。接下来就可以直接用域名加端口访问了,很方便。
我原来NAS中的博客现在通过反代的方式也能直接通过域名访问了,前提也是要做域名备案,因为我使用的是国内的服务器,如果用国际服务器,就可以免备案了。
还有一个重要的玩法就是虚拟机了。虚拟机里面可以无限配置服务器,可以是windows、linux,也可以是其他系统,同一个系统也可以有各种不同版本。我目前主要配置了四台:一台window2003(游戏服务器)、windows10、用于远程访问家庭同时也是备用主机、iStoreOS用作旁路由、Ubuntu用于研究学习。
至此,我现在的飞牛NAS完全可以公网v4访问了,包括影视、相册、博客、游戏服务器等等。接下来,我要说的就是如何配置FRP中转,也许这才是值得学习的地方。
首先,从官方下载FRP软件:
https://github.com/fatedier/frp/releases
这里下载对应的服务器版本:linux、windows、macos等,同时将下载的frp软件放进云服务器以及需要配置frp的主机中(如果云服务器是linux就下载同版本的linux版本,主机如果是windows就下载windows版本)。
接下来就是配置云服务器中的frp:
可以通过Termius连接服务器(我推荐这个软件,目前使用多款终端软件觉得这款用得最舒服,有ssh和sftp):
使用SFTP功能把我们下载的frp解压后上传至服务器目录,我一般上传至root下面。
或者也可以直接使用命令下载:
wget https://github.com/fatedier/frp/releases/download/v0.61.0/frp_0.61.0_linux_amd64.tar.gz #下载对应系统的版本
然后使用命令:
cd frp #这个文件夹可以自己重命名
nano frps.toml #编辑配置文件 有版本也有可能会显示是frps.ini
bindAddr = "0.0.0.0"
bindPort = 7000
auth.method = "token"
auth.token = "abc123456789" #可自定义自己想要设置的token,越复杂越好
webServer.addr = "0.0.0.0"
webServer.port = 7500 #这个是网页端查看连接信息的端口 下面的是账户密码
webServer.user = "admin"
webServer.password = "admin"
保存好按Ctrl+X 输入Y,服务端的基本配置就好了,现在就把服务开启一下。
frps -c frps.ini #开启frp服务
如果要想让服务自动开启,一直运行,按以下命令:
sudo nano /etc/systemd/system/frps.service
接着输入以下内容:
[Unit]
Description=FRP
After=network.target
[Service]
Type=simple
User=root
# 【重要】请修改为您的实际路径!
ExecStart=/root/frp_0.51.3_linux_amd64/frps -c /root/frp_0.51.3_linux_amd64/frps.ini
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
按 Esc
键,然后输入 :wq
并回车,保存文件并退出。
现在,可以使用 systemctl
命令像管理系统服务一样管理FRP了:
# 重新加载systemd配置,让新服务文件生效
sudo systemctl daemon-reload
# 设置frps服务开机自启
sudo systemctl enable frps
# 立即启动frps服务
sudo systemctl start frps
# 查看frps服务的运行状态
sudo systemctl status frps
接下来配置客户端:
serverAddr = "33.108.182.201" #这里填写的是云服务器的ip地址
serverPort = 7000 #这个端口就是云服务器的端口
#不能删除, 否则连接不上会闪退
loginFailExit=false
auth.method = "token" #token和云服务器的要一致才能连接上
auth.token = "abc123456789"
#下面的是端口转发的协议和端口,一般是TCP/UDP,看自己的需求,localPort是本地端口,remotePort就是直接想要通过云服务器访问的端口,这里可以多组转发,按下面的格式。
[[proxies]]
name = "test-tcp00"
type = "tcp"
localIP = "127.0.0.1"
localPort = 5555
remotePort = 6666
配置完了之后就可以开始运行了,如果是windows,就cmd命令,进入对应的文件夹,执行下面命令:
f
如果连接成功,会有success的字样。
但是如果想要让程序一直保持运行,windows下可以使用nssm软件来实现。
评论区