揮発性のメモ2

http://d.hatena.ne.jp/iww/

サーバプログラミングをしない

サーバのプログラミングをもうしたくないので、しなくてもいい方法について
inetdみたいなネットワークサービスデーモンを探す

inetd (openbsd-inetd)
Debiantelnetとかに使ってたやつ
xinetd
Redhattelnetとかに使ってたやつ
tcpserver (ucspi-tcp)
qmailが使ってたやつ
micro-inetd
tcpserverのしょぼい版
ipsvd
SSLが使えるinetdみたいなやつらしい
netcat
ネットワークなんでもツール
socat
超すごいネットワークなんでもツール

inetd (openbsd-inetd)

apt-get install openbsd-inetd

/etc/inetd.conf に設定を足すだけでいい
もっとも簡単なサービスの設定サンプル

# 日付表示
9998   stream  tcp  nowait.999   root  /bin/date

# エコーリプライ
9999   stream  tcp  nowait.999   root  /bin/cat

inetutils-inetd

apt-get install inetutils-inetd

openbsd-inetd と入れ替わりで使う。 こっちは/etc/inetd.d/ が使えるようになる。
ほかの機能の違いはわからない。

# 日付表示
9998   stream  tcp  nowait.999   root  /usr/sbin/tcpd  /bin/date

# エコーリプライ
9999   stream  tcp  nowait.999   root  /usr/sbin/tcpd  /bin/cat

TCP wrapper(/usr/sbin/tcpd)抜きで起動する方法はわからない

xinetd

apt-get install xinetd

openbsd-inetd と入れ替わりで使う。 実は /etc/inetd.conf でも動作する。
(ただしサービス名は/etc/servicesにちゃんと書く必要あり)
もっとも簡単なサービスの設定サンプル

# 日付表示
testdate   stream  tcp  nowait.999   root  /usr/sbin/tcpd  /bin/date

# エコーリプライ
testcat    stream  tcp  nowait.999   root  /usr/sbin/tcpd  /bin/cat

tcpserver (ucspi-tcp)

apt-get install ucspi-tcp

もっとも簡単なサービスの起動サンプル

# 日付表示
tcpserver -R 0.0.0.0 9998 /bin/date

# エコーリプライ
tcpserver -R 0.0.0.0 9999 /bin/cat

-Rを付けないと起動時に26秒停止してしまう

micro-inetd

apt-get install micro-inetd

超単機能版。組込みとかでなら必要十分か
もっとも簡単なサービスの起動サンプル

# 日付表示
micro-inetd 9998 /bin/date

# エコーリプライ
micro-inetd 9999 /bin/cat

socat

apt-get install socat

サーバ程度お茶の子さいさいだけど、なんでもできる分サイズがでかい

# 日付表示
socat -v tcp-listen:9998,fork,reuseaddr system:/bin/date

# エコーリプライ
socat -v tcp-listen:9999,fork,reuseaddr system:/bin/cat