Related problems
暂无已收录问题。
No conflict-matrix pairs for this tool yet.
# frp — Agent Guide
name: frp | version_range: 0.52.0~0.71.0 | generated: 2026-08-31
title_en: frp - Intranet penetration / reverse tunnel (frps + frpc) | desc_en: Expose LAN services without a public IP via frps/frpc; SSH home, HTTP serving, remote debugging.
Preflight
note: Standalone Go binaries, no runtime dependencies; Linux x86_64 verified (v0.71.0); download needs network (ghfast.top mirror verified, direct GitHub may be unreachable)
uname -m && curl -sI -o /dev/null -w '%{http_code}' https://ghfast.top/ --max-time 10
预期输出: `x86_64` + `200` or `403/429` (mirror reachable; 000 = network blocked, try proxy)
Install
note: Download the release tarball via ghfast.top mirror and install frps/frpc to /usr/local/bin; verified v0.71.0 (2026-08-14, Apache-2.0)
curl -L -o /tmp/frp.tar.gz https://ghfast.top/https://github.com/fatedier/frp/releases/download/v0.71.0/frp_0.71.0_linux_amd64.tar.gz
tar xzf /tmp/frp.tar.gz -C /tmp
sudo mv /tmp/frp_0.71.0_linux_amd64/frps /tmp/frp_0.71.0_linux_amd64/frpc /usr/local/bin/
frps --version && frpc --version
预期输出: `0.71.0` (two lines)
Operations
Start frps (server, isolated loopback demo)
note: bindAddr forced to 127.0.0.1 - without it this WSL environment binds an IPv6 dual-stack socket and IPv4 loopback is refused; verified with 27000-range ports
mkdir -p /tmp/frp-demo && cd /tmp/frp-demo
cat > frps.toml <<'TOML'
bindAddr = "127.0.0.1"
bindPort = 27000
TOML
./frps -c frps.toml &
sleep 1
预期输出: `frps tcp listen on 127.0.0.1:27000` `frps started successfully`
Start frpc (client, register a TCP proxy)
note: maps server port 27082 to local 27081; serverAddr is the frps host
cat > frpc.toml <<'TOML'
serverAddr = "127.0.0.1"
serverPort = 27000
[[proxies]]
name = "web-demo"
type = "tcp"
localIP = "127.0.0.1"
localPort = 27081
remotePort = 27082
TOML
./frpc -c frpc.toml &
sleep 2
预期输出: `login to server success` `proxy added: [web-demo]` `[web-demo] start proxy success`
Verify the tunnel
note: page served through the tunnel must equal the direct response (实测复现日志(2026-08-31))
curl -s http://127.0.0.1:27082/index.html
预期输出: `frp tunnel demo page`
Production config (public server)
note: server on a public-IP machine, bind 0.0.0.0; token auth both sides; TLS on by default since v0.50.0; open ports in cloud security group
sudo tee /etc/frp/frps.toml > /dev/null <<'TOML'
bindAddr = "0.0.0.0"
bindPort = 7000
auth.method = "token"
auth.token = "CHANGE_ME"
TOML
预期输出: (no output)
Check tunnel status
note: requires webServer block in frpc.toml (admin server), otherwise fails with "web server port should be set if you want to use this feature" (verified v0.71.0)
frpc status -c /etc/frp/frpc.toml
预期输出: `Proxy Status...` table, one row per proxy; healthy row: `web-demo running 127.0.0.1:27081 127.0.0.1:27082`
Hot reload (add/remove proxies without restart)
note: applies proxy add/remove/update only; connection-level changes (serverAddr/serverPort/auth) need a full restart; requires webServer enabled
frpc reload -c /etc/frp/frpc.toml
预期输出: `reload success`
Uninstall
note: standalone binaries + config only; no global state; also close security-group ports
sudo rm -f /usr/local/bin/frps /usr/local/bin/frpc
sudo rm -rf /etc/frp
pkill -f frpc; pkill -f frps 2>/dev/null
预期输出: (no output; binaries and config removed)
Facts
writes: none (standalone binaries, own /etc/frp config; no package manager, no global shell config) | runtime: none (static Go binaries; TLS + token auth built in) | notes: frpc may be flagged by antivirus (project docs issue 3637); systemd managed hosting measured 2026-09-01 (transient unit: active/stop/tunnel close); `frpc reload` hot-reloads config without restart; dual-stack IPv4-refused pitfall on WSL fixed by explicit bindAddr | status/reload need webServer (admin) block
Source: frp · validated 2026-08-31 · v0.52.0~0.71.0