はじまる

適当な事を適当に書く

【インフラ】リバーストンネルを挟んで、あるマシンで動いているWeb サイトを、SSH経由で自分のPCのWebブラウザに表示する。

はじめに

遠隔地にあるサーバー上で稼働しているNode-REDを覗く必要があるときやった。

あるマシン

こんな感じでサービスを動かす。自分は、systemdでやった。

# sshのポートフォワード。ssh は22番ポートから33022番ポートに変更してある。適用に 8023番ポートにリバースフォワードしてる
/usr/bin/ssh -o ExitOnForwardFailure=yes -N -f -R 8023:localhost:33022 ReverseTunnel
# 80番ポートを ReverseTunnelマシンの51880番ポートにリバース
/usr/bin/ssh -o ExitOnForwardFailure=yes -N -f -R 51880:localhost:80 ReverseTunnel

ReverseTunnel マシン

「あるマシン」 の 80番ポートをLISTENしている

$netstat -l
tcp        0      0 localhost:51880            *:*                         LISTEN

自分のPC

自分のPCからReverseTunnelにsshで繋げられる状態が前提。ReverseTunnel からみた 任意のhost の任意のポートを別ポートに転送する。ここでは ReverseTunnelのlocalhost の 51880番ポートを「自分のPC」の 8000番ポートに転送する。

$ssh -L 8000:localhost:51880 ReverseTunnel

ブラウザで http://localhost:8000 を開く 「あるマシン」 で動いているWebサイトが表示できる

参考

作業しているときにみたわけじゃないけど、下記の方が参考になるかも。

楽しいトンネルの掘り方(オプション: -L, -R, -f, -N -g) — 京大マイコンクラブ (KMC)