在开始之前
你需要有的
- 一台云服务器(拥有公网ip)
- 一个已经装好的群晖/黑群晖,并且安装好了docker套件
可选
- 一个域名
- 这个域名需要绑定云服务器并备案,至少我使用的阿里云服务器是需要的
- 服务端配置好的nginx
版本
- 群晖版本
- DS918+ DSM 7.0.1-42218
- frp版本
- frp_0.35.1_linux_amd64
关于安装方式
服务/客户端安装配置frp方式不固定,有其他一键脚本安装,但是我安装中出现了其他问题。这里仅介绍我所使用的安装方式
下载
- 下载地址
https://github.com/fatedier/frp/releases
- 下载之前需要查看自己服务器的架构,下载对应版本
输入arch
,看服务器的架构
配置
这里统一使用frp_0.35.1_linux_amd64.tar.gz
版本
服务端配置
- 新建一个文件夹frp,并将
frp_0.35.1_linux_amd64.tar.gz
上传解压出来传进该文件夹
只要
frps frps.ini
这两个文件也行
- 修改
frps.ini
[common]
#[common] 是固定名称的段落,用于配置通用参数。
#服务端监听端口,要求和客户端一致
bind_port = 7000
# 下面的照抄
vhost_http_port = 8000
vhost_https_port = 8001
authentication_method = token
authenticate_new_work_conns = true
# 这里密码需要之自己改变!!!不能有特殊符号!后面不能有空格!!!
token = 12345678
#鉴权使用的 token 值,客户端需要设置一样的值才能鉴权通过
#以下设置的是dashboard监控,可以在服务器的7500端口打开监控面板查看信息,user和pws是对应的登录面板账号和密码
dashboard_port = 7500
dashboard_user = xxxx
dashboard_pwd = xxxx
-
服务器防火墙配置
- 7000、8000端口设置为开放,不然会无法访问。
- 7500端口可选,访问查看是否部署完成服务端的frps
- 如果使用宝塔之类的管理工具,也需要在其对应的管理面板放开对应端口
-
复制到
/usr/bin/
目录下,使得他可以被执行:
sudo cp frps /usr/bin/
- 接下来执行frps,并使其工作在后台
- 建议:为了让程序在后台运行并将日志输出到指定文件比如
frps.log
,可以用nohup启动
- 建议:为了让程序在后台运行并将日志输出到指定文件比如
nohup ./frps -c frps.ini >> frps.log 2>&1 &
- 万一要更新配置文件,可以杀死这个进程再启动:
ps -aux|grep frp| grep -v grep
kill xxx #xxx是找到的进程号
此时服务器端已经配置完成。
- 如果有打开
7500
管理面板端口的话,可以访问http://ip:7500
客户端配置
- 新建一个文件
frp
,将frp_0.35.1_linux_amd64.tar.gz
解压到到此文件夹
只要
frpc.ini
这个文件也行,注意!这里的文件不是frps而是frpc!
- 配置frpc.ini
[common]
server_addr = 服务器ip
server_port = 7000
authentication_method = token
authenticate_new_work_conns = true
# 这里密码需要之自己改变!!!不能有特殊符号!后面不能有空格!!!
token = 12345678
#鉴权使用的 token 值,客户端需要设置一样的值才能鉴权通过
#连接名字,自定义
[nas]
# 类型
type = tcp
# 局域网内设备ip
local_ip = 内网ip,不知道就打开群晖管理面板-信息中心-网络查看
# 局域网内设备端口
local_port = 5000
# 监听端口*可以修改为任意字母,等号后面的数字
remote_port = 5002
#连接名字,自定义
[ssh]
# 类型 ssh类型为tcp
type = tcp
# 局域网内设备ip
local_ip = 内网ip,不知道就打开群晖管理面板-信息中心-网络查看
# 局域网内设备端口
local_port = 22
# 监听端口*可以修改为任意字母,等号后面的数字
这里的内网ip如果没有在群晖系统中设置固定,每次开关机后可能会发生变化,设置路径为:
- 控制面板
- 网络界面
- 局域网
- 点击编辑局域网
- ipv4下点击手动设置网络配置
-
打开docker注册表,搜索
stilleshan/frpc
并安装运行 -
勾选使用高级权限执行容器,点击高级设置
- 点击添加文件,选择刚刚上传配置的
frpc.ini
,注意装载路径和我的一致,然后点击应用。运行
客户端启动frp方式不止一种,这里只介绍我使用的,如有需要自行百度
访问
http://ip:5002
群晖地址
配置完成就可以使用http://ip:5002
访问了,不行的话先看服务器中的日志文件frps.log
,在你刚刚在服务器创建的用来存放frp
的文件夹
- token不一致
2022/12/05 20:38:55 [1;31m[E] [service.go:348] token in login doesn't match token from configuration[0m
2022/12/05 20:38:55 [1;33m[W] [service.go:132] login to server failed: token in login doesn't match token from configuration[0m
token in login doesn't match token from configuration
注意审题
# 这里密码需要之自己改变!!!不能有特殊符号!后面不能有空格!!!
token = 12345678
这一行密码的后续是不能有空格的!服务端和客户端都是一样的,非常重要!服务端和客户端密码需要保持一致!
- 连接超时\连接不上
这个问题我也遇见了,因为没有开放服务端5002
端口,其他教程是没有提到需要开放5002
端口,目测是不同服务器规则不同(瞎说)。同理,如果需要ssh连接群晖则也需要打开37771
端口。
还有就是,如果使用了宝塔类似的面板管理服务器,也需要到面板的设置中打开对应端口防火墙
拓展
域名访问
配置
# frp服务配置(nas映射)
location /nasService/ {
proxy_pass http://127.0.0.1:5002/;
}
如果原有nginx配置了别的路径,如博客等,需要将这个配置提前到最前面。整合后的配置
server {
listen 80;
listen [::]:80;
# xxx.xxx这里是域名
server_name xxx.xxx;
client_max_body_size 1024m;
# frp服务配置(nas映射)
location /nasService/ {
proxy_pass http://127.0.0.1:5002/;
}
location / {
# 其他你原有的配置
}
......
}
访问路径是 xxx.xxx(你的域名)/nasService
域名是需要备案的,如果没有备案就没有配置这一说
群晖套件路径优化
- 打开【控制面板】→【登陆门户】→【应用程序】【别名】中输入关键字。
访问路径是 ip:端口/file
评论区