利用 frp 实现外网访问黑群晖 NAS
侧边栏壁纸
  • 累计撰写 329 篇文章
  • 累计收到 3,508 条评论

利用 frp 实现外网访问黑群晖 NAS

秦大叔
2017-07-24 / 18 评论 / 38,596 阅读 / 正在检测是否收录...

  frp是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。也就是说,利用frp,在家里搭建的黑群晖,即便没有公网IP,也能在任何有互联网的地方访问到。

黑群晖:要知道什么是黑群晖,先要知道群晖就是网络存储设备的一个品牌,说白了就是一台低功耗主机挂一个或多个大容量硬盘,卖那么贵的价格不过是有一个用linux修改的专用系统和一系列配套服务。那么,自己DIY一台主机装个破解版的群晖系统就是黑群晖啦。

  不过要实现这一目标,先得有一个具备公网IP的VPS或云主机,虽说还是离不开公网IP,但这总比找宽带运营商要个公网IP简单多了。这个方法的缺点也显而易见,访问速度在一定程度上受限于VPS的性能(当然,还要受限于你的宽带速度,局域网速度,黑群晖性能等等)。比如我用Linode那个5美元/月的VPS做frp,访问自己的黑群晖就额外具备修身养性、培养耐心的功效。如果能换个阿里云或者腾讯云之类的国内主机,速度想必会快不少。反正,能用钱解决的问题都不是问题,问题是我没钱,解决有无问题才最最重要的。

  frp服务器端的配置:
  1.根据自己主机的操作系统下载对应的frp版本,我Linode的VPS用的是Centos7,所以下载的是linux_amd64。截至我发文止,frp的最新版是0.13.0,可以到https://github.com/fatedier/frp/releases查看frp的最新版本,如有更新版本,把下面代码中的版本号(蓝字部分)改成最新的版本号就行了。新手不熟悉操作,直接复制粘贴我的代码用0.13.0版frp也没啥问题。

wget https://github.com/fatedier/frp/releases/download/v0.13.0/frp_0.13.0_linux_amd64.tar.gz

  2.使用tar指令解压tar.gz文件

tar -zxvf frp_0.13.0_linux_amd64.tar.gz

  3.进入 frp 目录

cd frp_0.13.0_linux_amd64

  4.删除不必要的客户端文件

rm -f frpc frpc_full.ini frpc.ini

  5.配置服务器端文件

vi frps.ini

  说起来真是不好意思,执行vi frps.ini命令后,完全不知道如何下手。好在VPS装了宝塔面板,可以直接找出frps.ini这个文件进行编辑……

[common]
bind_port = 7000
vhost_http_port = 8080
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = 123456
max_pool_count = 5
authentication_timeout = 900
subdomain_host = qfsyj.com
[ssh]
listen_port = 6000
auth_token = 123321

  简单说明下这个配置文件,详细配置可以参见官方中文文档:
[common] 必填的
bind_port Frp 服务端口(可自定义)
vhost_http_port http 访问端口(可自定义)
dashboard_port dashboard 界面端口
dashboard_user 登录 dashboard 用户名
dashboard_pwd 登录 dashboard 密码
max_pool_count 最大连接池数量
authentication_timeout 超时验证时间
subdomain_host 自定义二级域名
[ssh]
listen_port ssh 访问端口
auth_token 用户身份认证

  6.启动服务器端frp

./frps -c ./frps.ini

  启动成功应该是这样:
请输入图片描述

  在配置frp客户端之前先说下黑群晖的相关设置:在我设置frp成功后,把黑群晖(产品型号:DS3615xs,DSM版本:DSM 5.2-5592 Update 1)格盘重装打算重新配置一次frp,结果怎么都装不进frp,折腾许久才自己找到问题所在,累!重装系统后的黑群晖,只能看到usbshare1这一个文件夹,下载frp总出错,被困扰许久,网上也搜不到解决办法,差点因此放弃折腾黑群晖……
请输入图片描述

  记得重装之前,有个home文件夹,下载的frp就在home文件夹里,但是重装后就没看到这个home文件夹了,反复重装几次都没有,回头去翻之前看过的黑群晖安装教程,也并没谁提到过这home文件夹,真不知道当初那个home文件夹我是怎么弄出来的……最后还是无意间发现“用户账户–高级设置”下有个“启动家目录服务”。
