FRPC 配置案例

配置说明

本案例配置描述了使用 FRP 客户端(frpc)通过本地代理和 TCP 协议建立穿透连接的示例。通过此配置,可实现将本地服务(如 SSH)暴露到远程服务器。


配置文件

# 远程服务端地址和端口
serverAddr = "192.0.0.0"
serverPort = 7000

# 通过本地代理进行通信
transport.proxyURL = "socks5://127.0.0.1:7890"

# 身份验证
auth.method = "token"
auth.token = "AliceAndKey"

# 传输协议与连接优化
transport.protocol = "tcp"
transport.dialServerTimeout = 15  # 连接服务端超时时间(秒)
transport.dialServerKeepalive = 300  # 保持长连接的时间(秒)
transport.tcpMux = true  # 启用 TCP 多路复用
transport.poolCount = 20  # 连接池大小
transport.tcpMuxKeepaliveInterval = 30  # 多路复用保活间隔(秒)

# 代理服务定义
[[proxies]]
name = "ssh"  # 代理名称
type = "tcp"  # 代理类型
localPort = 2200  # 本地监听端口
remotePort = 3922  # 远程映射端口

配置功能

  1. 远程服务穿透:

    • 将本地的 SSH 服务(监听于 2200 端口)暴露到远程服务器的 3922 端口。
  2. 流量代理:

    • 所有流量通过本地 SOCKS5 代理传输。
  3. 身份验证:

    • 客户端与服务端通过 token 机制进行认证,增强安全性。
  4. 连接优化:

    • 启用了 TCP 多路复用(tcpMux),减少连接建立的开销。
    • 设置了连接池(poolCount)和保活间隔,适合高并发或长时间运行的场景。

使用场景

  • 远程访问本地服务:
    使用 SSH 登录本地服务器或设备,通过简单的端口映射提供远程访问。

配置注意事项

  1. 本地代理可用性:

    • 确保本地的 SOCKS5 代理正常运行
  2. 服务端配置匹配:

    • 服务端(frps)需要与客户端(frpc)的 auth.token 和协议设置一致。
  3. 网络防火墙:

    • 服务端需要开放 7000/TCP 端口,供客户端连接。
  4. 日志排查:

    • 如果连接失败,请查看客户端和服务端日志,排查可能的网络或配置问题。

总结

通过上述配置,可以轻松实现安全、高效的远程服务穿透。这种方式适合对隐私和性能要求较高的场景,特别是在网络条件受限或需要流量加密的情况下。

FRPS 配置案例

配置说明

本案例配置描述了使用 FRP 服务端(frps)实现穿透服务的基础配置。通过此配置,可以安全高效地管理和优化客户端连接,并提供 Web 管理界面和 HTTP/HTTPS 支持。


配置文件

# 服务端监听地址和端口
bindAddr = "0.0.0.0"  # 服务端监听地址
bindPort = 7000       # 服务端监听端口(TCP)

# 身份验证
auth.method = "token"       # 启用 token 鉴权
auth.token = "AliceAndKey"  # 鉴权 token

# Web 管理界面
webServer.addr = "0.0.0.0"         # Web 管理界面监听地址
webServer.port = 7500              # Web 管理界面端口
webServer.user = "alice"           # 登录用户名
webServer.password = "aliceandkey" # 登录密码

# 网络优化
transport.tcpMux = true                      # 启用 TCP 多路复用
transport.tcpMuxKeepaliveInterval = 30       # TCP 多路复用保活间隔(秒)
transport.maxPoolCount = 10                  # 最大连接池大小
transport.heartbeatTimeout = 120             # 心跳超时时间(秒)

# 日志配置
log.to = "./frps.log"       # 日志文件路径
log.level = "warn"          # 日志级别(warn、info、debug)
log.maxDays = 7             # 日志保留天数

# HTTP/HTTPS 支持
vhostHTTPPort = 8080   # HTTP 虚拟主机端口
vhostHTTPSPort = 8443  # HTTPS 虚拟主机端口

配置功能

  1. 服务监听:

    • 服务端监听 7000/TCP 端口,处理来自客户端的穿透请求。
  2. 身份验证:

    • 使用 token 机制对客户端连接进行认证,确保连接安全。
  3. Web 管理界面:

    • 提供直观的 Web 管理界面,可通过 7500/TCP 端口访问。
    • 管理界面设置了用户名和密码(alice / aliceandkey)保护。
  4. 网络优化:

    • 启用 TCP 多路复用,减少连接开销。
    • 设置连接池(最大 10 个连接),适合高并发场景。
    • 使用心跳检测(120 秒超时)确保连接稳定性。
  5. 日志管理:

    • 日志记录存储到 ./frps.log 文件中,保留 7 天,便于排查问题。
  6. HTTP/HTTPS 支持:

    • 虚拟主机功能支持 HTTP(8080)和 HTTPS(8443)的代理服务。

使用场景

  • 远程服务穿透:

    • 允许多个客户端通过 frps 实现服务代理。
  • Web 管理与监控:

    • 通过 Web 管理界面监控当前连接状态和代理服务。
  • 高并发场景:

    • 适用于需要同时处理多个连接的场景,优化连接复用和资源管理。

配置注意事项

  1. 防火墙和安全组:

    • 确保服务器开放以下端口:
      • 7000/TCP:用于客户端连接。
      • 7500/TCP:用于 Web 管理界面。
      • 8080/TCP8443/TCP(如果使用 HTTP/HTTPS 代理)。
  2. 日志管理:

    • 根据需要调整日志级别(如调试时使用 debug)。
  3. 安全性:

    • 确保 auth.token 足够复杂,避免被暴力破解。
    • 管理界面的用户名和密码(webServer.userwebServer.password)应设置为复杂值。

总结

通过上述配置,frps 可以安全高效地处理客户端连接,并提供管理界面和 HTTP/HTTPS 支持。这种配置适合需要长时间运行、支持多客户端的环境。