読者です 読者をやめる 読者になる 読者になる

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秒)




via. http://www.emaillab.org/djb/tcpserver/whatis.html