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}
大成功