Unraid 篇二:Unraid使用frp内网穿透为docker应用配置远程访问,实现公网访问

2020-03-04 17:46:48 23点赞 179收藏 16评论

创作立场声明:把最近的对外网访问的研究方案分享出来,针对与Unraid这一个Nas系统平台,和大家探讨交流。



 使用Unraid的Nas系统已有一个多月,对其强大的可定制能力以及对虚拟机和docker的各种硬件直通,喜爱不已。在Unraid系统中搭建了各种Docker:FileBrower私有云、Jellyfin媒体中心、typecho博客、MySQL数据库、TransmissionPT下载器、Nginx代理服务器Docker、Lychee相册。其中在Nginx的Docker下实现了我的个人小站导航页、可道云、归档管理。搭建之后,不满足局域网中使用,便找一套能实现公网访问一些控制页面的方案。
 Frp内网穿透是一款非常优秀的局域网穿透软件,其原理是,通过有公网ip的服务器作中转,将数据转递给局域网中的各种服务,实现外网访问局域网中的各种服务。家里没有IPV4公网IP(IPV6有公网ip,但是目前没有折腾),无法使用DDNS的方案,便考虑内网穿透的方式,内网穿透的方式有很对,其中FRP配置简单,有比较好的稳定性和可靠性,因此确定了以FRP为主的内网穿透。在Unraid平台下,实现内网穿透功能的方案:Unraid+OpenWrt旁路由+Frp插件。此方案分为三步:1.unraid下安装原版OPenwrt虚拟系统作为旁路由;2.在OpenWrt里安装中文包和frp插件;3.配置frp;

 在上一篇文章里,集中探讨了Unraid下安装Openwrt虚拟机,以及对OpenWrt的初始配置,使其正常访问外网。Unraid使用frp内网穿透为docker应用配置远程访问,实现公网访问

Unraid 篇一:Unraid虚拟单网卡安装openwrt做旁路由,以及OpenWrt的优化配置宅家有N种可能,如何让学习成为一种可能?关注#宅家学习技巧#,原来,在家也能高效学习和办公!>活动详情戳这里<分享优质学习资源/经验/技巧,赢效率好物! 使用Unraid的Nas系统已有一个多月,对其强大的可定制能力以及对虚拟机和docker的各种硬件直通,喜爱不已。在Unraid系统中搭建了各种D江枫雨| 20 评论25 收藏277查看详情

在此基础上,本文主要阐述Frp客户端插件的安装,以本地事先搭建的Piwigo相册为例,对frp客户端进行配置,从而实现了对Piwigo相册的外网访问,此方法可扩展到任意本地的docker应用,不仅仅限制于http/https通信协议,也适用于tcp/udp协议的外网远程访问。

必要的准备

 1. 参考第一篇文章搭建好OpenWrt虚拟机
 2. 下载OpenWrt的frp插件包:百度网盘:re1v
 3. 使用工具:WinSCP(如果没有,百度下载一个)

注册免费的Frp服务账号

 由于Frp内网穿透需要配合有公网的服务端使用,因此,找一个稳定的frp服务器是很关键的。推荐一家使用过的免费的Frp服务端,作为入门使用。

Sakura Frp 内网穿透 是一家免费提供Frp内网穿透服务的网站,目前处于测试阶段,其下拥有十几个国内和国外的机房,普通用户可以免费创建5条frp隧道,每条拥有10Mbps的上行和10Mbps的下行,也就是平均1M/s多的上传和下载的速度,这带宽只要用来跑视频类,绰绰有余。初始有5g的流量,每天签到随机1~5g。流量用完之后。会限制到4mpbs,而且没有流量限制,跑个网站、图片类的远程访问,稳稳地没问题。 链接此进行注册 Sakura Frp

Unraid使用frp内网穿透为docker应用配置远程访问,实现公网访问

Unraid使用frp内网穿透为docker应用配置远程访问,实现公网访问

 1. 注册完成之后,登录进去,点击'每日签到'获取流量,点击'创建隧道'来创建一条frp隧道,用于后面使用。

Unraid使用frp内网穿透为docker应用配置远程访问,实现公网访问

 2. 该网站有十几台服务器,由于国内的服务器如果走http或这https的流量(包括Tcp下的http
/Https流量),是需要实名的才能正常使用,而实名需要大概5元的人工费,国外的服务器没有这个限制,不需要实名。因此,建议选择国外的服务器作为初次尝试。考虑到香港和日本的服务器并不稳定,建议使用'俄勒冈'的服务器。

