トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

技術的雑談-sshのportForwadingってなあに?

技術的雑談-sshのportForwadingってなあに?


 環境


  • sshのversion:3.6.1p2らしい
  • OS:多分何でも大丈夫

 目的

  • sshのPort Forwadingって何なのか少しだけ説明

sshでは以下のオプションでポートフォワーディング(Port Forwarding)ができるらしい。

ssh -l ユーザ名 -L port:host:port ホスト
又は
ssh -l ユーザ名 -R port:host:port ホスト

でも、これだけだとman読んでも良くわからない……(汗)

で、実際に試してみました。

 実験


話の流れ上、

  • sshdのいるホストを「サーバ」(以下の例ではhost1)
  • sshを実行するホストを「クライアント」(以下の例ではhost2)

と呼ばせて頂きます。


-Lって何?


Lオプションはmanによると

Specifies that the given port on the local (client) host is to be
forwarded to the given host and port on the remote side.  This
works by allocating a socket to listen to port on the local side,
and whenever a connection is made to this port, the connection is
forwarded over the secure channel, and a connection is made to
host port hostport from the remote machine.  Port forwardings can
also be specified in the configuration file.  Only root can for-
ward privileged ports.

【適当訳:】
これを指定すると、指定されたlocal(client)のポートを指定されたホストの
指定されたサーバに転送する。
local側にlistenするportを用意し、このポートへのアクセスはどこからのもの
であっても指定されたportに転送される。云々。以下省略。

らしいので、要は、「クライアント側に1個Portの口をあけて、そこに来たアクセスは全部どこかに転送しまっせ」という事らしい。
(ただし、使えるのはrootだけらしい。)

んなわけで実験。

host2# ssh -l hoge -L 8880:host1:80 host1

を実行すると、

  • host2側でnetstat -aすると、localhost:8880がlistenになっている
  • host1側は特に変化無し

という変化がおきます。

ここでhost2から、

# telnet localhost 8880

を実行すると、実際にはhost1のport 80(=webサーバ)につながります。
「GET / HTTP/1.0」とEnter2回でhost1のトップページが表示できるでしょう。

また、先の-L 8880:host1:80の代わりに「-L 1234:www.hoge.com:80」なんて指定してsshを起動すると外部のwww.hoge.comに接続することができます。

-Rって何?


先程の-Lでは、sshを使った側のサーバに転送用のPortができましたが、-Rではsshdのある側に転送用のポートができます。

んなわけで再び実験。

host2# ssh -l hoge -R 8880:host1:80 host1

を実行すると、

  • host2側は特に変化無し。
  • host1側でnetstat -aすると、localhost:8880がlistenになっている。

という変化がおきます。

試しに、

host1# telnet localhost 8880

とすると、host1のwebサーバにつながります。
(いや、自分のwebサーバにポート変えて接続できて何が楽しいんだ?という疑問はありますが…。)

でも、こちらも同じく外部のhostを指定することができます。

 履歴

2005/12/27 -- 初版

技術的雑談へ戻る

 突っ込み

name   comment  
URL (入力するとす ぱ むとみなします!)


技術的雑談へ戻る

TrackBack

TrackBack URL for this entry:
http://www.himajin2001.com/fswiki/tb.cgi/%B5%BB%BD%D1%C5%AA%BB%A8%C3%CC%2Dssh%A4%CEportForwading%A4%C3%A4%C6%A4%CA%A4%A2%A4%CB%A1%A9

技術的雑談へ戻る

最終更新日時:最終更新時間:2005年12月27日 15時25分52秒
トップページに戻る