Frp 在Openwrt 上的配置
开始之前
为什么
由于家庭宽带“升级”之后,网络被NAT了,失去了公网IP。家里有一个服务器需要连接的话就需要配置FRP吧端口映射出去,实现家里服务器的访问。

有两种配置方法:
- 直接在服务器上运行frp。
- 在家里的路由器上运行frp。
这里采用的是第二种,也就是在路由器上运行openwrt的方案。
我使用的配置
- 公网服务器运行FRPS 系统是Windows Server
- 路由器运行FRPC 系统是Openwrt
- 家庭服务器是Ubuntu Desktop 24.04 ssh配置完成
所需硬件
- 有公网ip的服务器
- 运行openwrt的服务器
- 配置好了ssh的家庭服务器
安装FRP
先进行服务端的配置
公网服务器上安装并配置frps
下载FRPS
前往frp在release中下载你的服务器对应的版本。我的服务器运行的windows server 所以下载frp_0.61.1_windows_amd64.zip。

配置FRPS
在Windows上解压下载的文件之后应该会得到这些,我们关注frps(frp Server)的部分。

打开frps.toml进行配置
bindPort = your_frps_port
auth.token = "your_token"
注意,bindPort 直接填写数字,auth.token需要加上引号。(FRP的配置微妙,这样做肯定不会有问题,我之前调试了非常久)
注: token现在随便写,后面配置frpc的时候记得住就行
e.g.
bindPort = 12345
auth.token = "hello world"
启动frps
配置完成之后在路径打开命令行。
Tips: Windows直接在
地址栏中输入cmd可以在当前路径下直接启动命令提示符
输入启动命令:
frps.exe -c frps.toml
你应该会看到:

表明服务启动成功
Openwrt安装并配置FRPC
FRPC在路由器上安装比较微妙,因为指令集适配的问题。
先尝试直接安装
下载FRPC,尝试直接安装
前往状态→概览→型号 确认你的路由器配置
前往:
- openwrt-frp 后端
- luci-app-frpc luci前端
下载对应的安装文件
访问系统→文件传输将刚刚下载的两个.ipk上传,记得复制地址。

访问系统→软件包,在下载并安装软件包中黏贴.ipk地址然后安装。

我已经安装过了,所以显示up to date。
直接安装失败的情况
用Openwrt-frp的最大问题是frpc不好安装,因为release的预制不够全面。
如果你也不能直接安装,可以参考我的安装方案。
在我的路由器上frpc_0.57.0-r1_aarch64_generic.ipk就无法安装(其他版本也进行了尝试,均不能安装。仅对generic版本进行了拆包)。
经过拆包发现

frpc_0.57.0-r1_aarch64_generic.ipk的发现架构要求是aarch64_generic
然后确认机器架构:
uname -m
我的路由器输出是:
aarch64
说明我的路由器是支持aarch64的。
其次确认你的opkg配置中指定的架构:
opkg print-architecture
我的路由器输出是:
arch all 1
arch noarch 1
arch aarch64_cortex-a53+crypto 10
arch aarch64_cortex-a53 100
总结:我的路由器支持aarch64,但是在ipk中制定了需要支持aarch64_generic,由于同为aarch64,我尝试在系统的opkg配置中增加aarch64_generic,这样可以**强行安装frpc_0.57.0-r1_aarch64_generic.ipk,但是不保证运行。
于是在系统的opkg配置中增加aarch64_generic:
vim /etc/opkg.conf
最后一行增加:
arch aarch64_generic 20
注:最后的"20"是该架构的优先级,低于aarch64即可
注: 输入
I开始编辑,修改完成后依次输入ESC、输入:wq、输入回车保存配置
修改完成之后需要更新opkg配置,输入:
opkg update
回到访问系统→软件包,在下载并安装软件包中黏贴.ipk地址然后安装。
此时应该能正常安装。
配置FRPC
确定openwrt-frpc和luci-app-frpc都安装好了之后,进行FRPC的配置。
访问服务→Frpc→Servers添加服务器。
- 别名:随意输入
- Server Addr:之前配置的FRPS所在服务器的地址
- Server Port:之前配置FRPS服务器的端口
- Token:之前在FRPS服务器配置的Token
- TCP mux:打开(?反正我打开的时候可以用)

配置好每个选项之后保存。
然后访问Rules,添加新规则。
- Proxy Name:做的ssh转发就干脆叫ssh
- 节点类型:TCP
- 插件:留空
- Local IP:填入你要转发给的目标的局域网IP(在我这就是家里服务器的局域网IP地址)
- Local port:对应的端口
- Remote port:外部访问FRPS服务器时使用的端口
- 剩下的全部默认

配置完成之后回到服务->Frpc->设置->General Options,服务器选择刚刚配置的FRPS服务器,然后勾选启用,保存&应用然后就会Openwrt就会启动frpc服务。
如果配置成功了,你会在FRPS的后台看到:

如果有有最后两条出现就说明FRPS和FRPC都配置好了。
FRP配置完成
至此FRP客户端和服务端都配置完成了,我配置的是SSH转发,进行测试:
ssh -p {Remote_port} {user_name}@{FRPS_server_ip_addr}

大成功