请输入图片描述

  家?home?试着启动看看,结果home文件夹出来了,终于能下载frp了……你妹的(内心是泪流满面的画面)!
请输入图片描述

  如果是用SSH来配置黑群晖,记得在“控制面板–终端机和SNMP”中“启动SSH功能”,端口可以按自己的喜好修改。
请输入图片描述

  黑群晖frp客户端的配置(我是用SSH连接黑群晖进行配置):
  1.我看的教程都是给客户端装linux_386版本,我开始也是照着教程装这个,但后来不知怎么就装成linux_amd64版本,用着也没发现什么异常就懒得改了,教程也按这个版本写。其实黑群晖下载安装frp客户端跟前面装服务器端都差不多,用admin账号登陆后下载frp。

wget https://github.com/fatedier/frp/releases/download/v0.13.0/frp_0.13.0_linux_amd64.tar.gz

请输入图片描述

  下载完成后,可以看到黑群晖的home文件夹下多了个frp_0.13.0_linux_amd64.tar.gz文件。
请输入图片描述

  2.使用 tar 指令解压 tar.gz 文件

tar -zxvf frp_0.13.0_linux_amd64.tar.gz

请输入图片描述

  3.进入frp文件夹

cd frp_0.13.0_linux_amd64

  这个命令执行后SSH界面没有任何反应,不用管它,继续执行下一个命令就是。

  4.删除服务器端文件。

rm -f frps frps_full.ini frps.ini

请输入图片描述

  5.编辑frpc.ini文件对客户端进行配置

vi frpc.ini

  呃,还是不会在命令行下修改文本,直接在黑群晖里打开这个文件修改。
请输入图片描述

  6.配置文件如下

[common]
server_addr = 172.104.113.219
server_port = 7000
auth_token = 123321
pool_count = 1
[ssh]
type = tcp
local_ip = 192.168.2.136
local_port = 22
remote_port = 6000
[nas]
type = http
local_port = 5000
subdomain = nas
[web]
type = http
local_port = 80
subdomain = web
请输入图片描述

  简单解释:
[common] 必填的
server_addr 服务器端公网IP
server_port frp 服务端口,和服务器端 bind_port 一致
auth_token 和前面服务器端 [ssh] auth_token 一致
pool_count 连接池数量
[ssh]
type 服务类型(tcp、http、https、udp)
local_ip NAS 本地局域网内网 ip
local_port NAS 开启 ssh 服务端口号,默认 22
remote_port 服务器端 ssh 端口,和服务器端 [ssh] listen_port 配置一致
[nas] NAS 管理界面
subdomain 二级域名
type = http 服务类型为 http
local_port NAS 默认端口 5000
[web] NAS web Station 服务,没用可以不用设置
type = http 类型为 http
local_port NAS web 服务端口
subdomain 二级域名

  这里要特别说明的是,二级域名不要用全称,比如我的黑群晖是用nas.qfsyj.com这个二级域名,只要subdomain = nas就行了。一开始我用subdomain = nas.qfsyj.com,frp总是报错,又被困扰许久……

  7.启动frp客户端

./frpc -c ./frpc.ini

  启动成功的画面应该是这样:
请输入图片描述

  现在可以你的二级域名加端口号访问黑群晖了,比如我的http://nas.qfsyj.com:8080http://web.qfsyj.com:8080也可以打开,只是鉴于这访问速度,没勇气在黑群晖上搭个网站。折腾至此,如果已经顺利实现内网穿透,应该会发现得开着两个SSH窗口才行,关闭就等于关了frp。那么,现在就要用到后台运行命令了,服务器端执行:

nohup ./frps -c ./frps.ini &

  客户端执行:

nohup ./frpc -c ./frpc.ini &

  至于frp的自启动,我还没搞定,服务器端应该不难,但是黑群晖怎么设置自启动有点棘手,因为我这个版本的黑群晖貌似没有开机启动服务的设置。

  2017.07.25补充:本来用的挺好的,突然就弹出个窗口提示“您没有权限使用本项服务”,按确定就被踢回登陆界面,重新登陆又说我没有权限,根本没法使用,但是用局域网网址登陆就没问题。经百度,得知只要在“控制面板–安全性”里把“忽略IP检查来加强浏览器的兼容性”打勾应用就可以了。

  参考文章:《如何用 Frp 实现外网访问群晖 NAS》,感谢该文作者提供回复指导!

