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 Pro 4盘位NAS(奔腾N6005、8GB)

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

1799元起

ZSpace 极空间 私有云 Z4Pro 8G版 4盘位NAS存储(N97、8GB)

ZSpace 极空间 私有云 Z4Pro 8G版 4盘位NAS存储(N97、8GB)

2485.01元起

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

2599元起

ZSpace 极空间 私有云 Z4Pro 性能版 NAS存储(N305、16GB)

ZSpace 极空间 私有云 Z4Pro 性能版 NAS存储(N305、16GB)

3499元起

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

2849元起

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

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

1749元起

ZSpace 极空间 私有云 Z4Pro 16G版 4盘位NAS存储(N97、16GB)

ZSpace 极空间 私有云 Z4Pro 16G版 4盘位NAS存储(N97、16GB)

2799元起

ZSpace 极空间 私有云 Z423 旗舰版 8盘位NAS存储(锐龙R7-5825U、64GB)

ZSpace 极空间 私有云 Z423 旗舰版 8盘位NAS存储(锐龙R7-5825U、64GB)

5899元起

UGREEN 绿联 DX4600+ 4盘位NAS(赛扬N5105、8GB)

UGREEN 绿联 DX4600+ 4盘位NAS(赛扬N5105、8GB)

1999元起

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

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

2499元起

ASUS 华硕 AS6702T 4盘位NAS存储 黑色(Core2 Quad Q8300、4GB)

ASUS 华硕 AS6702T 4盘位NAS存储 黑色(Core2 Quad Q8300、4GB)

4299元起

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

3299元起

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

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

2190.84元起

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

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

2179元起

UGREEN 绿联 DH2600 双盘位NAS (N5105、4GB)

UGREEN 绿联 DH2600 双盘位NAS (N5105、4GB)

1349元起

ZSpace 极空间 私有云Z2Pro 四核2盘位NAS家庭个人云网络存储服务器手机平板扩容适用iPhone15 水

ZSpace 极空间 私有云Z2Pro 四核2盘位NAS家庭个人云网络存储服务器手机平板扩容适用iPhone15 水

1299元起
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
扫一下,分享更方便,购买更轻松