type
status
date
slug
summary
tags
category
icon
password

1. 背景

我有一台公有云服务,家里有一套 Homelab 机器,上面部署的有一些服务,我希望能够通过公有云透传出来,能通过公有云服务访问家里的服务。
 
 

2. 部署

2.1 下载

frp 直接从 github 官方仓库进行下载:
frp
fatedierUpdated 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、效果
总览,
notion image
查看配置好的代理,
notion image
 

2.2.3 使用 systemctl 进行管理

  1. 服务器端
    1. 创建 frps.toml 配置文件
      1. /etc/frps/frps.toml 配置文件如下,
    2. 在创建 systemctl 配置文件,`vim /etc/systemd/system/frps.service`
      1. frps.service 配置文件
    3. 激活 frps 服务
    2. 客户端(与服务器大致流程类似)
    1. 拷贝 frpc 和 frpc.toml 配置文件到指定的目录
        • frpc.toml 配置文件:`sudo vim /etc/frpc/frpc.toml`
          • frpc.toml 配置文件
        • frpc 运行命令:
      1. 编辑 systemd 的配置文件:`vim /etc/systemd/system/frpc.service`
        1. frpc.service 配置文件
      1. 启动服务

        2.3 测试创建的链接

         
        如何接入微信公众号做网站的登录认证使用 Grafana + Prometheus 监控机器节点状态
        Loading...