type
status
date
slug
summary
tags
category
icon
password
1. 背景
我有一台公有云服务,家里有一套 Homelab 机器,上面部署的有一些服务,我希望能够通过公有云透传出来,能通过公有云服务访问家里的服务。
2. 部署
2.1 下载
frp 直接从 github 官方仓库进行下载:
frp
fatedier • Updated Apr 11, 2024
2.2 部署
部署分为 server 端部署以及 client 部署(需要透传的局域网节点部署)。
假设公有云的 IP 地址为 1.2.3.4,且防火墙规则已经打开下面监听的端口。
2.2.1 Hello FRP(最简单的透传实验)
1、服务端部署
解压 frp 安装包,然后编辑 frps.toml 配置文件内容如下,
说明:
- bindPort: 公有云绑定的端口。它的作用是,把 frp-server 暴露在 18000 端口上,frp-client 通过该端口与 frp-server 进行通信连接。
运行 frp-server 程序,
2、客户端部署
解压 frp 安装包,编辑 frpc.toml 配置文件,
说明:
- serverAddr / serverPort: 公有云的 IP 和端口。frp-client 通过该地址与 frp-server 通信。
- [[proxies]] : 一个代理配置。
- localIP/localPort: 本地需要暴露的服务的监听地址和端口。
- remotePort: 暴露在公有云上面的端口。注意:不是指的本机端口。
注意:公有云服务器上对应的端口务必要打开防火墙配置。
3、验证配置
通过上面的配置文件部署后,局域网的 ssh 22 端口就已经被暴露在公有云上面的 18005 端口上面了,所以可以通过公有云的 18005 端口可以访问局域网的 ssh 22 端口。
使用 ssh 尝试登录验证,
2.2.2 开启 Web UI
1、服务器配置
修改 frps.toml 的配置文件内容如下,
配置说明:
- webServer: 开启 web 管理页面的功能。注意配置文件中的字符串一定要使用双引号引起来。
2、效果
总览,

查看配置好的代理,

2.2.3 使用 systemctl 进行管理
- 服务器端
- 创建 frps.toml 配置文件
- 在创建 systemctl 配置文件,`vim /etc/systemd/system/frps.service`
- 激活 frps 服务
/etc/frps/frps.toml
配置文件如下,
frps.service 配置文件
2. 客户端(与服务器大致流程类似)
- 拷贝 frpc 和 frpc.toml 配置文件到指定的目录
- frpc.toml 配置文件:`sudo vim /etc/frpc/frpc.toml`
- frpc 运行命令:
frpc.toml 配置文件
- 编辑 systemd 的配置文件:`vim /etc/systemd/system/frpc.service`
frpc.service 配置文件
- 启动服务
2.3 测试创建的链接
- 作者:zouying
- 链接:https://haha.ai/frp
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章