8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ssh ポートフォワーディングまとめ

8
Last updated at Posted at 2015-05-30

概要

SSHのポートフォワーディングがあまりにわかりにくかったのでまとめました。

[mydev01] --> [mydev02] --> [mydev03]

サーバ名とglobalIP 便宜上のlocalhost名 役割
mydev01(192.168.33.31) local1 ssh実行サーバ
mydev02(192.168.33.32) local2 踏み台サーバ
mydev03(192.168.33.33) local3 接続先サーバ
それぞれ localhost(127.0.0.1)だが便宜上区別するためにlocalに添字をつけました。

mydev01 -> mydev02 への接続

mydev01(global) -> mydev02(global), mydev02(global) -> mydev02(global)

[mydev01:term1]
### 以下コマンドを実行してターミナルはそのままにしておく
$ ssh -L 4001:mydev02:22 mydev02
※ -L : ローカルフォワーディング

[mydev01:term2]
### 別ターミナルでmydev02に接続
$ ssh -p 4001 localhost

[mydev02:term2]
$ netstat -ano | less
===================================
tcp        0      0 192.168.33.32:22               192.168.33.32:46727            ESTABLISHED keepalive (7186.15/0/0)
===================================

以下の流れで接続

  1. [mydev01(global)]:4001 --> [mydev02(global)]:22
  2. [mydev02(global)]:46727 --> [mydev02(global)]:22

mydev01(global) -> mydev02(global), mydev02(local2) -> mydev02(local2)

[mydev01:term1]
### 以下コマンドを実行してターミナルはそのままにしておく
$ ssh -L 4001:localhost:22 mydev02

[mydev01:term2]
### 別ターミナルでmydev02に接続
$ ssh -p 4001 localhost

[mydev02:term2]
$ netstat -ano | less
===================================
tcp        0      0 127.0.0.1:22                127.0.0.1:36691             ESTABLISHED keepalive (7186.74/0/0)
===================================

以下の流れで接続

  1. [mydev01(global)]:4001 --> [mydev02(global)]:22
  2. [mydev02(local2)]:36691 --> [mydev02(local2)]:22

この接続方法を使えば、localhostからの接続しか受け付けないmysqlでもリモートから接続する事ができる。

mydev01 -> mydev02 -> mydev03 の接続

mydev01(global) -> mydev02(global), mydev02(global) -> mydev03(global)

[mydev01:term1]
### 以下コマンドを実行してターミナルはそのままにしておく
$ ssh -L 4001:mydev03:22 mydev02

[mydev01:term2]
### 別ターミナルでmydev02に接続
$ ssh -p 4001 localhost

[mydev03:term2]
$ netstat -ano | less
===================================
tcp        0      0 192.168.33.33:22               192.168.33.32:34252            ESTABLISHED keepalive (7024.55/0/0)
===================================

以下の流れで接続

  1. [mydev01(global)]:4001 --> [mydev02(global)]:22
  2. [mydev02(global)]:34252 --> [mydev03(global)]:22

mydev01(global) -> mydev02(global), mydev02(local2) -> mydev02(local2), mydev02(global) -> mydev03(global), mydev03(local3) -> mydev03(local3)

[mydev01:term1]
### 以下コマンドを実行してターミナルはそのままにしておく
$ ssh -t -L 4001:localhost:4002 mydev02 ssh -L 4002:localhost:22 mydev03

[mydev01:term2]
### 別ターミナルでmydev03に接続
$ ssh -p 4001 localhost

[mydev03:term2]
$ netstat -ano | less
===================================
tcp        0      0 127.0.0.1:22                127.0.0.1:59607             ESTABLISHED keepalive (7175.63/0/0)
===================================

以下の流れで接続

  1. [mydev01(global)]:4001 --> [mydev02(global)]:22
  2. [mydev02(local2)]:XXXXX --> [mydev02(local2)]:4002
  3. [mydev02(global)]:4002 --> [mydev03(global)]:22
  4. [mydev03(local3)]:59607 --> [mydev03(local)3]:22

2.の「XXXXX」は調べ忘れ。mydev02の適当なポート番号が入っていたはず。

参考

踏み台経由でファイルを転送したい場合は

scp -l 16000 -o 'ProxyCommand ssh vagrant@(踏み台サーバ) nc %h %p' hoge.txt vagrant@(転送先サーバ):/tmp

でOK

  • TeraTerm
  • 踏み台を経由したvnc接続
    • 踏み台サーバにログイン
    • 設定->SSH転送->追加
      • ローカルポート : 12345
      • リッスン : (何もなし)
      • リモート側ホスト : リモートサーバのIP
      • ポート : 3389
    • 設定->設定の保存
    • いったんログアウトして再度踏み台サーバにログイン
    • Windowsでmstsc(リモートデスクトップ)を実行
    • コンピュータ : 127.0.0.1:12345
    • vncのログイン画面が表示される
8
6
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
8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?