Unraid使用frp内网穿透为docker应用配置远程访问,实现公网访问

 3. 选好服务器之后,接下来按图所示进行配置。其中隧道名称自己任意填写,本文以实现piwigo相册为例,此处填写'MyPiwigo'; 隧道类型有5种,其中TCP的配置最简单,而且Http/Https都是以TCP为基础的,因此TCP隧道适用于常见的大多数服务,例如远程桌面、SSH、访问Unraid的后台管理界面、piwigo相册的界面、OpenWrt软路由的界面等;'本地地址和本地端口'填写的是自己局域网中要访问设备的内网ip和设备的内网端口。例如,本文piwigo相册的内网ip是:192.168.5.101,端口是:80,对应的http访问(如果是https访问,对应的端口是443)。'远程端口'是上一个步骤选的'俄勒冈'的服务器的端口,这个端口是有一个可选的范围:10240~65535,这个端口自己任选,但不能和已有的重复,尽量大一点。本文使用:20485;'绑定域名'不填。如下图所示:

Unraid使用frp内网穿透为docker应用配置远程访问,实现公网访问

 4. 继续配置'高级设置',其中'加密方式和压缩数据'默认;'URL 路由、Host 重写、请求来源'都不填;'访问密码',自己任意输入一段字符串即可,最后点击'完成创建'。如下图所示:

Unraid使用frp内网穿透为docker应用配置远程访问,实现公网访问  点击'隧道列表',查看创建好的隧道。

Unraid使用frp内网穿透为docker应用配置远程访问,实现公网访问

 5. 点击'配置文件',选择'俄勒冈'服务器,查看生成好的配置文件,此网页不要关闭,放到一边,后面要用。如下图所示:

Unraid使用frp内网穿透为docker应用配置远程访问,实现公网访问

  至此,注册免费的Frp服务账号及配置隧道完成。

OpenWrt旁路由安装Frp插件

  1. 解压之前下载好的frp插件包(百度网盘:re1v)
解压后的frp插件包有一个文件夹和两个'ipk'为后缀的文件。其中两个'ipk'文件是OpenWrt的插件,frp程序包文件夹里是frp的核心程序。两个'ipk'文件中,其中'luci-app-frpc_1.2.1-1_all.ipk'是Frp在OpenWrt的UI管理插件,'luci-i18n-frpc-zh-cn_1.2.1-1_all.ipk'是这个UI插件的中文包。核心程序需要有两类,一类以'amd64'标识,一类以'386'标识;一般来说,intel平台且OpenWrt版本是32位的用'386'标识的frp程序,后面要用。不过具体是哪一种,后面可以尝试。

Unraid使用frp内网穿透为docker应用配置远程访问,实现公网访问

  2. 打开之前创建好的OpenWrt后台管理界面,安装frp插件。在菜单栏依次点击'系统'->'SofeWare'->'Upload Package...'进行手动安装frp插件。

Unraid使用frp内网穿透为docker应用配置远程访问,实现公网访问

  点击'浏览',找到两个'ipk'文件的位置,依次安装这两个'ipk'文件。首先安装'luci-app-frpc_1.2.1-1_all.ipk',点击'install'。遇到下面所提示的错误不同担心,刷新一下页面继续安装。然后安装'luci-i18n-frpc-zh-cn_1.2.1-1_all.ipk'。

Unraid使用frp内网穿透为docker应用配置远程访问,实现公网访问

Unraid使用frp内网穿透为docker应用配置远程访问,实现公网访问

  3. 然后刷新一下页面,在菜单栏依次点击'服务'->'FRP',出现下图所示:

Unraid使用frp内网穿透为docker应用配置远程访问,实现公网访问

  [提示]如果此处报错,提示:'/usr/lib/lua/luci/dispatcher.lua:938: module 'luci.cbi' not found:'字样,经测试有可能是使用国内源更新Openwrt造成的,建议使用下面更新源恢复到原来的,然后点击'Update Lists...'重新更新。如果还不起作用,建议参考第一篇,重新安装OpenWrt虚拟机,然后不使用国内源!!!(猜测那个国内源是64版本的,而这个Openwrtshi 32版本的,不兼容造成的)

src/gz openwrt_core http://downloads.openwrt.org/releases/19.07.1/targets/x86/generic/packages
src/gz openwrt_base http://downloads.openwrt.org/releases/19.07.1/packages/i386_pentium4/base
src/gz openwrt_luci http://downloads.openwrt.org/releases/19.07.1/packages/i386_pentium4/luci
src/gz openwrt_packages http://downloads.openwrt.org/releases/19.07.1/packages/i386_pentium4/packages
src/gz openwrt_routing http://downloads.openwrt.org/releases/19.07.1/packages/i386_pentium4/routing
src/gz openwrt_telephony http://downloads.openwrt.org/releases/19.07.1/packages/i386_pentium4/telephony

  打开刚刚安装'Frp'管理界面,由于在OpenWrt系统的'/usr/bin/'目录下并没有'frpc'的核心程序,会提示'客户端文件无效',因此接下来操作是将核心程序导入到这个路径下。
  4. 打开软件'WInSCP', 按下图所示创建一个会话链接。其中'文件协议'选择'SCP','主机ip'填写OpenWrt的ip,'端口'默认22,'用户名'为'root','密码'是OpenWrt的后台登录密码。点击保存然后登录。

