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

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 Makefile
linux:
	$(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 &

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です