stone

最終更新日時:2014-03-24 00:00:00
その他UNIX系

stoneとは


stoneを使うとパケットの中継やプロキシ動作を簡単に設定することができます。
また、これだけの機能のプログラムのわりにはコードのサイズが非常に小さいのも特徴の一つですね。
手軽にポートフォワードを設定したい時とかに重宝します。

インストール


stone-2.3cの例です。
Simple Repeater stoneからアーカイブを取得し、展開します。

 % gzip -dc stone-2.3c.tar.gz | tar xvf -
 % cd stone-2.3c


後はただ単に make するだけです。
ただし、ビルド環境を指定します。Linux なら make linux となります。
インストーラーは付いていないので生成されたstoneプログラムを適当な場所へコピーすればインストール完了です。

 % make linux
 % su
 # cp -p stone /usr/local/bin


CentOS6.x でのビルド


CentOS-6.3 上で、store-2.3e(解凍すると、なぜかstone-2.3d-2.3.2.7)の例です。

 % make linux


すると、以下のようなエラーが出ます。

 cc  -O -Wall -DCPP='"/usr/bin/cpp -traditional"' -DPTHREAD -DUNIX_DAEMON -DPRCTL -DSO_ORIGINAL_DST=80 -DUSE_EPOLL  -o stone stone.c -lpthread
 stone.c: In function ‘strnUser’:
 stone.c:4509: error: 不完全型のポインタへの間接参照
 stone.c:4524: error: 不完全型のポインタへの間接参照
 stone.c:4536: error: 不完全型のポインタへの間接参照
 stone.c:4551: error: 不完全型のポインタへの間接参照
 stone.c:4557: error: 不完全型のポインタへの間接参照


Makefile を修正して、上記の cc 時のパラメータに -D_GNU_SOURCE を付加するとビルドできます。


使用方法


様々な使用方法があるのですが、その中で簡単な例を。

proxy として使用。ログを syslog へ出力。

 % stone -l proxy 8080 


localhost:8888のパケットをxxx:8888に中継する

 % stone xxx:8888 localhost:8888
お問い合わせは 掲示板 にて。