大きなファイルをインターネットからLinux VMにFTP(取得)できません。しばらくするとタイムアウトします。
実際のエラーは「制御接続からの応答を読み取れませんでした-タイムアウトしました。 "このエラーは、ファイルの適切なチャンクがすでに転送された後、数分後に発生します。
設定は次のとおりです。
FTPクライアント:VMWare Player 3.0上のLinuxで実行されているncftpget FTPサーバー:インターネット上の他の誰かのマシン、設定は不明 ゲストOS:Ubuntu 8.10 Linux 32ビット、 vmxnetおよびvmwareツールがインストールされています。 ホストOS:Vista 64ビット ネットワーク:Linux VMはブリッジドNICを介してインターネットに接続します(NATも試しました) FTPモード:PASV
[〜#〜] update [〜#〜] Linux VMのNetstatとDIR-655ルーターの同等の管理ページの両方で、接続が有効であることが示されています(tcp 'ESTABLISHED ' 状態)。 Vistaには接続がまったく表示されません。接続状態がVM内でのみ管理されている場合、これは正常だと思います。
役に立つ場合に備えて、Vistaでのnetsh interface tcp show globalの出力を次に示します。
C:\ Users\alex> netsh interface tcp show global アクティブ状態のクエリ中... TCPグローバルパラメータ ---- ------------------------------------------ 受信側スケーリング状態:有効 チムニーオフロード状態:無効 受信ウィンドウ自動チューニングレベル:非常に制限 アドオン輻輳制御プロバイダー:なし ECN機能:無効 RFC 1323タイムスタンプ:無効 **上記のautotuninglevel設定は、Windowsスケーリングヒューリスティックス がローカル/ポリシー構成を上書きした結果です。
トラブルシューティングの目的で、wget
またはcurl
を介して同じファイルをダウンロードしてみてください。 PEraは正しいと思います。NOOPコマンドはこれを防ぎ、おそらくwgetまたはcurlがそれらを送信するでしょう。
NATを使用している場合は、NATタイマーがあなたを切断している可能性があります。ホテルの部屋からマシンにsshし、しばらくの間何もできない(5未満)時々分!)
# echo 60 > /proc/sys/net/ipv4/tcp_keepalive_time
# echo 60 > /proc/sys/net/ipv4/tcp_keepalive_intvl
# echo 20 > /proc/sys/net/ipv4/tcp_keepalive_probes
それらを試してください。これにより、ソケットのアクティビティに関係なく、すべてのTCPストリームで毎分1回キープアライブが送信されます。
FTPクライアントは実際にはキープアライブを使用しない場合があることに注意してください。これは、アプリケーションが要求する必要があるものです。それが失敗した場合は、別のFTPクライアントをインストールするとうまくいくでしょう。 NetBSD FTPクライアント(lukemftp)が利用できるかもしれませんが、これは私が今まで見た中で最高のコマンドラインFTPクライアントです。
非アクティブのためにリモートエンドが接続を閉じている可能性もあります。もしそうなら、それは現実のかなり壊れた考えを持っています。これらのTCP上記のキープアライブハックで問題が解決しない場合は、クライアントが定期的にコマンド(NOOPなど)を送信する必要があるか、FTPサーバーの管理者がエンドを変更する必要があります。
VMとFTPサーバーの間の途中にある任意のフィルタリングデバイスである可能性があります。ほとんどのファイアウォール(ホームルーターを含む)には、アイドルTCPセッションは、一定のタイムアウト後にリセットされます。
VM NICを(NATの代わりに)ブリッジモードに変更してホストOSを整理することができます。次に、FTPクライアントがNOOPコマンドを送信することを確認してください定期的にコマンドチャネルが開いています。コマンドセッションが閉じられていることがわかった場合、データ接続を閉じるファイアウォールがあります。データ接続がアイドル状態であるか、トラフィックを伝送しているかに関係なく...
HTH、
PEra
コマンドラインからこれを行っている場合は、「ハッシュ」を有効にしてみてください(「バイナリ」は私が常にオンにしているもう1つのものです)。これにより、制御ポートで十分なトラフィックが生成され、タイムアウトしないようにすることができます。
FTPは2つのソケットを使用します-1つは制御用、もう1つはデータ用です。
NAT VMのステートテーブル)が、そのソケットでの非アクティブのために制御接続のタイムアウトを引き起こしている可能性があります。
VMシステム上で「アクティブFTP」を有効にすることで、これを回避できる可能性があります。これにより、VMwareがFTPセッションをアクティブに監視し、データがまだ流れている限り、制御ソケットを存続させることができます。
FTPサーバーがVistaの場合、FTPサイトのプロパティに移動し、タイムアウトを15分(デフォルト)から増やします。転送しようとしているファイルのサイズはどれくらいですか?