tcpserver::今更tcpserverメモ
via http://www.asahi-net.or.jp/~wv7y-kmr/memo/tcpserver.html
tcpserver は、D.J.Bernstein によって作成されたサーバ制御ツールで、同様のツールに、inetd などがあります。tcpserver は、ucspi-tcp というパッケージに含まれています。
tcpserver の特徴 同時接続数の制限ができる 指定されたポートを監視して、外部からの TCP 接続を受け付ける TCP 接続があった場合、対応するサービスを起動する。 接続元によって受け付けの許可・不許可の制御を行うことができる アクセス制御のルールにハッシュ化されたデータベース(cdb)を用いるため、大規模になっても高速に処理できる inetd は1プロセスで複数のポートの受け付けが行えるが、tcpserver は1プロセスにつき、1ポートの受け付けのみ行える
tcpserver [オプション] [ホスト名または、IPアドレス] [ポート番号] [サービスを行うプログラム] ホスト名、またはIPアドレスに 0 を指定すると、全ての IPアドレスの指定ポート番号を受け付ける ポート番号には、/etc/service に指定されているサービス名を指定することもできる
オプション [ -1pPhHrRoOdDqQv ] [ -c limit ] [ -x rules.cdb ] [ -B banner ] [ -g gid ] [ -u uid ] [ -b backlog ] [ -l localname ] [ -t timeout ] -1 受信準備が完了した後にに標準出力にローカルポート番号を出力する。 -p ホスト名を調べた後、逆引きを問い合わせ、IPアドレスが一致しない場合、 $TCPREMOTEHOST を設定しない -P ホスト名を調べた後、逆引きを問い合わせない(デフォルト) -h 接続元のホスト名をDNSに問い合わせて、結果を $TCPREMOTEHOST に格納する(デフォルト) -H 接続元のホストをDNSに問い合わせない -r 接続元ホストから $TCPREMOTEINFO を取得する(デフォルト) -R 接続元ホストから $TCPREMOTEINFO を取得しない -q エラーメッセージを出力しない -Q エラーメッセージを出力する(デフォルト) -v エラーメッセージとステータスメッセージを出力する -c [接続数] 同時に起動できる接続数の上限を指定 -x [cdb ファイル] cdb ファイルに指定されたルールに従う -B [バナー] 接続時にバナーを出力する -g [GID] ポートを受け付けるグループID -u [UID] ポートを受け付けるユーザID -b [バックログ数] TCP SYNのバックログを許可する。SYN cookies をサポートしているシステムでは、バックログは無意味。 -l [localname] DNSでローカルホスト名を調べない。環境変数 $TCPLOCALHOST には localname を使用 -t [秒数] 指定した秒後に、$TCPREMOTEINFO 接続を停止する(デフォルトは26秒)