Macでトンネル接続してFTP/SFTP接続する簡単な方法
Windowsだと、WinSCPを使って、比較的簡単にトンネル経由でのFTP、SFTPサーバーへの接続が可能です。
ちなみに、ここで言うトンネル接続とは、クライアントPC -> 中継サーバー -> 接続先サーバーのように、間にひとつサーバーを挟んで、接続する方法を意味します。
なぜそんな厄介な事をやるのかというと、大人の事情で色々・・・なのですが、例えば、自分のインターネット環境は動的IPしか持っていないのに、接続先サーバーにFTP接続するにはIP許可が必要な場合。これだと、数週間後には、またIP許可をもらわないといけなくて、途方もなくめんどいのです(死)
それを回避するためには、自分が管理している他のサーバーに、あらかじめIP許可をもらって、そのサーバーを踏み台・・・じゃなかった、経由して、接続すると、サーバーは基本的に固定IPなので、いつまでも許可されたままの状態を保つ事ができるのです。
これを、俗にトンネル接続というんだとさ。めでたしめでたし♪
・・・・・・と、まあ、これで一件落着なら、この記事を読む必要はありません(汗)
問題は、Mac環境の場合でございます。
Macには、WinSCPの方に、デフォでトンネル機能を持っているFTPクライアントが、CyberDuckあたりしかありません。
できれば、FileZillaやCoda2、Transmitあたりの、通常使っているFTPクライアントで、トンネルをサポートしてもらいたいもの。
んで、結論ですが、実は、Macは、デフォルトでトンネルを作る機能が備わっているので、それを活用すれば、やりたい放題できます(笑)
やり方は、まず、ターミナルを開いて、トンネルを開けるところから始めます。
上記のようなコマンドをターミナルで叩くと、中継サーバーのパスワードが要求され、接続がうまくいくと、中継サーバーに接続されます。
そのターミナルの画面をずっと維持したままで、
FileZillaやCoda2、TransmitなどのFTPクラアントにて、
ホスト名をlocalhost、ポート番号を偽ポート番号(この場合は1234)、
アカウント名とパスワードを、元の接続先サーバーの情報で接続すればOK。
きちんと中継サーバーのIPアドレスでIP許可が降りているなら、この状態で接続先サーバーに接続が出来ます。
トンネルが不要になったら、ターミナルをexitします。
毎回、ターミナルでトンネルを掘る作業はもちろん必要ですが、比較的楽に、トンネリングが出来たのではないでしょうか?
めでたしめでたし♪
ちなみに、ここで言うトンネル接続とは、クライアントPC -> 中継サーバー -> 接続先サーバーのように、間にひとつサーバーを挟んで、接続する方法を意味します。
なぜそんな厄介な事をやるのかというと、大人の事情で色々・・・なのですが、例えば、自分のインターネット環境は動的IPしか持っていないのに、接続先サーバーにFTP接続するにはIP許可が必要な場合。これだと、数週間後には、またIP許可をもらわないといけなくて、途方もなくめんどいのです(死)
それを回避するためには、自分が管理している他のサーバーに、あらかじめIP許可をもらって、そのサーバーを踏み台・・・じゃなかった、経由して、接続すると、サーバーは基本的に固定IPなので、いつまでも許可されたままの状態を保つ事ができるのです。
これを、俗にトンネル接続というんだとさ。めでたしめでたし♪
・・・・・・と、まあ、これで一件落着なら、この記事を読む必要はありません(汗)
問題は、Mac環境の場合でございます。
Macには、WinSCPの方に、デフォでトンネル機能を持っているFTPクライアントが、CyberDuckあたりしかありません。
できれば、FileZillaやCoda2、Transmitあたりの、通常使っているFTPクライアントで、トンネルをサポートしてもらいたいもの。
んで、結論ですが、実は、Macは、デフォルトでトンネルを作る機能が備わっているので、それを活用すれば、やりたい放題できます(笑)
やり方は、まず、ターミナルを開いて、トンネルを開けるところから始めます。
コマンド:
ssh -L 偽ポート番号:接続先サーバーのIPアドレス:接続先サーバーのポート番号 中継サーバーのアカウント名@中継サーバーのIPアドレス -p 中継サーバーのポート名
・・・なにやら複雑な暗号ですが、以下のようになります。
使用例:
ssh -L 1234:123.123.123.123:22 root@100.100.100.100 -p 123
1234 = 偽ポート番号
123.123.123.123 = 接続先サーバーのIPアドレス
22 = 接続先サーバーのポート番号
root = 中継サーバーのアカウント名
中継サーバーのIPアドレス = 中継サーバーのIPアドレス
123 = 中継サーバーのポート名
ssh -L 偽ポート番号:接続先サーバーのIPアドレス:接続先サーバーのポート番号 中継サーバーのアカウント名@中継サーバーのIPアドレス -p 中継サーバーのポート名
・・・なにやら複雑な暗号ですが、以下のようになります。
使用例:
ssh -L 1234:123.123.123.123:22 root@100.100.100.100 -p 123
1234 = 偽ポート番号
123.123.123.123 = 接続先サーバーのIPアドレス
22 = 接続先サーバーのポート番号
root = 中継サーバーのアカウント名
中継サーバーのIPアドレス = 中継サーバーのIPアドレス
123 = 中継サーバーのポート名
上記のようなコマンドをターミナルで叩くと、中継サーバーのパスワードが要求され、接続がうまくいくと、中継サーバーに接続されます。
そのターミナルの画面をずっと維持したままで、
FileZillaやCoda2、TransmitなどのFTPクラアントにて、
ホスト名をlocalhost、ポート番号を偽ポート番号(この場合は1234)、
アカウント名とパスワードを、元の接続先サーバーの情報で接続すればOK。
きちんと中継サーバーのIPアドレスでIP許可が降りているなら、この状態で接続先サーバーに接続が出来ます。
トンネルが不要になったら、ターミナルをexitします。
毎回、ターミナルでトンネルを掘る作業はもちろん必要ですが、比較的楽に、トンネリングが出来たのではないでしょうか?
めでたしめでたし♪
この記事の最終更新日:2018/04/11
最初に記事を書いた日:2018/04/11
この記事をシェアする
関連記事
- ・hosts.denyを使わずに、サーバーへの全てのアクセスをIPアドレス拒否する方法
- ・「.well-known」以下をwwwにリダイレクトさせない方法
- ・【格安VPN】NordVPNは本当に安全なのか?【閲覧履歴ダダ漏れw】
- ・「root@notty」って何者?
- ・アクセス解析ツール「awstats」をCentOSにyumでインストールする
- ・Kali LinuxをVagrantにインストールする
- ・【Tomcat】Apache+Tomcat連携で、特定のディレクトリのみTomcatにする方法
- ・【PHP】HTTPDの溜まりきったログを一気に削除する方法
- ・【.htaccess】httpアクセスをhttpsに強制リダイレクトで、特定のファイルやディレクトリを除外する方法
- ・【Linux】DNSの向けられていないテストサーバーで、テスト証明書を3分以内に発行する方法