准备

首先从 GitHub 的 Release 页面中下载最新版本的客户端和服务器二进制文件。所有文件都打包在一个压缩包中,还包含了一份完整的配置参数说明。

接着:

  1. 解压下载的压缩包。
  2. frpc 复制到内网服务所在的机器上。
  3. frps 复制到拥有公网 IP 地址的机器上,并将它们放在任意目录。

frpc部署

我这里将frpc文件的相关文件保存在了:/usr/local/frpc文件夹中。

  1. 创建 frps.service 文件

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

    nano /etc/systemd/system/frpc.service

    写入内容

    [Unit]
    # 服务名称,可自定义
    Description = frpc
    Wants=network-online.target
    After=network.target network-online.target
    Requires=network-online.target
    
    [Service]
    Type = simple
    # 启动frps的命令,需修改为您的frps的安装路径
    ExecStart = /usr/local/frpc/frpc -c /usr/local/frpc/frpc.toml
    ExecStop=/bin/kill $MAINPID
    Restart=always
    RestartSec=30
    StartLimitInterval=0
    
    [Install]
    WantedBy = multi-user.target
    
    
  2. 使用 systemd 命令管理 frpc 服务

    # 启动frp
    systemctl start frpc
    # 停止frp
    systemctl stop frpc
    # 重启frp
    systemctl restart frpc
    # 查看frp状态
    systemctl status frpc
  3. 设置 frpc 开机自启动

    systemctl enable frpc
  4. 配置frpc.toml,以下是frpc.toml的详细配置参考,包含常见的各种type服务类型:

服务器连接配置

# frp服务端的地址,可以是IP或域名
serverAddr = "frps.example.com" 
# frp服务端的监听端口
serverPort = 7000 
# 鉴权方式,通常为token
auth.method = "token" 
# 与服务端一致的鉴权token
auth.token = "your_token" 
# 客户端的唯一标识,避免与其他用户重复
user = "your_username" 

HTTP服务配置

[[proxies]]
name = "web_http"   # 代理名称,需唯一
type = "http"       # 代理类型为HTTP
localIP = "192.168.1.100"  # 本地服务的IP地址
localPort = 80       # 本地服务的端口号
# 自定义域名,可解析到frps服务器的域名或IP
customDomains = ["yourdomain.com"]  
# 可选,访问服务时的用户名密码认证
httpUser = "admin"  
httpPwd = "password"

HTTPS服务配置

[[proxies]]
name = "web_https"
type = "https"
localIP = "192.168.1.100"
localPort = 443
customDomains = ["yourdomain.com"]
# HTTPS服务的证书文件路径,若使用frps的TLS需正确配置
certificatePath = "/path/to/your/certificate.crt"
privateKeyPath = "/path/to/your/private.key"

TCP服务配置

[[proxies]]
name = "ssh_tcp"
type = "tcp"
localIP = "192.168.1.100"
localPort = 22
# 映射到frps服务器的远程端口,可通过该端口访问本地服务
remotePort = 6000 

UDP服务配置

[[proxies]]
name = "dns_udp"
type = "udp"
localIP = "192.168.1.100"
localPort = 53
# 若不指定remotePort,则由frps自动分配
remotePort = 8000

多个服务复用一个域名的HTTP配置

[[proxies]]
name = "web1_http"
type = "http"
localIP = "192.168.1.101"
localPort = 80
# 使用path来区分不同的服务
locations = ["/web1/*"] 
customDomains = ["yourdomain.com"]

[[proxies]]
name = "web2_http"
type = "http"
localIP = "192.168.1.102"
localPort = 80
locations = ["/web2/*"]
customDomains = ["yourdomain.com"]

STCP(内网穿透到特定IP和端口)服务配置

[[proxies]]
name = "stcp_example"
type = "stcp"
localIP = "192.168.1.100"
localPort = 3306
# 指定frps服务器上用于监听该服务的端口和IP
remoteAddr = "127.0.0.1:6001"

XTCP(增强型内网穿透)服务配置

[[proxies]]
name = "xtcp_example"
type = "xtcp"
localIP = "192.168.1.100"
localPort = 5500
# frps服务器上用于监听的端口
remotePort = 7000
# 可选,设置该选项后,客户端连接到frps的地址必须为frps服务器的地址
bindAddr = "frps.example.com"

PCDN(内容分发网络)服务配置

[[proxies]]
name = "pcdn_example"
type = "pcdn"
localIP = "192.168.1.100"
localPort = 8080
# 自定义域名,客户端通过该域名访问服务
customDomains = ["pcdn.yourdomain.com"]
# 指定客户端访问服务时的协议,可为http或https
protocol = "http"
# 可选,设置为true时,frpc会定期向frps发送心跳包,保持连接活跃
heartbeat = true

Socks5代理服务配置

[[proxies]]
name = "socks5_example"
type = "socks5"
localIP = "127.0.0.1"
localPort = 1080
# 映射到frps服务器的远程端口
remotePort = 8080
# 可选,设置用户名密码认证
socks5User = "user"
socks5Pwd = "password"

其他通用配置项

# 全局代理的其他配置文件包含路径
includes = ["./other_config/*.toml"]
# 客户端的元数据,可用于服务端的访问控制等
metadatas.var1 = "abc"
metadatas.var2 = "123"
# 是否启用TLS加密,若服务端支持TLS可启用以加密传输数据
tls.enable = true
tls.certFile = "/path/to/client_cert.crt"
tls.keyFile = "/path/to/client_key.key"
# 日志配置
log.to = "./frpc.log"
log.level = "info"
log.maxDays = 3
# 健康检查配置
healthCheck.type = "tcp"   # 或http
healthCheck.timeoutSeconds = 3
healthCheck.maxFailed = 3
healthCheck.intervalSeconds = 10
# 带宽限制配置
transport.bandwidthLimit = "1MB"  # 限制代理的带宽
transport.bandwidthLimitMode = "client"  # 限制带宽的位置
# 加密与压缩配置
transport.useEncryption = false
transport.useCompression = false
# TCPmux配置
transport.tcpMux = true
transport.tcpMuxKeepaliveInterval = 60
最后修改:2025 年 06 月 19 日
如果觉得我的文章对你有用,请随意赞赏