大家分享一个fnos搭建frp的详细教程,其实也可以说是通用的教程,给那些有需求的人,并不是所有人宽带都是有公网的,使用第三方也不一定安全,有时候这种东西掌握在自己的手里才是最靠谱的。
之前发布过了一篇NPS的搭建教程,其实nps和frp大差不差,只不过nps好久没有维护过了,安全性不可靠,但是nps有web管理面板使用起来倒是蛮方便的,根据自己的选择使用就行。
fnOS NAS通用内网穿透NPS服务端、**客户端、泛域名保姆级搭建教程
安装开始
本次教程内容
搭建前准备
服务器:需要一台有公网IP的服务器(现在服务器都很便宜,可以看看腾讯云,阿里云等)来运行frps服务端。
客户端设备:一个或多个运行在内网的NAS或PC将运行frpc客户端。
一、下载配置文件
配置文件下载地址:
如果你的网络打不开github,那么你关注公众号:知新坊 回复:frp 获取我上传到网盘的配置文件
https://github.com/fatedier/frp/releases
根据自己的环境选择,这次用到的是amd64里面包含frps服务端配置文件和frpc客户端配置文件。
二、服务端搭建
服务端搭建我分别使用宝塔面板、1panel面板自带的frps的服务端给搭建作为演示,使用面板其实是最方便的,一键操作。
安装前先去服务器、宝塔、1panel防火墙放开对应的端口,通讯端口7000、web端口7500,还有几个端口,后面说明!
方式1:宝塔搭建
- 服务器安装好宝塔面板,带docker的版本(比如腾讯云专享版本是没有docker的,需要注意哦!)
- 打开面板左边菜单栏的docker,找到FRP服务端
点击安装,弹窗其他都可以默认不做修改,框起来的端口要全部在服务器、宝塔、1panel防火墙那边放开(端口也可以改成你自己想要的,我这边就默认了),用户和密码是web登录管理的账号和密码,可以改成自己的
其中通讯端口7000、web端口7500、40800是http监听端口、40443是https监听端口
安装好后就是正常运行了,其实都是基于docker部署的,他们只是提供了一键部署的平台而已
获取token连接秘钥,点击打开目录按钮
这个token后面在客户端里面有用,没有这个不安全,不想要就要删除,不删除就连接不上,自己抉择,如果web登录账号密码忘记了,也可以直接在这个文件夹里面修改
访问服务器公网IP:7500就可以打开web界面,使用账号密码登录
方式2:1panel搭建
服务器安装好1panel
应用商店找到frp服务端,安装
记住自己设置的用户名密码、token
安装后进入安装目录
找到data目录下的frps.toml并打开,因为安装的时候没有地方添加监控端口,需要添加输入以下代码作为监控端口,如果没有其他项目占用80端口,可以不添加,其实和上面宝塔大差不差
vhostHTTPPort = 40800
vhostHTTPSPort = 40443
要修改其他参数可以直接点击参数按钮修改,或者进入frps.toml修改
注意哦,修改任何配置文件都需要重启容器,否则不生效
三、客户端搭建
1、下载镜像
在fnOS自带镜像仓库搜索:frpc第一个就是
2、解压配置文件
解压前面下载的配置文件到你飞牛目录就行,例如我这样(里面包含frpc和frps,我们只需要frpc的文件就行了)
3、修改客户端配置文件
打开frpc.toml文件
修改里面的内容
serverAddr = "公网ip"
serverPort = 7000
auth.token = "你的token秘钥"
# 上面的改好不需要在动,只需要配置下面的就行啦
[[proxies]]
#name可自定义名称,不可重复
name = "fnosweb"
#此处为协议,还有tcp、udp、http、https、stcp
type = "http"
#此处为本端开放的端口
localPort = 8000
# 自定义域名
customDomains = ["fnos.xxxx.com"]
4、部署客户端容器
SSH部署容器
使用sudo -i进入root用户输入下面的命令
其中/vol1/1000/docker/frp/frpc.toml换成你自己配置文件路径
docker run --restart=always --network host -d -v /vol1/1000/docker/frp/frpc.toml:/etc/frp/frpc.toml --name frpc snowdreamtech/frpc
这样就搭建好了,接下来给大家详细介绍一下客户端配置使用要求
使用的时候直接编辑你解压在目录里面的frpc.toml文件就行,编辑好保存重启容器。
注意:里面的内容不要重复,否则运行不起来的哦!!
1、自定义域名访问内网的 Web 服务
[[proxies]]
#name可自定义名称,不可重复
name = "fnosweb"
#此处为协议,还有tcp、udp、http、https、stcp
type = "http"
#此处为本端开放的端口
localPort = 8000
# 自定义域名
customDomains = ["fnos.xxxx.com"]
将fnos.xxxx.com的域名 A 记录解析到服务器的公网IP 地址 ,直接访问域名就可以打开对应的站点
上面这个方法就是需要每一次都要去解析就很麻烦,解析一次,使用泛域名就可以了。
首先去frps.toml配置文件里面添加以下代码假如你的主域名是ceshi.com,宝塔和1panel同理,必须要添加。
subdomainHost = "ceshi.com"
*然后去域名服务商那边解析泛域名.ceshi.com**
创建站点(*.ceshi.com)
以宝塔面板为例,在php项目这一栏,例如创建一个站点域名先随便输一个,如果直接这样填*.ceshi.com会提示报错,随便填域名创建成功后再去修改域名就行
然后再把随便填的删掉就好了
创建后点击设置进行返代理
添加返代理,安装我图片里面的添加就行了,端口就是你前面修改的服务端http的端口40800
然后frpc配置文件域名这里也要变一下了
[[proxies]]
name = "fnosweb"
type = "http"
localPort = 8000
subdomain = "fnos"
从原来的
customDomains = ["fnos.xxxx.com"]
变成
subdomain = "fnos"
这样我们后面,就不需要去解析了,只管添加就行了,如下图
注意哦,修改任何配置文件都需要重启容器,否则不生效
其他
通过 SSH 访问内网机器
[[proxies]]
name = "ssh"
type = "tcp"
localIP = "内网ip"
localPort = 22
remotePort = 6000
localIP 和 localPort 配置为需要从公网访问的内网服务的地址和端口。
remotePort 表示在 frp 服务端监听的端口,访问此端口的流量将被转发到本地服务的相应端口。
使用以下命令通过 SSH 访问内网机器,假设用户名为 fnos:
ssh -o Port=6000 fnos@公网ip
我使用到的就http和ssh两个功能,其他具体的可以官网看看
https://gofrp.org/zh-cn/docs/overview/
https://github.com/fatedier/frp/tree/dev?tab=readme-ov-file