让家庭 NAS 服务可外网访问:绿联 DX4600 部署 frpc 实现基于公网服务器的内网穿透
本文以基于绿联 dx4600 上的实践为例,主要介绍家庭 NAS 部署 frpc 实现内网穿透的详细方法与步骤。
1 服务器安装与配置 frps
frp
服务分为服务端 frps
和客户端 frpc
。搭建 frps
的前提条件是需要拥有一台公网 IP 的服务器。如阿里云与腾讯云99元左右一年的云服务器就很合适。
首先登录服务器 SSH,然后安装 FRP:
修改服务器配置文件 frps.toml
:
vi frps.toml
配置内容参考:
在当前目录下输入如下命令启动服务端服务:
frps -c frps.toml
如果希望断开 ssh 后依然在后台运行,可以使用 screen
命令启动服务端:
screen frps -c frps.toml
当然,我们也可以设置 frps
服务开机自启动,方法参考如下。
创建后台启动服务文件:
vi /etc/systemd/system/frp.service
内容参考如下:
相关操作命令参考:
当服务端启动后,可以通过 dashboardPort
的端口号访问控制台。如:http://1.2.3.4:7750
。
2 绿联 NAS 基于 docker 安装与配置 frpc
绿联 NAS 的 docker 功能需要用 PC 电脑登录后从浏览器访问。打开 docker,在 “镜像管理-远程仓库” 中,搜索 frpc 镜像并下载:snowdreamtech/frpc
。
下载完成后,在 “容器管理” 添加镜像,需要注意的设置有:
网络 - 网络名称
那里,需选择host
。这样在frpc.toml
中就不需要设置localIP
了。
- 选择一个磁盘,新建目录
/docker/frp
; 磁盘空间
那里添加一个映射:/docker/frp
,装载路径设置为/etc/frp
。
新建文件 frpc.toml
并上传至 NAS 磁盘 /docker/frp
目录下。内容参考:
配置好后启动该 docker 容器服务即可。
3 几种 frp 穿透服务的访问形式与配置
下面我们以 NAS 上部署的小雅服务(本地端口 5678
)为例,介绍实现在公网访问穿透服务的几种方式。
对于 frpc
客户端来说,在 frpc.toml
中新增如下配置并重启 docker 服务,即可配置好本地小雅服务的穿透访问:
3.1 方式一:以域名+端口
形式访问
本方式你需要拥有一个域名,并且:
- 将域名解析至公网服务器 IP
- 服务器需开放
vhostHTTPPort
设置的端口从公网访问
然后即可直接以http://域名:端口
的形式访问。以上述示例为例:http://xiaoya.lzw.me:7701
3.2 方式二:以IP + 端口
形式访问
阿里云和腾讯云绑定域名需要域名备案。如果没有可用的域名,也可以通过 nginx 反向代理配置的方式,以 IP + 端口
形式访问。我们仍以前面介绍的小雅服务为例,frp
服务端和客户端相关配置不变,nginx 配置参考如下:
3.3 方式三:以 https + 域名
形式访问
web 服务使用 https
是提供安全访问最基本的要求。这里仍需要借助 nginx
反向代理配置方式实现,参考如下:
上面的示例使用了泛域名 SSL 证书,只需要一个 server
配置,即可完成多个不同域名的代理转发,后续新增其他服务,只需要在 server_name
那里新增一行对应的域名即可。
如果你没有泛域名 SLL 证书,可以参考这篇文章: 基于 acme.sh 和 dnspod API 自动生成与更新网站泛域名证书
4 使用免费的第三方 frps 服务
如果没有公网服务器,也可以使用第三方提供的免费服务,具体用法与配置可参见各服务提供者的帮助文档。以下是一些提供免费 frp 服务的第三方站点参考:
- https://freefrp.net
- https://www.hayfrp.org
- https://www.chmlfrp.cn
- https://www.locyanfrp.cn
- https://muhanfrp.cn
- https://www.natfrp.com
5 总结
本文以基于绿联 dx4600 上的实践为例,主要介绍了基于 frp 实现家庭 NAS 服务内网穿透以实现公网访问的配置方式,并介绍了基于 nginx 反向代理配置实现不同访问形式的方法。
需要注意的是,你需要拥有一台有公网 IP 的服务器,并最好拥有一个域名。否则可以尝试使用第三方提供的 frps
服务,如果第三方免费服务的稳定性满足不了需求,也可以考虑付费购买性能更好的 VIP 服务。
另外,本站在几年前也写过基于 frp 内网穿透的文章,最近根据 frp 最新版本做了更新,若有兴趣可进一步阅读: 使用 FRP 实现在家远程桌面到公司内网进行远程办公