Ubuntu 24安装部署Frpc客户端

基于Docker部署FRP来实现内网穿透是一个非常流行且高效的方案。下面我将为您提供一份详细的、从零开始的部署操作步骤,涵盖服务端(公网服务器) 和客户端(内网机器) 的配置。
官网:https://gofrp.org/zh-cn/

一,架构原理简介

  • FRP 服务端 (frps):部署在拥有公网IP的服务器上,监听一个端口(如 7000),等待客户端连接。它负责将外部网络的请求转发到已连接的内网客户端。
  • FRP 客户端 (frpc):部署在内网的机器上,它会主动与公网服务器上的 frps 建立连接。客户端配置需要暴露的内网服务(如SSH、Web网站等)。

二,部署 FRP 客户端

下载地址:https://github.com/fatedier/frp/releases

Ubuntu 24安装部署Frpc客户端
Ubuntu 24安装部署Frpc客户端
  • 步骤 1:准备客户端配置文件

在内网机器上同样创建一个目录,把下载好的文件上传到/root/目录下并解压

/root/frp_0.65.0_linux_amd64

步骤 2:安装frpc客户端

进入/root/frp_0.65.0_linux_amd64,执行如下命令,官方安装详见:https://gofrp.org/zh-cn/docs/setup/

./frpc -c ./frpc.toml

frpc.toml配置文件如下:

frpc.toml和老版本的frpc.ini编写不一样,具体参考下面,容易出错的地方!

[common]
# server_addr为FRPS服务器IP地址
server_addr = X.X.X.X
# server_port为服务端监听端口,bind_port
server_port = 7000
# 身份验证
token = MVMeRz6KfT4IDUgwZxb

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 2222

# [ssh] 为服务名称,下方此处设置为,访问frp服务段的2288端口时,等同于通过中转服务器访问127.0.0.1的22端口。
# type 为连接的类型,此处为tcp
# local_ip 为中转客户端实际访问的IP 
# local_port 为目标端口
# remote_port 为远程端口

[BMC浪潮]
type = tcp
local_ip = 192.168.7.100
local_port = 443
remote_port = 18080

[BMC浪潮Esxi8.0]
type = tcp
local_ip = 192.168.7.98
local_port = 443
remote_port = 18081

[运维中心视频监控]
type = tcp
local_ip = 192.168.3.100
local_port = 80
remote_port = 18082

[运维中心NAS_Web]
type = tcp
local_ip = 192.168.9.136
local_port = 80
remote_port = 18083


[运维中心Esxi8.0*4核8线程]
type = tcp
local_ip = 192.168.8.98
local_port = 443
remote_port = 18084

[运维Esxi8.0]
type = tcp
local_ip = 192.168.9.98
local_port = 443
remote_port = 18085

[运维中心File Browser]
type = tcp
local_ip = 192.168.9.100
local_port = 8282
remote_port = 18282

[RDP 张工PC1]
type = tcp
local_ip = 192.168.9.103
local_port = 3389
remote_port = 13389

[RDP 周工PC1]
type = tcp
local_ip = 192.168.6.100
local_port = 3389
remote_port = 23389

三, frpc配置自启动

步骤 1:配置自启动frpc客户端

参考frp:https://gofrp.org/zh-cn/docs/reference/

使用 systemd官网配置详见:https://gofrp.org/zh-cn/docs/setup/systemd/

示例frp:https://gofrp.org/zh-cn/docs/examples/

在 Linux 系统下,使用 systemd 可以方便地控制 frps 服务端的启动、停止、配置后台运行以及开机自启动。

以下是具体的操作步骤:

  1. 安装 systemd如果您的 Linux 服务器上尚未安装 systemd,可以使用包管理器如 yum(适用于 CentOS/RHEL)或 apt(适用于 Debian/Ubuntu)来安装它:
# 使用 yum 安装 systemd(CentOS/RHEL)
yum install systemd

# 使用 apt 安装 systemd(Debian/Ubuntu)
apt install systemd

2.创建 frps.service 文件

使用文本编辑器 (如 vim) 在 /etc/systemd/system 目录下创建一个 frps.service 文件,用于配置 frps 服务。

