mirror of
https://github.com/fatedier/frp.git
synced 2026-05-15 08:05:49 -06:00
[GH-ISSUE #1074] relay下并发一大,ftp出现大量421错误,如何调优 #845
Labels
No labels
In Progress
WIP
WaitingForInfo
bug
doc
duplicate
easy
enhancement
future
help wanted
invalid
lifecycle/stale
need-issue-template
need-usage-help
no plan
proposal
pull-request
question
todo
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/frp#845
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @alphonsetai on GitHub (Feb 2, 2019).
Original GitHub issue: https://github.com/fatedier/frp/issues/1074
先说一下我的网络环境。
ftp服务器位于内网(和fpc同一个机器),ftp客户端位于内网,frps服务端位于Q外vps,且max_pool_count = 30
kcp协议、打开加密、打开压缩
客户端和服务端均配置成被动模式,一切ok,可以访问可以传输文件和数据。
但我最近刚好要备份webrtc的代码,这个工程比较大,小文件较多。
filezilla客户端同时开5个线程后,容易较高概率的出现:
响应: 421 Rejected command, requested IP address does not match control connection IP.
filezilla客户端日志片段如下:
响应: 421 Could not create socket.
命令: PORT 192,168,1,98,234,252
响应: 150 Opening data channel for file upload to server of "/mac-bak/android-ndk-r16b/prebuilt/darwin-x86_64/lib/python2.7/test/test_kqueue.pyc"
响应: 421 Could not create socket.
命令: PORT 192,168,1,98,234,253
响应: 227 Entering Passive Mode (192,168,1,46,195,101)
状态: 服务器发回了不可路由的地址。使用服务器地址代替。
命令: STOR test_largefile.py
响应: 226 Successfully transferred "/mac-bak/android-ndk-r16b/prebuilt/darwin-x86_64/lib/python2.7/test/test_kqueue.pyc"
状态: 文件传输成功,传输了 6,393 字节 (用时1 秒)
状态: 开始上传 c:\tmp-ftp\mac-bak\android-ndk-r16b\prebuilt\darwin-x86_64\lib\python2.7\test\test_linecache.py
命令: PASV
响应: 421 Rejected command, requested IP address does not match control connection IP.
错误: 文件传输失败
状态: 开始上传 c:\tmp-ftp\mac-bak\android-ndk-r16b\prebuilt\darwin-x86_64\lib\python2.7\test\test_lib2to3.pyc
命令: PASV
响应: 421 Rejected command, requested IP address does not match control connection IP.
错误: 文件传输失败
状态: 开始上传 c:\tmp-ftp\mac-bak\android-ndk-r16b\prebuilt\darwin-x86_64\lib\python2.7\test\test_lib2to3.py
命令: PASV
响应: 227 Entering Passive Mode (192,168,1,46,195,102)
由于被动模式下,ftp的数据通道每一次仅传输一个文件,下一个文件开始传输时,会新开一条数据通道(tcp连接)。
没有找到关于421详细的解释,从字面理解仅仅是数据通道和控制通道不匹配。
个人推测可能是客户端新启的连接到frps时,frpc那边的连接还没上来(或者是其他类似的原因?)
想求助一下各位,这个问题如何调优。
ps:大文件传输都ok,基本可以缩小问题范围就在并发和并发模型上了。
@fatedier commented on GitHub (Feb 2, 2019):
建议放弃 ftp,更换其他传输协议,本身已经过时了。
@alphonsetai commented on GitHub (Feb 2, 2019):
还没找到合适的文件传输协议啊。
@fatedier commented on GitHub (Feb 2, 2019):
这种每个文件传输都需要建立一个连接的方式,本身就不友好,而且也不是很适合内网穿透。如果是要做文件同步的话,应该有不少其他开源项目可以实现的。
@duhd1993 commented on GitHub (Apr 1, 2019):
@fatedier 请问可以推荐下有什么项目吗?想要找比较轻量适合在路由器上运行的web file browser,没有特别合适的。还是只能用ftp呢...
@fatedier commented on GitHub (Apr 2, 2019):
@lonelykid 只要下载或在浏览器查看的话可以使用 frp 自带的 http web server,对外提供简单的文件访问服务 。
有更多要求的话考虑 sftp 或其他相类似的协议。
@rampageX commented on GitHub (Apr 2, 2019):
同步当然是用 syncthing
@duhd1993 commented on GitHub (Apr 2, 2019):
谢谢,这个之前没注意到,的确符合我的需求。不过刚刚尝试了一下,打开结果是404 page not found,并且没有提示输入用户名密码。