Unraid使用frp内网穿透为docker应用配置远程访问,实现公网访问

 5. 在WinSCP找到目录'/usr/bin/', 然后将之前解压的frp核心程序frp_0.31.1_linux_386文件夹里的'frpc'程序复制到'/usr/bin/'下。

Unraid使用frp内网穿透为docker应用配置远程访问,实现公网访问

  返回OpenWrt的Frp的UI管理页面,查看有没有显示出版本号。如果没有显示版本号,尝试解压'frp_0.31.1_linux_amd64.tar.gz', 将其中的'frpc'程序复制到'/usr/bin/'下.

Unraid使用frp内网穿透为docker应用配置远程访问,实现公网访问

  至此OPenWrt中安装frp客户端插件完成。接下来阐述如何配置frp客户端,实现外网访问。

frp客户端插件的配置

  1. 打开之前创建'俄勒冈'服务器的frp隧道,生成好的配置文件,放在一边。然后打开OPenWrt中的'服务'->'FRP'->'服务端',点击'添加',按下图所示进行配置:其中,服务器的名字任意,此处为'PiwigoServer'。

Unraid使用frp内网穿透为docker应用配置远程访问,实现公网访问

  按图全部配置之后点击'保存',然后显示如下:

Unraid使用frp内网穿透为docker应用配置远程访问,实现公网访问

  2. 打开OPenWrt中的'服务'->'FRP'->'规则',点击'添加',按下图所示进行配置:其中,'代理名字',点击自定义,然后输入任意字符,按回车确定。未标注红框的按图默认填写。

Unraid使用frp内网穿透为docker应用配置远程访问,实现公网访问

  按图全部配置之后点击'保存',然后显示如下:

Unraid使用frp内网穿透为docker应用配置远程访问,实现公网访问

  4. 打开OPenWrt中的'服务'->'FRP'->'设置',点击'常规选项',按下图进行配置。其中,勾上'已启用',服务端选择之前创建的'PiwigoServer'。最后配置完成之后,点击'保存并应用'

Unraid使用frp内网穿透为docker应用配置远程访问,实现公网访问

  至此,frp客户端插件的配置完成,接下来进行外网测试吧~

外网访问测试

  在浏览器中输入'俄勒冈'服务器:远程端口,本文的地址为:'35.160.49.136:20485',如下图所示:

Unraid使用frp内网穿透为docker应用配置远程访问,实现公网访问

  回车,测试连接情况。

Unraid使用frp内网穿透为docker应用配置远程访问,实现公网访问

  成功了~~~Unraid使用frp内网穿透为docker应用配置远程访问,实现公网访问

  至此,实现了外网访问本地'piwigo'相册的目的。大家可以尝试其他隧道线路,以及给其他本地的docker应用设置外网访问,只需要在OPenWrt中的frp插件里添加'代理规则'。

展开 收起

UGREEN 绿联 DX4600 四盘位NAS存储 (赛扬N5105、8GB)

UGREEN 绿联 DX4600 四盘位NAS存储 (赛扬N5105、8GB)

1792元起

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

2179元起

QNAP 威联通 TS-464C 4盘位NAS(赛扬N5095、8GB)

QNAP 威联通 TS-464C 4盘位NAS(赛扬N5095、8GB)

2049元起

ZSpace 极空间 Z4 4盘位 NAS存储 黑色 (J4125 8GB)

ZSpace 极空间 Z4 4盘位 NAS存储 黑色 (J4125 8GB)

2584元起

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

2190.84元起

QNAP 威联通 TS-453Dmini 4盘位NAS(J4125、8GB)

QNAP 威联通 TS-453Dmini 4盘位NAS(J4125、8GB)

暂无报价

TERRAMASTER 铁威马 F4-424 Pro 四盘位NAS(Intel Core i3、32GB)黑色

TERRAMASTER 铁威马 F4-424 Pro 四盘位NAS(Intel Core i3、32GB)黑色

3599元起

极空间私有云Z4Pro 性能版 8核16G内存 四盘位Nas网络存储服务器家庭个人云【配4T希捷酷狼硬盘】珍珠白

