菜单

沣大哈
发布于 2025-12-23 / 4 阅读
0
0

服务器自建FRP

前言

最近看到阿里云还有免费试用云服务器的名额,300块试用三个月,立马就心动了去搞了一个。一开始用的是2核2G的,但是感觉内存太小了不够用,毕竟之前搭个网站都花了差不多1.5G,就想着试试好一些的。最终选择了2核4G的类型,100兆网络按流量收费,前20GB免费。

刚拿到的时候不知道干啥好,毕竟临时的服务器搭网盘吧,流量太小,搭ollama吧,没有gpu。思来想去就想到了搭建frp内网穿透的服务器。很久以前就想试试100兆超高带宽的威力了,能够跑满家里50-60m的上行带宽,比之前我那个小服务器3m的小水管大多了。

废话不多说,立马开干!

准备工作

搭建Frp的话还是很简单的,分为FrpsFrpc,也就是服务端客户端服务端就是搭建在有公网ip的服务器上,就比如说这次我使用的阿里云云服务器,有一个公网ip和100m的带宽。而客户端就是搭建在你所需要的机器上的,比如说你的主机,nas什么之类的。

服务端的搭建最好依托于一些linux的管理面板,比如说1Panal青龙宝塔之类的。这次我选择的就是之前经常用的1Panal。直观易懂,一键下载,改配置文件也很方便。

步骤

1.在云服务商购买一个ecs服务器

阿里云对于认证个人用户有免费的300元额度,三个月期限,可以试用多种不同配置的阿里云服务器,最长的都可以用满3个月,公网带宽都是100mbps,对于frp来说都是够用的。每个月的免费流量是220GB,国内20GB加上国外200GB,超额会额外扣钱,要注意。

2.在服务器中,通过命令行中下载1Panal面板

命令行的话可以用云服务器在线自带的,也可以用第三方软件,如finalshell之类的。

具体你安装的系统命令是怎么样的就要看1Panal官方文档里面的安装命令,我的是ubuntu,就是下面这行:

curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh

1Panal官网安装命令

在过程中设置账号密码端口号,端口号什么的都可以默认,直接回车跳过,账号密码要自行设置一下比较方便。在设置完所有选项之后,1panal会弹出一个总体的信息,在之后不会再出现,里面包含了账号密码登录方式等信息,要截图保存下来。


1Panal安装完成的信息

3.登录1panal面板,下载并安装frp服务端(frps)

应用商店——已安装中找到frp服务端,并进入安装目录,在data文件夹中找到frps.toml,打开就可以看到fprs的配置文件,等一下要进行修改,修改示例已经在下面了,可以参考一下。

frps默认安装设置

1Panal进入frps安装目录

frps配置文件

frps配置文件举例

bindAddr = "0.0.0.0" #全局监听

bindPort = 7000 #frps的监听端口(frpc要用)

auth.method = "token" #加密类型

auth.token = "abcdefg" #密钥内容

webServer.addr = "0.0.0.0" #全局监听

webServer.port = 7500 #frps管理面板端口

webServer.user = "admin" #管理面板用户名

webServer.password = "abcdefg" #管理面板密码

主要要记住bindPort和auth.token,这两个在之后的frpc,也就是frp客户端要用。

4.配置frpc

这个是要分情况的。nas套件形式windows电脑linux系统

①Nas

如果是在nas中安装frpc,具体的配置格式如下:


frpc在nas套件中的配置文件

Frpc配置文件举例

serverAddr = "x.x.x.x" #frps服务器公网网址

serverPort = 7000 #frps设置的监听端口

auth.token = "abcdefg" #连接frps的密钥

[[proxies]]

name = "abc" #这个连接的昵称

type = "tcp" #这个连接的类型

localIP = "127.0.0.1" #这个连接的本地主机ip

localPort = 4848 #这个连接的本地端口

remotePort = 1557 #远程连接的映射端口

②Windows

如果你是在windows系统上使用,构建游戏服务器什么的话,可以去下载frpc的图形化软件,比如说GitHub - koho/frpmgr: A user-friendly desktop GUI client for FRP on Windows.这位大佬在github上开源的软件,就非常方便。

在连接frps的时候,要在左侧空白处右键,点击新建配置,填写名称服务器地址,在上方选择认证一栏并选择类型,一般是token,下面填写密码就可以了。

frpc图形化客户端快捷配置

frpc图形化客户端基础配置

③Linux

对于linux上的配置就不多说了,无非就是启动的时候需要用到命令行。

linux下载的压缩包中时同时包含frps和frpc的,你只需要启动其中一个就可以了。**配置文件就在程序同样的文件夹里面,frpc的配置文件在nas和linux中都是相通的,直接复制过去按照需求修改就可以了。在官方文档中有更详细的说明和解释。

至于开机自启动之类的指令,请参照官方文档,因为时间原因就没有再去深究了QAQ

在文件夹中开启终端,输入以下内容,按需开启就可以了。

./frpc -c ./frpc.toml

./frpc -c ./frpc.toml

5.开放防火墙

找到云服务器的防火墙设置,叫什么开放端口或者是安全组什么的。点击_添加规则_,UDP/TCP,添加远程连接的端口号(remotePort),开放就可以了。

必须要开放三个端口:1panal管理面板frpc通信端口(7000)frpc管理面板(7500),之这三个可能会不一样,比如说1Panal管理面板的端口就是随机的,另外两个也可以自己设置,就按照实际情况填。

之后要开放的就是你frpc设置的穿透,一个remotePort对应一个规则。

防火墙规则设置

乱七八糟的小贴士

frp优化

设置KCP/QUIC协议(基于udp的优化算法)降低延迟,提升传输效率。

这些在frp的官方文档中都有提到,在之后有机会的时候也会在这里补充。

各种远程连接的sunshine延迟

ps:以下数据都是使用手机流量测得的

zerotier异地组网:80-160ms

ipv6:70-130ms

自建frp:180-240ms

从数据可以看出,其实自建frp的延迟还是很大的,基本可以说是生活不能自理TT。**综合来看还是ipv6是最好的,但是也是需要ipv6的环境,所以说一般都做不到,除非用手机流量。当然,如果你在一个稳定的wifi环境中情况可能会好一些,不过我家wifi默认是开启ipv6的,所以说测试不了,不过我猜wifi中自建frp也好不到哪里去。

一些小问题

在frpc中,手机流量连接时,一旦用内网ip,如192.168.0.106,不是ddns解析过的域名,就会连接不上。**应该是流量所使用的大多是ipv6,而ipv6地址不能直接识别ipv4地址,域名解析之后会自动识别ipv6地址吧。

总结

FRP其实是一个功能全面的内网穿透和反向代理软件,这次尝试的只有简单的内网穿透,并不能发挥出全部的功能,还有很大的学问可以继续研究,等有机会的时候再看看吧QAQ。


评论