概念解释

NAS – 简单的说就是一个存储中心。

Frp – 一种内网穿透技术。

内网穿透 – 就是通过其他公网 IP 来访问本地没有公网 IP 网络环境的一个技术。

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

准备工作
一台有公网 IP 的服务器 (VPS、云主机)=

NAS (客户端)群晖

基本步骤

由于 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 = frp.im

[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

需要后台运行,请看下面

服务端配置结束。
客户端配置

客户端就是您本地需要做外网服务的设备,可以是 PC、Mac、NAS、路由器、或者虚拟机里的 liunx 系统。 这篇文章主要是利用 Frp 技术访问在群晖 NAS 服务的应用。实例也是 NAS 系统。

SSH 登录群晖 NAS (群晖必须开启 ssh) nas_ssh_start

ssh nas

    我设置过别名,详情查看我的另一篇文章MAC 终端 SSH 别名代替 IP 的方法 ssh nas = ssh user@ip

下载 Frp, 删除服务端文件。(因为和服务端配置一样,不再一一赘述。)

sudo -i // 切换 root 用户
wget https://github.com/fatedier/frp/releases/download/v0.12.0/frp_0.12.0_linux_386.tar.gz 
tar -zxvf  frp_0.12.0_linux_386.tar.gz
cd frp_0.12.0_linux_386
rm -f frps frps_full.ini frps.ini

编辑 frpc.ini 文件(客户端配置文件)

vi frpc.ini

编辑配置文件如下

[common]
server_addr = ip
server_port = 7000
auth_token = 和服务器端对应
pool_count = 1

[ssh]
type = tcp
local_ip = NAS 局域网ip
local_port = 22
remote_port = 6000

[nas]
type = http
local_port = 5000
subdomain = nas

[web]
type = http
local_port = 80
subdomain = web

    简单解释:
    [COMMON] 必填的

    server_addr 服务器端公网 server_port frp 服务端口,和服务器端 bind_port 一致 auth_token 和前面服务器端 [ssh] auth_token 一致 pool_count 连接池数量
    [SSH]

    type 服务类型(tcp、http、https、udp) local_ip NAS 本地局域网内网 ip local_port NAS 开启 ssh 服务端口号,默认 22 remote_port 服务器端 ssh 端口,和服务器端 [ssh] listen_port 配置一致
    [NAS] NAS 管理界面

    subdomain 二级域名 nas.lekee.cc 访问 NAS type = http 服务类型为 http local_port NAS 默认端口 5000
    [WEB] NAS WEB STATION 服务,没用可以不用设置

    type = http 类型为 http local_port = 80 NAS web 服务端口 subdomain = web 二级域名 web.lekee.cc 使用自定义二级域名的时候,域名 *.lekee.cc 要解析到服务器 IP
    详细配置

    点击官方

保存,运行。(后台运行,请看下面)

./frpc -c ./frpc.ini

此时在服务端会看到”start proxy sucess”字样,即连接成功。

测试运行
SSH 测试

ssh -p 6000 user@服务器ip

user 为你登录群晖 NAS 的用户名

NAS 界面

打开浏览器输入 nas.frp.im:8080, 显示群晖登录界面成功。 nas_login
NAS WEB STATION

打开浏览器输入 web.nas.frp.im:8080, 显示下面页面成功。 nas_web

域名后面 8080 端口可以隐藏,下面介绍如何隐藏 8080 端口。

扩展应用
后台运行

后台运行服务的方法有很多,这里只说一种可以在服务器端(Linux)和客户端(NAS)都可以用的 nohup指令
服务器端

nohup ./frps -c ./frps.ini &

客户端

nohup ./frpc -c ./frpc.ini &

这个技术伟大之处就是,只要设备能上网。不管有没有公网 IP,都可以让任何一个能上网的机子访问该设备。该设备可能是一台 PC,一个服务器,一个路由器,一个NAS,一个摄像头,一个… 无限扩展无限衍生,无限可能… 希望本文能您带来帮助!

标签: frp, 群辉, Nas

添加新评论