极空间私有云Z4Pro 性能版 8核16G内存 四盘位Nas网络存储服务器家庭个人云【配4T希捷酷狼硬盘】珍珠白

4299元起

TERRAMASTER 铁威马 F4-424 四盘位 NAS存储(Intel Celeron N95、8GB)黑色

TERRAMASTER 铁威马 F4-424 四盘位 NAS存储(Intel Celeron N95、8GB)黑色

2499元起

HUAWEI 华为 新品华为家庭存储nas家用网络存储主机扩容储存备份文件同步共享

HUAWEI 华为 新品华为家庭存储nas家用网络存储主机扩容储存备份文件同步共享

1999元起

QNAP 威联通 TS-453Bmini 4盘位NAS(J3455、4GB)

QNAP 威联通 TS-453Bmini 4盘位NAS(J3455、4GB)

1899元起

QNAP 威联通 TS-212P3 双盘位NAS(Realtek RTD1295、1GB)

QNAP 威联通 TS-212P3 双盘位NAS(Realtek RTD1295、1GB)

799元起

HIKVISION 海康威视 Mage20 2盘位NAS (4GB)

HIKVISION 海康威视 Mage20 2盘位NAS (4GB)

567元起

UGREEN 绿联 DX4600 Pro 4盘位NAS(奔腾N6005、8GB)

UGREEN 绿联 DX4600 Pro 4盘位NAS(奔腾N6005、8GB)

1846元起

QNAP 威联通 TS-462C 4盘位NAS(赛扬N4505、4GB)

QNAP 威联通 TS-462C 4盘位NAS(赛扬N4505、4GB)

1849元起

Synology 群晖 DS918+ 四盘位NAS(J3455、4GB)

Synology 群晖 DS918+ 四盘位NAS(J3455、4GB)

暂无报价
16评论

  • 精彩
  • 最新
  • 没有公网IP的悲哀 [喜极而泣]

    校验提示文案

    提交
    阿里云的学生机免费用一年了解一下,赶紧搭车去吧 [小眼睛]

    校验提示文案

    提交
    收起所有回复
  • 最近在折腾unraid,目前根据楼主的指导,基本功能还是都实现了的。但是还是有几个坑,写给之后看到的值友吧。第一就是,OpenWrt做旁路由进去过后,frpc怎么都装不上,我试了4次,不管换不换源都加载不了服务。然后作为新手的我,又去看了下LEDE,里面有自带FRP,建议客户用LEDE来做旁路由,也可以通过WinSCP升级frpc版本。第二还有个原因是,使用LEDE配置隧道的时候,会更方便,直接将网页里面的配置文件全部复制,粘贴进LEDE的自定义设置就行,然后就可以使用了 [击掌]

    校验提示文案

    提交
    frpc装不上,是因为我提供的openwrt是32位的,给的国内源是64位的,这个是我在后来写文章时复原安装过程得失误 [哭泣] ,所以总64位源一旦更新了32的openwtt就会出现问题,解决的办法最好是重新安装openwrt,不使用国内源,而且重新安装也很简单,只需要替换点openwrt的虚拟磁盘镜像即可

    校验提示文案

    提交
    国内提供的Lede确实方便。我用过一段日子的L大还有一位大佬的固件,只是不稳定,偶尔出现崩溃现象 [喜极而泣] 所以我才退而求其次,用了配置比较麻烦的官方。目前用的官方固件已经稳稳运行一个月了,每天强制关闭和重启,也没出现奇怪问题。这些我在文章开头有提及 [龇牙]

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 按照上面说的,改回初始源安装失败, [皱眉] ,重装还是失败,就这样又凌晨两点,求解

    校验提示文案

    提交
    直接用我装好的固件,见我最后一篇文章的末尾 [傻笑]

    校验提示文案

    提交
    Thanks [害羞] ,还在测试中,就是感觉我创建的Jellyfin刷不出来,还是因为太慢了 [喷血]

    校验提示文案

    提交
    收起所有回复
  • 看下来看不大懂,求解,有公网IP是不是就可以不用这么折腾?

    校验提示文案

    提交
    是的,有公网省下了frp做穿透

    校验提示文案

    提交
    收起所有回复
  • 938保存问题,可以在命令行下: opkg update和opkg install luci luci-base luci-compat这两条解决,安装后刷新就有了。

    校验提示文案

    提交
  • 在前排占个位,周末得空试试

    校验提示文案

    提交
  • 已经成功使用,效果不错

    校验提示文案

    提交
  • frpc用tcp出去安全吗?自己买个小鸡,在frps端用caddy做反代可以加ssl [赞]

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
179
扫一下,分享更方便,购买更轻松