LoginSignup
7
8

More than 5 years have passed since last update.

SSH Remote Port Forwarding

Posted at

概要

SSHのリモートポートフォワーディングを利用することにより、
FWなどにより外部へしか通信できないネットワークに対して、FWを越えて通信することができます。

存在自体は知っていましたが、意外と便利でした。

イメージ

フォワーディング前
Before

フォワーディング後
After

前提

・経由サーバからユーザPCへssh接続できること

説明

こちらの記事を主に参考しました。

例えば、以下のようにした場合は「経由サーバへ」から「ユーザPC」へ
ssh接続をすると同時に、「ユーザPC」の「10080ポート」を「接続サーバ」の「80ポート」へフォワーディングすることなります。

従って、ユーザPCにおいて"http ://localhost:10080"にアクセスすることは、
すなわち"http ://[接続サーバ]:80"にアクセスしたことになります。

# 経由サーバから実行
$ ssh -R 10080:[接続サーバのIPアドレス]:80 [ユーザPCのIPアドレス]

これを応用すれば、ネットワーク的には少し遠いですが
更にユーザPC(Linux)にsocatを設定したりすることでユーザPC(Linux)を踏み台サーバとして利用できると思います。

例えば、上記の例だとユーザPCの10080ポートを80ポートとして提供することで、接続サーバの80ポートに対して通信させるといったようなことができます。

# ユーザPCで実行
$ socat tcp4-listen:80,reuseaddr,fork TCP:127.0.0.1:10080

上記のようにsocatを設定することで、更に他のPCからユーザPCのポート80にアクセスすることで、接続サーバの80へアクセスしているかのように見せることができます。

参考

sshポートフォワーディング

Linux経由でリモートデスクトップ接続をフォワーディング

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8