sshによるPort Forwardingとrsync
Port Forwarding
Portforwardingとは,ローカルの特定のポートへのアクセスを別のマシンの指定したポートへ転送することである.
Linuxではssh(Secure SHell)によって実現することができる.
ssh -fN -L1101:[Remote2]:22 [Remote1] -l [username]
root権限で上記のコマンドを実行すると,ローカルの1101番ポートをRemote1経由でRemote2の22番につなぐことができる.
オプションについて調べておくこと.(-lはRemote1かRemote2かどちらのusernameだろう?)
rsync
Port Forwardingができたら,rsyncコマンドを使ってファイルの転送をしてみる.
rsyncでローカルの1101番ポートを指定してファイルの転送を行えば,それはRemote1を経由してRemote2の22番ポートに転送をしていることになる.
rsync -avz -e 'ssh -p 1101' /home/nakagawa/www/* nakagawa@localhost:/home/nakagawa/hoge
/home/nakagawa/www/以下のすべてのファイルを1101番ポートを経由してlocalhost(Remote2)の/home/nakagawa/hoge/以下に転送をする.
MEMO
ssh -fN -L22:[Remote2]:22 [Remote1] -l [username]
とするとうまくいかない.(何故?すでに使われている?)
ポート番号の1〜1023はウェルノウンポートと呼ばれており,すでに予約されたポート番号となっている.
例えば
25: SMTP(Simple Mail Transfer Protocol) メール送信用のポート
53: DNS(Domain Name Server) ドメインネームサーバー用のポート
80: http(Hyper Text Transfer Protocol) wwwに接続するためのポート
110: pop3:(Post Office Protocol - Version 3) メール受信用のポート
そして22番はsshのリモートログイン用のポートである.