Frp
1. 概述
FRP(Fast Reverse Proxy)是一款反向代理工具,可以通过一台拥有公网 IP 的服务器,将处于 NAT 或防火墙后的设备暴露到公网访问。
本文以云服务器作为 FRP 服务端(frps),以 PicoKVM 作为 FRP 客户端(frpc)。配置完成后,即可通过云服务器远程访问 PicoKVM 的 Web 管理界面。
本文示例使用以下端口:
| 项目 | 示例 |
|---|---|
| 云服务器公网 IP | <SERVER_PUBLIC_IP> |
| FRP 服务端口 | 7000 |
| HTTP 访问端口 | 40800 |
| HTTPS 访问端口 | 40444 |
| FRP 管理后台端口 | 7500 |
请将文中的 <SERVER_PUBLIC_IP>、<FRP_TOKEN>、<FRP_DASHBOARD_PASSWORD> 等占位符替换为你自己的实际配置。
占位符说明:
| 占位符 | 说明 |
|---|---|
<SERVER_PUBLIC_IP> | 云服务器的公网 IP 地址 |
<FRP_TOKEN> | frps 和 frpc 共用的认证 token。建议使用随机且不容易猜到的字符串,并确保服务端和客户端填写一致 |
<FRP_DASHBOARD_PASSWORD> | FRP 管理后台登录密码,用于访问 http://<SERVER_PUBLIC_IP>:7500 |
<PICOKVM_IP> | PicoKVM 的局域网 IP 地址,用于将证书文件复制到 PicoKVM |
2. 准备工作
访问 FRP GitHub Releases 页面,下载适用于服务器的 FRP 压缩包。若云服务器为 Linux x86_64 架构,可下载类似
frp_0.68.1_linux_amd64.tar.gz的版本。在本地电脑安装 FileZilla。
打开 FileZilla,使用 SSH/SFTP 信息连接云服务器。

连接信息说明:
字段 说明 主机 云服务器公网 IP 用户名 SSH 用户名,例如 ubuntu密码 SSH 用户对应的密码 端口 SSH 端口,通常为 22连接成功后,将下载好的 FRP 压缩包上传到云服务器。

3. 服务端配置
3.1 安装 frps
解压 FRP 压缩包并进入解压后的目录:
tar -zxvf frp_*_linux_amd64.tar.gz
cd frp_*_linux_amd64安装
frps:sudo cp frps /usr/local/bin/frps
sudo chmod +x /usr/local/bin/frps
3.2 创建服务端配置
创建 FRP 配置目录:
sudo mkdir -p /etc/frp
sudo vim /etc/frp/frps.toml写入以下配置:
bindAddr = "0.0.0.0"
bindPort = 7000
vhostHTTPPort = 40800
auth.method = "token"
auth.token = "<FRP_TOKEN>"
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "<FRP_DASHBOARD_PASSWORD>"在云服务器防火墙或安全组中放行所需端口:
端口 用途 7000FRP 客户端连接端口 40800PicoKVM HTTP 访问入口 40444PicoKVM HTTPS 访问入口 7500FRP 管理后台 
验证配置是否正确:
frps verify -c /etc/frp/frps.toml
3.3 创建 systemd 服务
创建服务文件:
sudo vim /etc/systemd/system/frps.service写入以下内容:
[Unit]
Description=FRP Server
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/frps -c /etc/frp/frps.toml
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target启动 FRP 服务端:
sudo systemctl daemon-reload
sudo systemctl enable frps
sudo systemctl start frps
sudo systemctl status frps
4. PicoKVM 客户端配置
PicoKVM 支持在 Web 界面中配置 FRP 客户端。打开 PicoKVM Web 界面,进入 Settings -> Access,根据下面任意一种访问方式填写 frpc.toml 配置。
5. 方案一:HTTP 访问
该方案配置最简单,不需要证书。
外部访问地址:
http://<SERVER_PUBLIC_IP>:40800
在 PicoKVM 中使用以下 frpc.toml 配置:
serverAddr = "<SERVER_PUBLIC_IP>"
serverPort = 7000
auth.method = "token"
auth.token = "<FRP_TOKEN>"
[[proxies]]
name = "picokvm-http"
type = "http"
localIP = "127.0.0.1"
localPort = 80
customDomains = ["<SERVER_PUBLIC_IP>"]
点击 Start 测试连接。如果配置正确,日志中应能看到 success,且没有 error 信息。

6. 方案二:使用 https2http 实现 HTTPS 访问
该方案用于在公网侧提供 HTTPS 访问入口,并将请求转发到 PicoKVM 的 HTTP 服务。
外部访问地址:
https://<SERVER_PUBLIC_IP>:40444
6.1 生成自签名证书
在 PC 或 Linux 主机上执行以下命令:
mkdir -p ~/picokvm/tls
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout ~/picokvm/tls/__ca__.key \
-out ~/picokvm/tls/__ca__.crt \
-subj "/CN=<SERVER_PUBLIC_IP>"
将证书文件复制到 PicoKVM:
scp -r ~/picokvm/tls root@<PICOKVM_IP>:/userdata/picokvm/
6.2 配置 frpc.toml
在 PicoKVM 中使用以下配置:
serverAddr = "<SERVER_PUBLIC_IP>"
serverPort = 7000
auth.method = "token"
auth.token = "<FRP_TOKEN>"
[[proxies]]
name = "picokvm-https"
type = "tcp"
localIP = "127.0.0.1"
localPort = 80
remotePort = 40444
[proxies.plugin]
type = "https2http"
localAddr = "127.0.0.1:80"
crtPath = "/userdata/picokvm/tls/__ca__.crt"
keyPath = "/userdata/picokvm/tls/__ca__.key"
6.3 测试 HTTPS 访问
点击 Start 测试连接。如果配置正确,日志中应能看到 success,且没有 error 信息。
由于示例中使用的是自签名证书,通过 HTTPS 访问 PicoKVM 时,浏览器可能会提示证书风险。这是自签名证书的正常现象。