FTPは5791バイトを超えることはできません。

FTPは5791バイトを超えることはできません。

私の家Kubuntu 11.10システムでは、FTPを介して5791バイトを超える単一のファイルをアップロードできません。私はKonqueror、GFTP、Krusaderを使用して2つの異なるFTPサーバー(匿名ではなく雇用主のFTPサーバー)に接続してみました。また、他のユーザーは両方のサーバーに大きなファイルをアップロードできます。問題が私のKubuntuデスクトップであるか、ルーター/ ISPがブロックしているのかわかりません。次のようにMTUを変更してみました。この問題しかし、それは問題を解決できませんでした。この問題をどのように解決できますか?私の家には、FTP転送を行うことができる他のコンピュータはありません。

同じシステムでSSH経由で大きなファイルをアップロードするのに問題はありません。問題はFTPでのみ発生します。また、手動モード(CLIの-p)を介してのみ接続できます。

サンプル出力は次のとおりです。

ftp> put smallFile.txt 
local: smallFile.txt remote: smallFile.txt
227 Entering Passive Mode (50,63,78,1,198,219)
150 Accepted data connection
226-File successfully transferred
226 0.837 seconds (measured here), 48.98 bytes per second
41 bytes sent in 0.00 secs (494.3 kB/s)
ftp> put largeFile.txt 
local: largeFile.txt remote: largeFile.txt
227 Entering Passive Mode (50,63,78,1,198,224)
150 Accepted data connection
421 Service not available, remote server has closed connection
7785 bytes sent in 0.00 secs (62315.9 kB/s)
ftp>

電話を受けると、メッセージが表示されるまでかなり150 Accepted data connection待ちました。421 Service not available

答え1

以前にvsftpdをサーバーとして使用していた場合(ここではpureftpd)、サーバーがDATA接続を許可したがアップロードされたファイルにロックを書き込めなかったときにこれが発生したことを見たことがあります。クライアントは、送信バッファ+サーバの受信ウィンドウだけデータを送信できます。詳細は覚えていませんが、合計すると5791バイトを超えます。

5791は、初期TCP輻輳ウィンドウである4つのフルサイズパケットのように見えます。これは、送信中にTCP ACKパケット(SYN + ACKを除く)が失われたのと同じです。透明なプロキシの問題やファイアウォールの問題のようです。 FTPハンドシェイクの最初の部分を見ませんでした。 TLSを使用する可能性はありますか? (サーバーがこれをサポートしていることがわかります。)

「tshark -i any host 50.63.78.1」を実行し、何が起こるかを確認します。

関連情報