質問: ftpエラー425 ftpで425エラーが出て困っています。 今まで繋がっていたのが突然繋がらなくなりました。 調べてみると20番ポートが遮断されている可能性が高く、 どこで遮断されているか調べる良い方法があれば教えて下さい。 ・クライアント os:windows 8.1、ファイアウォール: norton inernet security ・サーバー(aws) os:red hat enterprise linux server release 7.1 (maipo) ファイアウォール:awsのネットワークルール設定 接続は出来ていて、lsを打つとエラーになります。 サーバーにtertermでログインしてlocalhostにftpするとlsできるので、 ftpd自体に問題はなさそうです。 また、サーバー側の設定は直しておらず、突如動かなくなったので、 クライアントのファイアウォール設定が変わったのを疑っていますが、 ファイアウォールを一時停止しても解消しませんでした。 どこが悪いか原因を切り分けられるずに困っています。 原因箇所を調べる良い方法があればご教示ください。
回答: >ffftpで繋いでいて拡張オプションのpasvモードにチェックをつけていないのでpassiveモードではないはずですが、 クライアントソフトはactive ftpで接続しようとしているのは間違いないですね。 >wiresharkで見たところ、後ろにpasvと書かれていました。 >wireshark結果 >3967 345.551600000 52.27.xx.xxx 192.168.0.4 ftp 105 response: 200 port command> successful. consider using pasv. ← パッシブモードになっている? 良く読んで下さい。単に「passiveモードでの使用を検討して下さい」というメッセージです。 クライアントソフトはactive ftpで接続しようとしているものの、サーバ側がactive ftpを恐らくサポートしていないので、「passiveモードに移行してよ」とメッセージを出した。にも関わらずクライアントはpasvコマンドを実行することもなく、listコマンドを実行したので「425 failed to establish connection」、つまり「だぁかぁらぁ、データセション張ってないんだから」と返したわけです。 「passiveモードでの使用を検討して下さい」というメッセージは柔らかな表現ですが「いいか、俺はpassiveモードしか受け付けないからな。次はpasvコマンドを打てよな。それ以外は知らんからな」と等価です。まぁ、quitやbinaryやascii等は受け付けてくれるとは思いますが。 >またサーバーが20番ポートにセッションを張ろうとしている形跡がありませんでした。 >これはpasvモードになっているのでしょうか? サーバは少なくともpassiveモードしかサポートしていないようです。なので、サーバからクライアントの20/tcpにはコネクションを張らずに、21/tcpでクライアントからのpasvコマンド待ちです。pasvコマンドがクライアントから来れば、21/tcpでentering passive mode (x,x,x,x,a,b)を返しますので、クライアントはサーバの(a*256+b)/tcpポートに対してsynを送信、所謂3ウェイハンドシェイクでデータセションが繋がるという流れになります。