本文共 1776 个字数,平均阅读时长 ≈ 5分钟
1

打赏

海报

正在生成.....

评论 (18)

取消
  1. 头像
    song Lv.1
    Windows 10 · MicroSoft Edge
    沙发

    很详细呢

    回复 删除 垃圾
    1. 头像
      秦大叔 Lv.6 作者
      Windows 10 · MicroSoft Edge
      @ song

      希望对您有用

      回复 删除 垃圾
      1. 头像
        song Lv.1
        Windows 10 · MicroSoft Edge
        @ 秦大叔

        特意来感谢下

        回复 删除 垃圾
        1. 头像
          秦大叔 Lv.6 作者
          Windows 10 · Google Chrome
          @ song

          不用客气

          回复 删除 垃圾
  2. 头像
    kakaxi Lv.1
    MacOS · Google Chrome
    板凳

    很棒,跟着操作已经配置成功了,感谢

    回复 删除 垃圾
    1. 头像
      秦大叔 Lv.6 作者
      Windows 10 · MicroSoft Edge
      @ kakaxi

      能用得上就行,不枉我写那么多字。

      回复 删除 垃圾
  3. 头像
    老陳网志 Lv.1
    Android Pie · Google Chrome
    地毯

    哈哈学习了!也用上了!最后用的没费frp映射群晖,实现的外网访问

    回复 删除 垃圾
    1. 头像
      秦大叔 Lv.6 作者
      Windows 10 · Google Chrome
      @ 老陳网志

      能用上就好

      回复 删除 垃圾
  4. 头像
    djcrc Lv.1
    Windows 8.1 · Google Chrome
    第4楼

    为什么在宝塔的服务端都启动不了?

    回复 删除 垃圾
    1. 头像
      秦大叔 Lv.6 作者
      Windows 10 · Google Chrome
      @ djcrc

      不知道是不是宝塔的原因,我没碰到启动不了的问题,但是碰到过运行一会儿就自动停止服务的事。因为也不怎么用frp了,也没有再深究这个问题,建议删了宝塔试试。

      回复 删除 垃圾
  5. 头像
    qwex888 Lv.1
    Windows 10 · Google Chrome
    第5楼

    如何获得二级域名?或者怎么设置?

    回复 删除 垃圾
    1. 头像
      秦大叔 Lv.6 作者
      Windows 7 · Google Chrome
      @ qwex888

      这个问题建议百度下购买域名、设置域名的相关内容,几句话说不清哦。如果只是家用,我个人觉得没必要专门弄个域名,因为外网访问还是得域名+端口号,我觉得还不如IP地址+端口号来得顺眼。

      回复 删除 垃圾
  6. 头像
    小河 Lv.1
    Windows 10 · Google Chrome
    第6楼

    可以用宝塔里面自带的frp插件然后省略前6的步骤嘛。

    回复 删除 垃圾
    1. 头像
      秦大叔 Lv.6 作者
      Windows 10 · Google Chrome
      @ 小河

      我没这么搞过,理论上是可以的。

      回复 删除 垃圾
      1. 头像
        小河 Lv.1
        Windows 10 · Google Chrome
        @ 秦大叔

        收藏了很久,今天组装好了们可以用,用的bt自带的frp省略了前面的步骤

        回复 删除 垃圾
        1. 头像
          秦大叔 Lv.6 作者
          Windows 10 · Google Chrome
          @ 小河

          恭喜啊!

          回复 删除 垃圾
  7. 头像
    归臧 Lv.1
    MacOS · Google Chrome
    第7楼

    之前也折腾过。后来直接找电信的要了公网IP,舒服了。

    回复 删除 垃圾
    1. 头像
      秦大叔 Lv.6 作者
      Windows 10 · Google Chrome
      @ 归臧

      是的,玩NAS还是得有个公网IP才舒服。

      回复 删除 垃圾