会社のサーバ管理を任されました。OS:Red Hat Enterprise Linux ES release 4,
vsftpd-2.0.1-5.EL4.7 です。
外のCentOSサーバから ftpコマンドでRHELサーバにログインしましたが、putコマンドで
以下のエラーになります。
ftp> put hoge.txt
local: hoge.txt remote: hoge.txt
227 Entering Passive Mode (xxx,xxx,xxx,xxx,31,204)
ftp: connect: No route to host
ls, dirコマンドも上記のエラーになります。pwdコマンドは出来ます。
問題の切り分け方をご教授ください。
ここが参考になりません?
http://tameike.wordpress.com/2006/12/12/ftp-vsftp-%E3%82%92-selinux%E7%92%B0%E5%A2%83%E3%81%A7%E4%BD%BF%E3%81%86%E5%A0%B4%E5%90%88%E3%81%AE%E3%83%A1%E3%83%A2/
一応、概要、詳細の辺りも読んでみてから...
ここが参考になりません?
http://tameike.wordpress.com/2006/12/12/ftp-vsftp-%E3%82%92-selinux%E7%92%B0%E5%A2%83%E3%81%A7%E4%BD%BF%E3%81%86%E5%A0%B4%E5%90%88%E3%81%AE%E3%83%A1%E3%83%A2/
一応、概要、詳細の辺りも読んでみてから...
しかし、成功した理由は理解していません。アドバイス頂けないでしょうか?
普通にサーバの設定をいじって、試行錯誤できる方のようなので、どこまで分かってるのか分かりません(変な日本語)。
説明が冗長だったらごめんなさい。
ftp は、通信に socket を二つ使います。
コマンド用と、データ用です。
コマンド用は、クライアントからサーバにつなぎに行きます。
データ用は、モード(アクティブとパッシブ)によって、どちらからつなぎに行くかが違います。
アクティブモードは、サーバからクライアントに向かってつなぎに来ます。
パッシブモードは、逆に、クライアントからサーバに向かってつなぎに行きます。
また、データ用に使われるポートも、設定で変更はできますが、どのあたりを使うということはだいたい決まってます。
今回の場合、コマンドのやり取りはできていたので、社内のクライアントから社外の ftp サーバに向けて、ポート:21 で接続できていることが分かっています。
で、データを送信しようとすると、ソケットをつなごうとすると、ホストに到達できませんと言われているわけです。
IP アドレスで制限がかかっているわけではなさそう(コマンドが送信できているから)なので、ポートによる制限か、もしくは、更に接続する方向でも制限がかかっているか、ということが疑われます。
Windows の ftp.exe では、ファイル送信に成功してたということだったので、アクティブモードなら通信できるんだな、ということが想像ついたので、接続できるサーバとできないサーバの pasv_enable や、ポートの設定を比べて欲しい、というコメントを書きました。
# ftp.exe がパッシブモードをサポートしてない、というのは、前に調べたことがあって、知ってました
多分、gdwtseq さんの会社のファイアウォールの設定で、
ということになっているんだろうと、想像します。
アクティブモードとパッシブモードの違いが肝だと思うので、こんな辺りを参考にしてみたらどうでしょうか。
http://ameblo.jp/itboy/entry-10249857007.html
http://www.nina.jp/server/basic/ftp.html
かなり推測が入ってますし、自信をもって言い切れるほど分かっちゃあいません。
「コメントにすりゃあ、良かったかな」は、本音だったりします
# とりあえず、つながって良かった :-)
a-kuma3さん
アドバイスにとても感謝いたします。
また参考サイトも書いていだき、ありがとうございます。
ftpサーバを仕事で立てるのは初めてでした。
今後の参考にさせていただきたいと思います。
本当にありがとうございました。
普通にサーバの設定をいじって、試行錯誤できる方のようなので、どこまで分かってるのか分かりません(変な日本語)。
説明が冗長だったらごめんなさい。
ftp は、通信に socket を二つ使います。
コマンド用と、データ用です。
コマンド用は、クライアントからサーバにつなぎに行きます。
データ用は、モード(アクティブとパッシブ)によって、どちらからつなぎに行くかが違います。
アクティブモードは、サーバからクライアントに向かってつなぎに来ます。
パッシブモードは、逆に、クライアントからサーバに向かってつなぎに行きます。
また、データ用に使われるポートも、設定で変更はできますが、どのあたりを使うということはだいたい決まってます。
今回の場合、コマンドのやり取りはできていたので、社内のクライアントから社外の ftp サーバに向けて、ポート:21 で接続できていることが分かっています。
で、データを送信しようとすると、ソケットをつなごうとすると、ホストに到達できませんと言われているわけです。
IP アドレスで制限がかかっているわけではなさそう(コマンドが送信できているから)なので、ポートによる制限か、もしくは、更に接続する方向でも制限がかかっているか、ということが疑われます。
Windows の ftp.exe では、ファイル送信に成功してたということだったので、アクティブモードなら通信できるんだな、ということが想像ついたので、接続できるサーバとできないサーバの pasv_enable や、ポートの設定を比べて欲しい、というコメントを書きました。
# ftp.exe がパッシブモードをサポートしてない、というのは、前に調べたことがあって、知ってました
多分、gdwtseq さんの会社のファイアウォールの設定で、
ということになっているんだろうと、想像します。
2013/06/05 21:48:54アクティブモードとパッシブモードの違いが肝だと思うので、こんな辺りを参考にしてみたらどうでしょうか。
http://ameblo.jp/itboy/entry-10249857007.html
http://www.nina.jp/server/basic/ftp.html
かなり推測が入ってますし、自信をもって言い切れるほど分かっちゃあいません。
「コメントにすりゃあ、良かったかな」は、本音だったりします
# とりあえず、つながって良かった :-)
a-kuma3さん
2013/06/06 17:46:44アドバイスにとても感謝いたします。
また参考サイトも書いていだき、ありがとうございます。
ftpサーバを仕事で立てるのは初めてでした。
今後の参考にさせていただきたいと思います。
本当にありがとうございました。