为什么写这篇文章

因为有在外面访问家里 NAS 的需求,群晖自带的动态域名解析访问又太慢(因为群晖自带动态域名的 DNS 服务器在国外)。所以需要用内网穿透技术来实现通过其他公网 IP 来访问家里的 NAS 设备的需求。所以才有了这篇文章。

概念解释

NAS - 简单的说就是一个存储中心。
Frp - 一种内网穿透技术。
内网穿透 - 就是通过其他公网 IP 来访问本地没有公网 IP 网络环境的一个技术。

内网穿透

内网穿透技术众多,比如花生壳内网穿透、Ngrok、Frp 都是现在主流的内网穿透技术。
但我个人认为 Frp 是目前最好用配置最简单的(经过测试)。

  • 花生壳

配置简单方便,比较傻瓜化。但要收费。虽然也有免费版,但由于免费版的流量限制,基本上没有什么实际作用。

  • Ngrok

发布时间相对较长,对象较为成熟的一种内网穿透技术。但由于功能的强大。配置较为繁琐。因为折腾许久没有成功过,最后放弃。

  • Frp

配置简单,第一次用就配置成功了。并且适用于各大主流平台设备。

具体过程

准备工作

一台有公网 IP 的服务器 (VPS、云主机)
之前注册了一个国外的 VPS, 准备做内网穿透和 vpn 用,但由于访问速度。果断放弃,最后换成了自己阿里云 ECS。

NAS (客户端)
群晖 DS 416 play

基本步骤
由于 Frp 官网说明文档还是比较详细。我不过多做解释。

服务器端配置:
登录服务器,在 Release页面 下载自己服务器对应版本 Frp

wget https://github.com/fatedier/frp/releases/download/v0.12.0/frp_0.12.0_linux_amd64.tar.gz
实例中:我的阿里云 ECS 用的 centos7 所以我选择 linux_amd64 64位的
Frp 0.12.0 最新测试版的
使用 tar 指令解压 tar.gz 文件

tar -zxvf frp_0.12.0_linux_amd64.tar.gz
进入 frp 目录

cd frp_0.12.0_linux_amd64
删除不必要的客户端文件

rm -f frpc frpc_full.ini frpc.ini
版本不同可能稍有差异,
frpc 为客户端文件
frps 为服务器端文件
配置服务器端文件

vi frps.ini
frps.ini 为服务器配置文件
编辑配置文件

[common]
bind_port = 7000
vhost_http_port = 8080
dashboard_port = 7500
dashboard_user = 用户名
dashboard_pwd = 密码
max_pool_count = 5
authentication_timeout = 900

subdomain_host = lekee.cc

[ssh]
listen_port = 6000
auth_token = 和客服端 token 对应
简单解释:

[common] 必填的
bind_port Frp 服务端口(可自定义)
vhost_http_port http 访问端口(可自定义)
dashboard_port dashboard 界面端口
dashboard_user 登录 dashboard 用户名
dashboard_pwd 登录 dashboard 密码
max_pool_count 最大连接池数量
authentication_timeout 超时验证时间
subdomain_host 自定义二级域名

[ssh]
listen_port ssh 访问端口
auth_token 用户身份认证

详细配置
点击官方

保存上面配置文件吗,启动 frp 服务器

./frps -c ./frps.ini
需要后台运行,请看下面
服务端配置结束。


最后修改:2021-06-25
如果觉得我的文章有意思,欢迎赞赏,我会努力创造更好的文章!