使用 Frp + Nginx 反代实现用域名访问群晖 NAS
本教程纯属记录自己的操作,所以没有配图(其实是比较懒),可能很多地方都是一笔带过,详细的教程可以进文章后面列出的参考教程链接,见谅!
frp是一款开源的反向代理工具,可用于内网穿透的高性能的反向代理应用,支持tcp,udp协议,为http和https应用协议提供了额外的能力。
Frps安装配置
VPS CentOS 7 下安装Frps
一键安装脚本
|
|
卸载脚本
|
|
安装完成后配置frps.ini并重启服务
vi /usr/local/frp/frps.ini
# 修改 frps.ini 配置
sudo systemctl restart frps
# 重启 frps 服务即可生效
配置参考
|
|
以上内容可以根据自身情况修改,对应端口记得开放
使用systemctl命令来控制frps
|
|
现在可以输入http://服务器IP:7500来查看 frps 服务状态
Frpc安装配置
建议直接用路由器Frpc插件,路由器不支持的话再用群晖Docker使用Frpc
刷了梅林固件的路由器直接在软件中心安装frpc插件即可。
群晖的话要先在套件中心安装Docker,然后在Docker的注册表中搜索Frpc进行下载,在映像里启动。
我这边因为使用的是路由器,没用群晖Docker里的frpc,所以操作就没写出来
Nginx反代操作
先将域名解析到vps的ip,如果你要用多个子域名的话建议直接做泛域名解析,避免一直需要进行增减解析操作。
基于宝塔的操作:
新建网站,域名填主域名和一个泛域名
然后到SSL–Let’s Encrypt–DNS验证(支持通配符)
自己选择DNS接口,勾上自动组合泛域名、主域名和泛域名,申请证书,完成后开启强制https
再到反向代理里添加一个反向代理,注意这里的操作:
代理名称随便填
目标URL http://127.0.0.1:80
#这里的80要改成你设置的frp的http端口
发送域名 $host
保存,现在已经可以通过域名访问了。
说明:这样子设置只是frps服务器到访问者走的https,而从你frpc到frps是http,并不是全程加密的。frpc到frps走https端口会直接502错误,也尝试了网上的多种方法还是没办法有效解决。
这边列两个网上的解决方法,但是本人没试成功,可能不一定完全有效:
frpc+frps+nginx反代+解析后端真实IP+双向https自动跳转+https证书配置的纯享版配置文件及操作指导
内网域名访问
在群晖的套件中心安装DNS Server–区域–新增–Master区域
域类型:正向区域
完整域名:填你的域名
主DNS服务器:填群晖NAS的内网ip
其他的保持默认就ok,确定后列表里会有刚才添加的域名,双击域名,新增一条A记录,为了方便建议直接泛解析,ip地址同样填群晖NAS的内网ip,完成。
进入路由器将内部网络(LAN)-DHCP服务器的DNS Server1设置成群晖内网ip地址,DNS Server2要为空或者设置成路由器ip,保存设置后,把设备重新连接或者重启路由器就可以了。
群晖控制面板–切换到高级模式–安全性–证书–新增
你可以将在vps上申请的证书导入或者重新申请都可以。
内网域名反向代理
完成上面的操作虽然可以域名访问了,但是只能访问到默认端口的服务,如果要访问其他端口就需要进行反向代理了
群晖控制面板–切换到高级模式–应用程序下的Synology应用程序门户– 反向代理服务器
按需添加即可。
参考文章
[1]. CentOS 7 安装配置frp内网穿透服务器端教程
[2]. frpc+frps+nginx反代+解析后端真实IP+双向https自动跳转+https证书配置的纯享版配置文件及操作指导