- ベストアンサー
FTPの接続継続時間について
サーバへのFTP接続継続時間についての質問です。 症状は、FTPソフトを操作しないまま1~2分放っておくと接続が切れてしまう、というものです。 FTPソフトは「FFFTP Ver 1.89a」を使用しています。 サーバは社内に設置されたローカルサーバで、「Red Hat Linux 7.3」を使用しています。 Telnetは切れないように設定してもらったので一切切断されないのですが、FTPについては管理者もただ首を傾げるばかりで、サーバの設定なのかFTPソフトの設定なのかも見当もつきません。 もし、FTPの接続継続時間について設定がお分かりの方おられましたら、ぜひともご教授ください。 よろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ちなみにxinetdにコネクションを切断する機能はありません。 というわけでだいたい見当がついてきました。 おそらくproftpdのバイナリ作成時にデータ転送後のタイムアウト秒数が指定されていると思われます。 (TCP/IPソケットプログラムの世界に踏み込んでしまいました。) というわけでproftpdのホームページより、ソースをダウンロードしてコンパイル時のオプションを調べてみました。 ftp://ftp.infoscience.co.jp/pub/proftpd/distrib/source # tar xvzf proftpd.1.2.7rc2.tar.gz # cd proftpd-1.2.7rc2 # ./configure --help | less とやると、見つけました。 --enable-timeout-linger set the default timeout (in secs) for lingering closes (default=180) TCP/IPソケットのデータ転送後コネクションを切断する時間(標準で180秒=約3分)がコンパイル時に指定されていると考えられます。 # ./configure --enable-timeout-linger=秒数 または # ./configure --disable-timeout-linger のあと # make ; make install と実行すると /usr/local/sbin/proftpd /usr/local/sbin/in.proftpd /usr/local/etc/proftpd.conf がインストールされます。 #2の補足を拝見すると server = /usr/local/sbin/in.proftpd と指定されているので、redhat標準のproftpdではなくソースからコンパイルされてるようですね。 一度上記のオプションを指定して再コンパイルしてみてはいかがでしょうか?
その他の回答 (3)
- xjd
- ベストアンサー率63% (1021/1612)
TimeoutStalled ではだめでしたか。 ではTimeoutIdle はどうでしょう? TimeoutStalledは、データーをやり取りし始めたが実質的にデーターが流れていない状態でタイムアウトになるまでの時間 TimeoutIdleは、サーバーとクライアント間で何も通信が無い状態でタイムアウトになるまでの時間
補足
度々の回答ありがとうございます。 TimeoutIdleも設定してみましたが、やはり変わりないようです。 前回の補足に書きました「proftpdをデーモンとして起動していない」ということは、何か関係ありますでしょうか? まぁ不便なだけで、出来ないと困るというほどのことでもありませんので、進展がないようでしたら、あと数日で締め切りたいと思います。 どうもありがとうございました。
- xjd
- ベストアンサー率63% (1021/1612)
サーバでも設定できます。 wu-ftpdなら起動時に -t 秒数 と指定する。 proftpdなら/etc/proftpd/proftpd.confの TimeoutStalled 秒数 と指定する。
補足
ご回答ありがとうございます。 使用しているのはProFTPDでしたので、早速proftpd.confのTimeoutStalledを3600にしてみましたが、やはりだめでした。 管理者に確認したところ、proftpdはデーモンとして起動させておらず、xinetdのftpの設定で起動するようになっているということでしたので、これが原因かもしれません。 ※設定は次のようになっています。 # default: off # description: ProFTPD service ftp { flags = REUSE socket_type = stream protocol = tcp wait = no user = root server = /usr/local/sbin/in.proftpd log_on_failure += USERID disable = no } もしTimeoutStalled以外のproftpdの設定や、xinetdの設定でこれを変えられるようでしたら、またよろしくお願い致します。
- tonga
- ベストアンサー率28% (2/7)
オプション→転送2→ネットワークタイムアウト時間 の設定項目の中を 0=タイムアウトなし にされてみてはいかがでしょうか?
お礼
ご回答ありがとうございます。 ネットワークタイムアウト時間を0にしてみましたが、やはり1~2分程度で切れてしまうようです。 どうやらサーバ側の設定のようですので、そちらを調べてみたいと思います。 どうもありがとうございました。
お礼
お礼が遅くなりまして、大変申し訳ございません。 こちらの内容を拝見し、早速ヘルプを見てみましたが、インストールされているProFTPDのバージョンが1.2.6だったためか、-timeout-linger に関するコンパイルオプションの情報が見つかりませんでした。 その後、これまで頂いた回答を元にいろいろ試してみたのですが、TimeoutLogin と TimeoutNoTransfer の設定を proftpd.conf に加えましたところ、短時間で切断されることがなくなりました。 (両方同時に加えてみたので、どちらの設定が有効だったのかは不明です。申し訳ございません。) ともかく、おかげさまで設定を変更することが出来ました。 また、今回のことで大変勉強にもなりました。 本当にありがとうございました。