搭建自己的FRP服务器,把移动宽带“局域网”里的Synology 群晖 DS218+ NAS挖出来
本人对FRP的了解仅限于能用,能满足我个人在群晖使用中的困难但了解也深不到哪去,发出来希望给和我一样有需要但对相关技术了解不足的朋友分享,无意班门弄斧,如有还望大神轻喷。
DS218+购买前因后果
前前后后组了三台黑群晖玩了然而都是单盘,一直有心洗白,然而钱包一直不太答应 。2月底的时候看到铁威马搞活动,双盘位的F2-220用完券1269(可能还有更好的券我没找到),虽然J1800的CPU对比同样X86架构的群晖DS218+使用的J3355来说可能略弱,但应付本职工作已经绰绰有余。而arm架构的DS218似乎并不受宠,ds218play又总觉得有些缺憾,而且价格比F2-220还要贵500左右,终没忍住,剁手了F2-220 。
然而事实证明,冲动的结果并不好,F2-220的颜值个人认为没的说,铝合金外壳很有分量,也很有踏实的感觉。虽然硬盘抽屉式塑料的,但是也并不影响使用体验。手头两块硬盘,果断要组raid1,毕竟存的都是有点重要的东西和照片。这时候就出现问题了,习惯了群晖大文件轻轻松松全程跑满千兆带宽的速度以后,这货的速度有点。。。诡异。。。开头满速,大概要不了几秒就开始跌,注意!是单个大文件哦!这时候打开系统管理页面,发现内存占用率100%。。。我勒个去。。。不知道这到底是谁的锅,硬盘之前是在黑群晖里用过的,不是性能瓶颈,网线和路由也都是之前那一套,也不会有问题。所以问题可能出在硬件、系统和raid1上面。
参照网上的评测和别人的文章就能看出,大家很多都提了一个情况,就是跑不满千兆带宽。而raid1与系统内存的关系我没有找到非常权威的解释,只在一篇文章里找到介绍里有这么一句话“对内存的要求有略微的提高”,原话可能不是这样说的,因为是半夜睡不着觉翻网页的时候看到的而且已经过去差不多一个月了,但表达的就是这个意思。所以这也不应该是占满内存的理由吧。。。心想慢点就慢点,然鹅事情也并没有这么简单,安装完最新版系统之后,习惯性的安装了百度云(习惯重要文件两边同步,百度云里留个备份)。但就是这个需求也不给我满足。插件是装上了,但是登录不上,看了一眼贴吧果然,很多人都抱怨。随手找了铁威马的官群,得到的答复是还在和百度协商。。。额。。。我有点懵,如果没记错openwrt好像也有百度云插件,这些插件不会也是和百度达成过什么共识吧。。。毕竟界面比较简单,猜测这类插件属于大神们随手写来用的。最后无奈过了退货期,送的耳机包装也让我给扔了,干脆不忍了,挂咸鱼卖掉,老老实实买群晖。本来想来大妈这写个F2 220晒单的,结果用着太糟心了,根本写不动,来两张图纪念下吧。。。纪念我一个多星期损失了两百多。
对F2-220总结下,本人使用时间不长,但让我不能忍的原因和满意的地方也和大家分享下 ,先说我个人忍不了的不满吧:
跑不满千兆带宽的速度,甚至一般的速度都稳定不下去;
插件不完善,主要是百度云,不知道现在解决没有;
插件的文件管理混乱,不知道这样形容对不对,让我有这种体验的原因是百度云插件登录时会有一个验证码,登录失败后,在“admin”文件夹中居然还有这个验证码的图片。
满意的地方最主要的是性价比吧。。。群晖和威联通相近配置都在2K向上了;金属外壳好评,如果喜欢这个外壳又不喜欢它的系统的话其实可以考虑那它上黑群晖,甚至windows(已经有大神这么做过了)VGA接口都已经在内部预留了12pin的VGA接口母座,铁威马也是U盘引导的系统,把引导U盘换成黑群晖的引导据说也可以网上有教程,而我没有这么做的原因就是感觉本末倒置;最后就是内网穿透把,铁威马的内网穿透方式也很奇特,在网页输入ID(这个ID是在系统里设置的,不需要注册账号就能用)就能打开管理页面,最重要的是即使是移动这样的局域网级别的宽带也能很快打开。
入手DS218+果断把硬盘装上,晒单什么的网上一大堆,在加上我这即为“真实”的拍照水平就不班门弄斧去一步步发开箱了,直接上运行图。
宿舍桌子有个挡板会影响网线,K3C的大包装盒高度正好。虽然外壳相比F2-220变成了塑料,但是质感也不错。路由是烂大街的网件R6300 V2,保证千兆带宽(你说K3C哪去了?K3C拿回家用了,毕竟信号强,宿舍里用不到),外壳有点花贴了碳纤维纸对付下。DS218+上面放的是Gear S2的充电器,虽然之前写过Ticwatch2的晒单,但是在一年后的某一天正面刚地板后花屏了 ,无奈换了S2,其实这货也不错,虽然不是最新款但用起来依然流畅,不多说了,再说跑题了。
由于之前一直用的就是群晖,所以非常轻松得搞定了系统安装和文件导入。但是测试quickconnect的时候尴尬出现了。。。
其实之前知道群晖quickconnect因为服务器不在大陆境内,即使是白群也不稳定。这时候翻出去年买的花生棒,虽然映射了端口,但是2G的流量。。。emmm。。。不开心,虽然可能2G不一定用得完,但有种被限制住手脚的感觉就是让人很不爽。淘宝搜内网穿透产品也是琳琅满目,但一样价格不菲,有的月付30+,但是只是月费,还要另外付设备的价钱,一个类似花生棒pro造型的方盒子,最多添加5条映射规则,价格240+
而且也害怕平台跑路,盒子本身肯定也不值多少钱,所以。。。还是不放心这类产品。
梅林路由自带的ddnsto插件虽然能内网穿透,也非常方便,而且还免费,但是一来也怕万一人家的服务器不想再免费提供了,二来映射了群晖app对应端口号之后还是无法连接,可能是因为即使是在电脑上使用也要先跳转一次官方页面验证有关吧(猜测)。所以ngrok和frp两种内网穿透就进入了我的视线。但说实话我并没有专门对比谁好谁坏,单纯是看到frp顺眼而已。。。可能就是传说中的佛系选择吧.。。。
搭建FRP服务器
做FRP内网穿透最重要的两个东西,一个是有公网IP的服务器,另一个就是客户端了(废话。。。 )。服务器如果自己不想搭的话其实网上百度下有很多免费提供给大家的,多百度百度都能搜的到。但是如果不放心,或者想自己练手(我就属于后者),可以自购VPS服务器,我选择的是RAKsmart家的,对流量没什么限制(200T流量限制。。。跟没限制也没啥区别了。。。),好像选择搬瓦工和vultr的比较多,可能相对更可靠吧。我选择的这家好像比较小众,价格相对不高(可能有更便宜的,懒得找了),之前一直是关注着搬瓦工,但是最便宜的配置一直没货,懒得等了就随手找了个便宜得,不过内存也小了一倍。
服务商选择方面我就不多说了,只要有公网IP,配置不用多高就OK。然后域名有更好,没有也能用,毕竟这玩意不贵,我60+块钱买了5年的。
完成VPS购买后,以我的RAKsmart家的为例,其他家的可能不一样。首先使用官方提供的账号密码登录控制面板,右下角有个resinstall按钮,按下就能选择自己需要用的系统,我这里选的是Cent OS 6.4,选择完之后会提供一长串随机生成的密码(好像好一点的服务商会可以再控制面板直接设置root密码)。系统默认开放ssh登录,这时候需要用的两个软件:putty和Win SCP
在putty登录系统以root用户登录,密码就是刚才装系统的时候那一长串密码。面对这**的密码第一件事就是修改密码,命令就是passwd,输入新密码就可以忘掉那**的一长串密码了。
然后FRPS(就是FRP的服务端程序)的搭建参考下面这个帖子的教程即可。
不过需要注意,帖子中提到的第一条命令wget xxx 在cent os系统中好像默认是不支持的,这时候需要先运行yum -y install wget 这条指令,之后一路y同意安装即可。
这时候putty就可以关掉了,开始使用win SCP。
注意将文件协议选择为SCP,主机名填写你的ip地址,用户名root,密码是你自己设置的密码(不过连接的时候还是要求再输入一次)。
这时候就进入了我们的vps的文件系统了。对于和我一样对linux并不怎么了解的朋友可能不知道自己到底在哪。。。刚才的frps安装到哪里去了。通常如果和我一样使用上面帖子里脚本一键安装的话安装路径和里面的文件内容是这样的:
除了frps.ini文件以外基本没有需要动的。双击frps.ini里面的内容就是按照上面安装配置里面设置的。开头带#的都是备注影响视线的话可以删掉的,删掉后内容基本上就是这样的,我对每条内容加了备注,双斜杠后面的内容是介绍。
[common]
bind_addr = 0.0.0.0 //不用管
bind_port = 7000 //你的连接端口,可以自定义设置成其他的
dashboard_port = 7500 //dashboard端口 一样可以自定义
dashboard_user = xxx //dashboard登录时的用户名
dashboard_pwd = 4xxx //dashboard登录时的密码
authentication_timeout = 0 //这条是另外添加的,具体用处下面说
vhost_http_port = 8800 //http端口号
vhost_https_port = 8443 //https端口号
log_file = ./frps.log //日志文件,不用管
log_level = info //日志记录等级,可以不管
log_max_days = 3 //记录几天的日志,超过这个天数的日志会自动删除
privilege_mode = true //特权模式,当然打开
privilege_token = xxx //特权码,自定义 要记住
max_pool_count = 200 //我也不知道是啥可以不管
这里特别提一下的是authentication_timeout = 0这条命令,通常直接生成的是不带这条命令的,它的默认值是900。在官方说明中有这么一段
需要注意的是 frpc 所在机器和 frps 所在机器的时间相差不能超过 15 分钟,因为时间戳会被用于加密验证中,防止报文被劫持后被其他人利用。
这个超时时间可以在配置文件中通过 authentication_timeout 这个参数来修改,单位为秒,默认值为 900,即 15 分钟。如果修改为 0,则 frps 将不对身份验证报文的时间戳进行超时校验。
如果时间不同步问题导致连接失败,可能是服务器和客户端时间不同步导致的,这时候如果不想修改时间的话就加入这一句命令,把超时时间设置为0即可。完整说明在这里
修改完配置文件点开win scp的这个按钮点开控制台,输入 /etc/init.d/frps restart点执行把程序重启一下就OK了
服务端程序提供了以下几组功能:
运行程序: /etc/init.d/frps start
停止程序: /etc/init.d/frps stop
重启程序: /etc/init.d/frps restart
运行状态: /etc/init.d/frps status
配置程序: /etc/init.d/frps config
程序版本: /etc/init.d/frps version
进行到这里还没有结束,因为程序用到的端口,在我使用的cent os6.4里面默认是没有放行的,需要把用到的端口全部打开,以打开7000端口为例,按顺序运行下面的命令即可
/sbin/iptables -I INPUT -p tcp --dport 7000 -j ACCEPT
在我的程序中总共用到了7000、7500、8800和8443几个端口。当然,除了这几个外,还需要在开放几个其他端口用于客户端连接。运行放行端口的指令后,保存设置后重启防火墙,使用下面两条命令。
/etc/rc.d/init.d/iptables save
/etc/rc.d/init.d/iptables restart
这样服务器的配置基本就完成了。
打开浏览器输入VPS的IP地址或域名:7500(假设frps.ini文件中dashboard_port 的参数设置为7500)输入上面设置的用户名和密码,就能看到dashboard了,上面会有各个连接的信息。
梅林客户端的软件非常直观,配置好接口参数就一切OK。frpc插件要求虚拟内存,因此需要挂载U盘配置虚拟内存,插件内解释的也很清楚,就不在这赘述。
以我映射的一个单盘黑群晖为例,5000端口映射到VPS的5557端口,5001端口映射到5657端口,443端口映射到5757端口。
5000端口为群晖的网页管理和app的连接端口,5001位https协议的连接端口,443端口为dsphoto的端口号,因为我自己主要用到的是这几个功能,所以暂时只映射了这几个端口。群晖的完整的移动应用端口使用情况如下图:
套件端口号如下:
根据自己需用用到的程序进行相应的端口号映射即可。
完成客户端配置后,dashboard内就能看到相应连接了
按照远程端口号,比如我的5557映射了群晖的5000端口,同时可以在网页和app端使用
在dsfinder中地址栏输入域名或ip:端口号,设置好账号密码,就能连接了
总结
写这篇文章的软件环境为服务器端Cent OS 6.4,FRPS版本16.0,路由为R6300 V2 梅林7.7 FRPC插件版本16.1,如果条件允许客户端和服务器的软件版本相同时最好的。
写这篇文章的目的主要是提供给对黑群晖内网穿透和饱受白群quickconnect连接失败摧残的无公网IP的朋友一个思路,对过程描述相对详细,可能对大神来说很多都是废话。我以一个小白的角度来操作是面对的一些问题给和我一样对linux和网络技术不太了解的朋友写的一套流程,有不专业的地方甚至错误的描述还望大神们轻喷并指正。
Gravityman
校验提示文案
slliy
校验提示文案
可爱的排骨
校验提示文案
Y0FQ
校验提示文案
飞翼
校验提示文案
gsgl
校验提示文案
g00k01
校验提示文案
p1y1c1
校验提示文案
EV_SM
校验提示文案
善良的海盗
校验提示文案
hello浩子
校验提示文案
rqrq0601
校验提示文案
一只大鱼头
校验提示文案
神龍
校验提示文案
liusuxin0913
校验提示文案
[已注销]
校验提示文案
老友粉三两加二两
然后群辉自带的DDNS,路由器映射一下,搞定了。。
校验提示文案
韶华永继_wx全拼
校验提示文案
jvcdhjvxty
校验提示文案
木马色
校验提示文案
liusuxin0913
校验提示文案
忙碌的小面包
校验提示文案
两个字
校验提示文案
Nukedown
校验提示文案
攒机指南
校验提示文案
FebIdiot
校验提示文案
神龍
校验提示文案
jvcdhjvxty
校验提示文案
Nathan1983
校验提示文案
马书书
校验提示文案
12ERS如风
校验提示文案
MichaelHu
校验提示文案
包子好好说说
校验提示文案
Robzombie
校验提示文案
一只大鱼头
校验提示文案
金大旺
校验提示文案
loongman80
校验提示文案
gsgl
校验提示文案
飞翼
校验提示文案
飞翼
校验提示文案