大家分享一个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
如果访问域名不成功或者显示
The page you requested was not found.
Sorry, the page you are looking for is currently unavailable.
Please try again later.
The server is powered by frp.
Faithfully yours, frp.

不妨试试域名+端口访问(服务端设置的http端口),最后设置一下反代即可
我使用到的就http和ssh两个功能,其他具体的可以官网看看
https://gofrp.org/zh-cn/docs/overview/
https://github.com/fatedier/frp/tree/dev?tab=readme-ov-file