群晖 docker frp公网访问
群晖 docker frp
通过公网访问群晖的教程。
群晖通过docker部署frp客户端,实现公网访问群晖。
目前流行的公网访问群晖的方案大致如下:
1.DDNS解析(我的网络环境不适用此种方案,且可能需要花很多钱如:花生壳)
2.frp内网穿透 (本文的主要方案,此处又分为群晖系统内部署、docker部署,本文为后者)
3.Quick Connect (最简单,网速最慢)
本文方案核心是frp客户端(下文frpc代指)和frp服务端(下文frps代指)的通信,而frpc的部署可以通过群晖本身的系统进行部署,也可以通过群晖的DSM系统中的docker插件进行部署。
由于群晖的linux系统并不太容易获得root权限,且这样对于机子本身的修改成本较高,故采用docker部署frpc的方案实现。
关于frp版本的通信问题:
本文使用的frps是 0.35.1 frpc是0.35.1。
经过测试frps版本不变,frpc变为0.30.0时仍然可以正常通信。
-
前期准备:
一台云主机(本文采用阿里云主机,带宽15M。本文以39.156.69.79代指[此IP为百度的IP]) 一个域名(本文采用的阿里云已备案域名,本文以baidu.com代指) 一个群晖(本文型号DS720+) ------------ 本文环境: 学校网络经过学校的一层路由之后,到达我本人手里之后我还需要一个路由器通过指定的账号上网,所以本次环境可以认为是二层路由。
-
阿里云需要处理的内容
1.防火墙:增开端口5000 类型:tcp 2.域名解析记录: 增加子域名: A记录,例如: nas.baidu.com 39.156.69.79 -------------------- 由于我原本的解析记录www已经解析到云主机39.156.69.79,这里增开的也解析到39.156.69.79也没问题,只不过访问的时候就变成了:http://nas.baidu.com:5000
-
阿里云主机部署frps,参考文章:链接:
frps.ini
[common] bind_port = 7000 token = 1f%vXPfy3*IWzX vhost_http_port = 5000 dashboard_port = 7001 dashboard_pwd = qwe123456
- bind_port :frpc访问的端口
- token : frpc认证用的密钥
- vhost_http_port : 公网访问转到fprc的端口
- dashboard_port :frps面板
- dashboat_pwd : frps登录密钥,默认账号名:admin
dashboard_port和dashboard_pwd建议在测试通过后将其关闭,即注释或删掉。
-
群晖docker部署frpc,此处的frpc部署参考下文:
frpc.ini
[common] server_addr = 39.156.69.79 server_port = 7000 token = 1f%vXPfy3*IWzX [web_2_xxx] type = http local_ip = 192.168.3.122 local_port = 5000 custom_domains = nas.baidu.com
-
server_addr : frps 的IP
-
server_port : frps的端口
-
token : 认证密钥
-
[web_2_xxx] : 显示在frps中的客户端明自
-
type : frp连接类型
-
local_ip : 转发到本地局域网的地址
-
local_port : 转发到本地局域网的端口
-
custom_domains : 定义的二级域名。如果和解析记录不一致也无法访问。
-
-
群晖安装docker并部署frpc
-
在套件中心安装docker
-
按照下图操作,此处选择
stilleshan/frpc
的原因就是更新及时,其他版本更新不及时,如oldiy/frpc
: -
双击后选择版本,如下所示,本文选择0.35.1与frps端版本一致:
-
之后等待其下载映像即可:
-
双击0.35.1版本,勾选“使用高权限执行容器”,然后点击“高级设置”
-
将上文准备好的frpc.ini文件上传至群晖中的任意一个文件夹并填入此处,最终效果如下:
-
设置网络:
-
然后应用,然后下一步,然后应用:
-
最后确认刚刚创建的容器是否正常运行,需要查看日志。查看日志的方法如下:
-
如果设置成功了,会有很多日志,并且有明显的提示,如:与服务端认证成功:
-
到此就可以通过公网地址访问我们的群晖了:
例如: nas.baidu.com:5000
-