前言

手上有一台猫盘刷的群晖,虽然已经洗白并且能稳定使用,但是从来没去尝试过群晖官方的QuickConnect,一是因为不好意思,二是因为听说QC的速度也并不快。没有公网ip的情况下,我也尝试过zerotier打洞的方式,但是跨运营商访问成功率很低并且速度也很慢,最终入了frp的坑。

通过frp中转的方式有两种,一种是在自己有公网ip的服务器上搭建,另一种是用第三方的服务。因为贫穷, 我选择了第二种。

各个平台可能操作方法略有不同,我使用的是SakuraFrp,虽然有非常丰富的文档,但是实际操作中仍然遇到了一些问题,就把自己踩过的坑总结一下。

注册账户

注册账户这一点没有什么难度,但是有的平台有国内的服务器做节点,根据 《中华人民共和国网络安全法》 及相关法律的规定,用户不提供真实身份信息的,网络运营者不得为其提供相关服务。如果你能接受国外的节点(不一定慢很多),那么不实名也是可以的。

配置DSM面板

1、登陆DSM之后,打开控制面板——网络——DSM设置,记住DSM端口,通常http端口为5000,https端口为5001 。

frpdsmport

建议选择穿透https,原因有二,一是因为部分节点屏蔽http传输,二是因为可能会引起某些不必要的麻烦。

2、点开控制面板——应用程序——终端机和SNMP,启用ssh功能并记下端口,默认22 。

frpdsmssh

安装frpc

1.连接ssh,常用软件如PuTTY。首次登陆可能会有个安全性提示,忽略掉就好了。点击Open,然后输入登陆DSM的账号密码,输入密码的时候不会显示。

2.获取root权限,输入命令sudo -i,然后再次输入密码,可以看到你的Nas名称前面由admin变成了root。

3.确认系统架构。执行uname -m命令,可以看到大猫群晖的架构是aarch64,其它设备请参考官方文档。

4.安装frpc。安装的方法有两种(建议第二种):

①第一种是SakuraFrp提供的懒人版命令,如果你按照步骤2获取了root权限则不必输入sudo。

sudo bash <(curl -Ls getfrp.sh)

第一种方法确实简便,有中文指引,但是我没能安装成功,所以用的方法二。

frpinstall

②进入/usr/local/bin目录并下载文件,大猫群晖可以直接使用如下代码(两条命令先后使用):

cd /usr/local/bin
wget -O frpc https://getfrp.sh/d/frpc_linux_arm64

注意:wget后面是杠欧而不是杠零,官方文档的字体看起来非常像杠零,我就浪费了许多时间(哭)

5.设置正确的权限并检查输出(同样获取了root权限的可以不输入sudo):

sudo chmod 755 frpc
sudo ls -ls frpc
md5sum frpc /检查文件MD5是否一致

6.输入frpc -v查看是否安装成功,如果显示了对应的版本即为成功。

frpinstall2

创建隧道

根据你的网络选择一个穿透节点,如果你同时使用多个运营商(如宽带电信手机移动)建议选择多线。

frpadd1

如图操作,本地端口号为你DSM设置的https端口号,默认为5001。远程端口建议自动选择,因为手动输入的可能已经被使用。

配置服务

1.如果你是DSM5/6版本(大多应该是6),回到ssh客户端,执行下面命令:

vim /etc/init/frpc.conf

2.按E进入编辑模式。

frpEdit

3.按一下i键,左下角会显示--INSERT--或者--插入--的字样。

4.复制粘贴下面的内容,注意要把启动参数换成自己的访问密钥+隧道id。

description "SakuraFrp synology frpc service"

author "FENGberd"

start on syno.network.ready
stop on runlevel [016]

respawn
respawn limit 0 5

exec /usr/local/bin/frpc -f 这里替换成您的启动参数 如xxx:1234

5.按一下Esc键,然后输入:wq,就保存并退出。

测试服务

执行下面的命令测试frpc能否正常运行(不要#):

# start frpc
# tail /var/log/upstart/frpc.log

如果看到途中的两个提示,则frpc已经安装完成并可以正常使用了(这里借用一下官方文档的图):

frpstart

现在您可以通过 https://节点域名:远程端口 的方式访问 DSM 面板,也可以使用 https://日志中标出的连接方式 访问,推荐使用节点域名。

绑定域名

平台给的节点域名比较长且不好记,如果你有自己的域名,可以解析自己的域名。以腾讯云为例,添加一个CNAME解析,记录值为节点域名。

frpddomain

此外,腾讯云可以免费申请ssl证书,申请一个ssl证书以确保https访问正常。

总结

最开始一直没尝试frp是因为看到文档就觉得复杂,事实上昨晚操作过程中也如此觉得,尤其是杠欧那里,安装失败了好几次,或者安装错了版本最后rm -rf。但是弄好了之后发现其实也没什么难度,仅以此文来总结我使用过程中踩过的坑,避免各位再次踩坑浪费时间。

如果你没有公网ip但是外网访问群晖的话,frp(尤其是自建)应该是一个非常棒的选择。