[GH-ISSUE #5058] Significant performance difference: direct SFTP transfer is fast but FRP port forwarding is much slower #3976

Closed
opened 2026-05-05 14:31:51 -06:00 by gitea-mirror · 3 comments
Owner

Originally created by @khdxs7 on GitHub (Nov 14, 2025).
Original GitHub issue: https://github.com/fatedier/frp/issues/5058

Bug Description

Title:
Significant performance difference: direct SFTP transfer is fast but FRP port forwarding is much slower


Describe the issue

Hello, I’ve been using FRP for many years and it has always been reliable.
Recently I discovered a significant performance issue when comparing direct transfer speed with FRP forwarding.

When I upload or download files to my cloud server using direct SFTP, the speed is very fast (full bandwidth).
However, when I expose my local service via FRP (TCP type) and access it from the same cloud server, the transfer speed becomes much slower, sometimes only a small fraction of the SFTP speed.

To double-check this, I also tested with a simple local Nginx static file server and observed the same slow performance when accessed via FRP.

So in both cases:

  • Direct SFTP → fast
  • Nginx (HTTP) via FRP → slow

This is the first time I noticed such a large gap in many years of using FRP.


Versions tested

  • frp 0.65.0

frpc Version

0.65.0

frps Version

0.65.0

System Architecture

linux/amd64

Configurations

Configurations used

frps.toml:

bindPort = 7000
auth.method = "token"
auth.token = "xxxxxxx"

frpc.toml

serverAddr = "xxxxxxx"
serverPort = 7000
loginFailExit = false

[[proxies]]
name = "test"
type = "tcp"
localIP = "127.0.0.1"
localPort = 80
remotePort = 21405


[auth]
method = "token"
token = "xxxxxx"

Logs

There is no error in logs. CPU usage is low during transfer.

Steps to reproduce

  1. Upload / download large files through SFTP directly to the cloud server → speed is very fast.
  2. Start a local Nginx static file server.
  3. Download files directly from cloud server to test HTTP speed → very fast.
  4. Expose the Nginx port through FRP (TCP).
  5. Download files through FRP forwarded port → significantly slower.

Affected area

  • Docs
  • Installation
  • Performance and Scalability
  • Security
  • User Experience
  • Test and Release
  • Developer Infrastructure
  • Client Plugin
  • Server Plugin
  • Extensions
  • Others

Update:

I wrote a Python program myself to implement a function similar to frp and conducted tests. However, the test results were the same as before. What is certain is that the problem lies with frp. It may be a mechanism or logic issue. I am not sure if this issue occurs in all versions.

Originally created by @khdxs7 on GitHub (Nov 14, 2025). Original GitHub issue: https://github.com/fatedier/frp/issues/5058 ### Bug Description **Title:** Significant performance difference: direct SFTP transfer is fast but FRP port forwarding is much slower --- **Describe the issue** Hello, I’ve been using FRP for many years and it has always been reliable. Recently I discovered a significant performance issue when comparing direct transfer speed with FRP forwarding. When I upload or download files to my cloud server using **direct SFTP**, the speed is very fast (full bandwidth). However, when I expose my local service via **FRP (TCP type)** and access it from the same cloud server, the transfer speed becomes **much slower**, sometimes only a small fraction of the SFTP speed. To double-check this, I also tested with a simple **local Nginx static file server** and observed the same slow performance when accessed via FRP. So in both cases: - **Direct SFTP → fast** - **Nginx (HTTP) via FRP → slow** This is the first time I noticed such a large gap in many years of using FRP. --- **Versions tested** - frp **0.65.0** --- ### frpc Version 0.65.0 ### frps Version 0.65.0 ### System Architecture linux/amd64 ### Configurations **Configurations used** `frps.toml`: ```toml bindPort = 7000 auth.method = "token" auth.token = "xxxxxxx" ``` `frpc.toml` ```toml serverAddr = "xxxxxxx" serverPort = 7000 loginFailExit = false [[proxies]] name = "test" type = "tcp" localIP = "127.0.0.1" localPort = 80 remotePort = 21405 [auth] method = "token" token = "xxxxxx" ``` ### Logs There is no error in logs. CPU usage is low during transfer. ### Steps to reproduce 1. Upload / download large files through SFTP directly to the cloud server → speed is very fast. 2. Start a local Nginx static file server. 3. Download files directly from cloud server to test HTTP speed → very fast. 4. Expose the Nginx port through FRP (TCP). 5. Download files through FRP forwarded port → significantly slower. ### Affected area - [ ] Docs - [ ] Installation - [x] Performance and Scalability - [ ] Security - [ ] User Experience - [ ] Test and Release - [ ] Developer Infrastructure - [ ] Client Plugin - [ ] Server Plugin - [ ] Extensions - [ ] Others --- Update: I wrote a Python program myself to implement a function similar to frp and conducted tests. However, the test results were the same as before. What is certain is that the problem lies with frp. It may be a mechanism or logic issue. I am not sure if this issue occurs in all versions.
gitea-mirror 2026-05-05 14:31:51 -06:00
Author
Owner

@github-actions[bot] commented on GitHub (Nov 30, 2025):

Issues go stale after 14d of inactivity. Stale issues rot after an additional 3d of inactivity and eventually close.

<!-- gh-comment-id:3592066967 --> @github-actions[bot] commented on GitHub (Nov 30, 2025): Issues go stale after 14d of inactivity. Stale issues rot after an additional 3d of inactivity and eventually close.
Author
Owner

@kkroid commented on GitHub (Dec 25, 2025):

@khdxs7 did you find the solution?

<!-- gh-comment-id:3691107378 --> @kkroid commented on GitHub (Dec 25, 2025): @khdxs7 did you find the solution?
Author
Owner

@ImZhangAo commented on GitHub (Jan 23, 2026):

Hello, I also have the same problem. Have you found a solution?

<!-- gh-comment-id:3788508600 --> @ImZhangAo commented on GitHub (Jan 23, 2026): Hello, I also have the same problem. Have you found a solution?
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/frp#3976
No description provided.