- ベストアンサー
FTP通信がおかしい
自宅のパソコンWindows2000ServerのIISでFTPサーバを構築しました。 外部インターネット環境でコマンドプロンプトからログインし、テキストファイルのアップロードが無事に行えることを確認することができましたが、なんだか変なことがいくつかあります。 (1)かなり高い確率で、コマンド入力後(put *、dir等)、固まってしまい、反応がなくなってしまう(テキストファイルの場合、サイズが小さいためか成功することが多いがワード等大きいものの時よく起こるようです、その場合FTPディレクトリには0バイトのファイルがアップされています) (2)アクセス拒否されてしまうことがある(読み取りも書き込みもOKにしています) 何かご存知の方いらっしゃいましたら教えてください。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
「外部インターネット環境」は「NAT 下」、乃至は「ファイヤウォール下」の環境じゃないですか? 基本的に Windows 環境にある ftp コマンドは、「アクティブモード」しか受け付けません。 要するに、FTP サーバ側から、IP マスカレード下にあるノードに対して、データ転送のセッションを張る事が出来ていない (うまくいってない) 可能性が考えられます。 アクティブモードの PORT コマンドは、平文でセッションを受け付ける自らの IP アドレスを指定してサーバに送るんですが、オモテに出ているルータから要求のノードの NAT 変換は行われますが、PORT コマンドで指定する IP アドレスやポートは、プライベートアドレスであり、ローカルノードの開放ポートのみを申告するので、サーバ側からデータ転送のセッションを張れず (NAT 変換されたセッション元には勿論張るが…) にコケる可能性が高いです。 実際にどこでコケてるか調べるには、debug モードを使ってください。 --- C:\>ftp ftp> debug Debugging On . ftp> open hogehoge.**.jp Connected to hogehoge.**.jp 220 hogehoge.**.jp server (****) ready. User (hogehoge.xx.jp:(none)): hogehoge ---> USER hogehoge 331 Password required for hogehoge. Password: ---> PASS ABCDEFG 230 User hogehoge logged in. ftp> ls -la ---> PORT 192,168,0,123,5,34 --- debug モードでは上記のように、サーバに送信したコマンドを "---> " という矢印の後に表示してくれます。 多分、PORT コマンドを発した時に、レスポンスがかなり遅くなると思います。 その点、UNIX 環境等に存在する ftp コマンドは、パッシブモード (PASV) を実装しているのでクライアントからサーバのデータ転送用ポートに対してセッションを張る事が可能です。 ちなみに、パッシブモードは、Windows に実装できないわけではなく、「Windows の ftp コマンドに実装されていない」ってだけなので、パッシブモードは Windows でも実装できる機能です。 フリーウェア等の ftp クライアントとかでも、パッシブモードに対応しているのがいくつかあります。しかし残念ながら、Windows の ftp コマンドでは、パッシブモードは扱えません。 こういった状況で、FTP が詰まっちゃったら、パッシブモードをお使いになることをお勧めします。
その他の回答 (2)
よく言われるのに「PMTUDブラックホール問題」ってのがありますね。 これが原因であればMTU値、RWIN値を変更することで直ります。 変更は例えばNetTuneなどのツールで行ってください。 http://members.tripod.co.jp/mimi1014/
- 7_11shop
- ベストアンサー率25% (42/168)
単純に、パソコンのパフォーマンスが悪いのかもしれません。 また、コマンドプロンプトからではなく、 FTPソフトをご使用になられてみてはどうでしょうか。 ひょっとしたら、そのほうがうまくいく可能性もあります。
お礼
コマンドプロンプトでずいぶん待っているとレスポンスが返ってきました。7_11shopさんのおっしゃる通り、パフォーマンスが悪かったようです。 ご回答ありがとうございました。
お礼
nipotanさん、とても詳しいご回答ありがとうございます。 外部インターネット環境は、LAN内からでなくダイヤルアップでつないでいるのでやはり外部からの接続です。固まってしまったように見えたFTPコマンドも、随分待つとアップロードできました。単純にレスポンスが悪かったように感じます。 パッシブモードやアクティブモードに関することは知識として私になかったので大変参考になりました。 ありがとうございました。