その他
    ホーム 技術発信 DoRuby CentOSにstoneをインストールしてみた

    CentOSにstoneをインストールしてみた

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    サーバ内の任意のポートへのアクセスはSSHトンネルでも出来ますが、毎回SSH接続しなければならないのは面倒と言う事で、CentOSにstoneをインストールしてみました。
    stoneはTCP/UDPのリピーターです。指定したサーバへ中継してくれます。

    ●stoneインストール

    # cd /usr/local/src
    # wget http://www.gcd.org/sengoku/stone/stone-2.3e.tar.gz

    # tar zxvf stone-2.3e.tar.gz
    # cd stone-2.3d-2.3.2.7
    # vi Makefilelinux:
    $(MAKE) FLAGS=”-O -Wall -DCPP=’\”/usr/bin/cpp -traditional\”‘ -DPTHREAD -DUNIX_DAEMON -DPRCTL -DSO_ORIGINAL_DST=80 -DUSE_EPOLL -D_GNU_SOURCE $(FLAGS)” LIBS=”-lpthread $(LIBS)” stone
    ↑makeに失敗するので、「-D_GNU_SOURCE」を追加します。# make linux
    ↑linux-sslだとmakeに失敗するので、linuxにしました。
    ※エラーが出なければOK

    # mv stone /usr/bin/
    # ln -s /usr/bin/stone /usr/local/bin/stone

    # cd ..
    # rm -fr stone-2.3d-2.3.2.7

    ●stone起動

    今回はTCP80/443に来たリクエストを同じネットワーク内の192.168.x.xに同じポートで流す事にしました。
    ApacheのProxyPassでも同じような事は出来ますが、スマートじゃない気がしたので、stoneを採用しました。
    iptables等でポート制限している場合は解除してください。
    # stone 192.168.x.x:80 80 &
    # stone 192.168.x.x:443 443 &

    ●stone自動起動設定

    再起動しても自動起動するようにrc.localに追加しておきます。
    # cd /etc
    # cp -a rc.local rc.local,201311
    # vi rc.local/usr/bin/stone 192.168.x.x:80 80 &
    /usr/bin/stone 192.168.x.x:443 443 &

    記事を共有