$ sudo vim /etc/systemd/system/frps.service

写入内容:

[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /path/to/frps -c /path/to/frps.toml

[Install]
WantedBy = multi-user.target

笔者的安装目录在:/root/frp_0.65.0_linux_amd64,将 ExecStart 行改为:

ExecStart=/root/frp_0.65.0_linux_amd64/frpc -c /root/frp_0.65.0_linux_amd64/frpc.toml
[Unit]
Description=frp Client Service
After=network.target

[Service]
Type=simple
User=root
ExecStart=/root/frp_0.65.0_linux_amd64/frpc -c /root/frp_0.65.0_linux_amd64/frpc.toml
WorkingDirectory=/root/frp_0.65.0_linux_amd64
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target

步骤 1:重新加载并启动服务

sudo systemctl daemon-reload
sudo systemctl restart frpc
sudo systemctl status frpc
sudo systemctl stop frpc

四, 问题汇总

1,frpc配置自启动提示如下错误:

Oct 18 08:00:08 zxb systemd[1]: Started frpc.service – frp Client Service.
Oct 18 08:00:08 zxb (frpc)[82110]: frpc.service: Failed to determine user credentials: No such process
Oct 18 08:00:08 zxb systemd[1]: frpc.service: Main process exited, code=exited, status=217/USER
Oct 18 08:00:08 zxb systemd[1]: frpc.service: Failed with result ‘exit-code’.
root@zxb:/etc/systemd/system# sudo systemctl daemon-reload

root@zxb:/etc/systemd/system# sudo systemctl start frpc
root@zxb:/etc/systemd/system# sudo systemctl status frpc
× frpc.service – frp Client Service
Loaded: loaded (/etc/systemd/system/frpc.service; enabled; preset: enabled)
Active: failed (Result: exit-code) since Sat 2025-10-18 08:04:14 UTC; 1s ago
Duration: 5ms
Process: 91712 ExecStart=/root/frp_0.65.0_linux_amd64/frpc -c /root/frp_0.65.0_linux_amd64/frpc.toml (code=exited, status=217/USER)
Main PID: 91712 (code=exited, status=217/USER)
CPU: 874us

Oct 18 08:04:14 zxb systemd[1]: Started frpc.service – frp Client Service.
Oct 18 08:04:14 zxb (frpc)[91712]: frpc.service: Failed to determine user credentials: No such process
Oct 18 08:04:14 zxb systemd[1]: frpc.service: Main process exited, code=exited, status=217/USER
Oct 18 08:04:14 zxb systemd[1]: frpc.service: Failed with result ‘exit-code’.
root@zxb:/etc/systemd/system# pwd
/etc/systemd/system
root@zxb:/etc/systemd/system# sudo systemctl daemon-reload

  • 首先检查并编辑 frpc 服务文件
    • sudo nano /etc/systemd/system/frpc.service
  • 确保服务文件内容类似这样
[Unit]
Description=frp Client Service
After=network.target

[Service]
Type=simple
# 使用具体的用户名而不是动态用户
User=your_username
Group=your_username
ExecStart=/path/to/frpc -c /path/to/frpc.toml #路径最容易出错的
WorkingDirectory=/path/to/frpc/directory
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target
  • 使用 root 用户运行

如果不想指定具体用户,可以修改为:

[Service]
Type=simple
User=root
ExecStart=/path/to/frpc -c /path/to/frpc.toml
WorkingDirectory=/path/to/frpc/directory
Restart=on-failure
RestartSec=5s
  • 文件权限:确保 frpc 二进制文件有执行权限:
chmod +x /path/to/frpc
sudo chmod +x /root/frp_0.65.0_linux_amd64/frpc

注意事项

  • 所有代理服务名称(name)都保留了中文,这在 TOML 中是允许的
  • 确保文件编码为 UTF-8
  • 如果遇到编码问题,可以将中文服务名改为英文

转换完成后,您的 frp 客户端就可以使用新的 TOML 格式配置文件正常工作了。

基于Docker部署内网穿透服务器FRP:https://www.hao0564.com/5527.html

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注