すべての記事へ戻る

TCPトンネリングを使用してAnyDeskでリモートファイルにローカルにアクセスする方法


AnyDeskのTCPトンネルでリモートフォルダをローカルにマウントする

ソフトウェア開発者にとって、リモートワークが困難な場合があります。ローカルでソースコードにアクセスできれば、より速く、より快適に物事を進められることがよくあるからです。AnyDeskを使用すれば、ローカルマシンにダウンロードすることなく、リモートデバイス上のファイルにローカルにアクセスできるTCPトンネル接続をセットアップすることが可能です。

この記事では、Linux用のAnyDeskでTCPトンネリングを使用してリモートフォルダをローカルにマウントする方法をご紹介しますが、WindowsやmacOSデバイスでも利用できます。このソリューションは、従来のリモートデスクトップアクセスよりもCPUとトラフィックの効率がはるかに優れています。

SSHによるダイレクトトンネル接続のセットアップ

SSHは、他のTCP接続と同様に、接続先のホストがローカルコンピュータから認識できる場合のみ可能です。これは、例えばホストが同じローカルネットワーク上にあるか、外部IPアドレスを持っている場合に生じます。通常、自宅から会社のPCに接続する場合、このようなケースはありません。

しかし、AnyDeskを使えば、ファイアウォールやNATに関係なく、どのコンピュータにも接続することができます。AnyDeskのTCPトンネリング機能を使用することで、リモートコンピュータへのトンネルをセットアップし、2台のコンピュータが同じネットワーク内にあるかのようにSSHを使用できます。これを行うには、アドレスタイルのコンテキストメニューからTCPトンネリング設定を開きます:

最近のセッションでのコンテキストメニュー

ダイアログボックスでは、ダイレクトトンネルとリバーストンネルの設定が表示されます。今回の目的では、ダイレクトトンネルを選択します。SSHポートを転送するために、セットアップウィンドウにルールを追加する必要があります:

 

TCPトンネリングのセットアップ

上記の例では、リモートマシンのTCPポート22(SSHが使用するリモートポート)をローカルのポート2222に転送しています。正確なポート番号は重要ではありませんが、今回は例として2222を使用します。

このトンネルは、対応するAnyDesk IDに接続するとすぐに有効になります。接続のタイプは関係なく、トンネルは通常モードとファイル転送モードの両方で動作します。私はトラフィックとCPU時間を節約するためにファイル転送モードを使用しています。

SSH接続のテスト

さて、トンネリングルールの作成とリモート側への接続が完了したら、いよいよSSH接続のテストです。ターミナルで以下のことを実行します:

ssh -p 2222 <username>@localhost

<username>は、会社PCのユーザー名に置き換えてください。すべて正しく行われていれば、リモートマシンでパスワードを求められます。アクセス確認後、リモートシェルは不要になりますので、終了してください。

次に、ローカルのSSHキーを会社PCにコピーし、会社のマシンがパスワードなしでアクセスできるようにします。まだSSHキーを生成していない場合は、以下のコマンドをご使用ください:

ssh-keygen

ここで、キーをリモートマシンにコピーします:

ssh-copy-id -p 2222 <username>@localhost

この手順の後、パスワードなしでSSHに接続できます。

リモートフォルダへのアクセス準備

初期設定が終わったら、作業環境をセットアップしましょう。ここでのコツは、SSHFSを使ってリモートフォルダをローカルにマウントすることです。SSHFSがインストールされていない場合は、DEB系のディストリビューションでは、aptで簡単にインストールできます:

sudo apt install sshfs

ここでは、リモートフォルダをマウントするためのフォルダをローカルに作成します。両方のフォルダが全く同じパスであることをお勧めします。この例では、作業フォルダを以下のように仮定します:

/home/johndoe/work

では、ローカルにマウントしましょう:

sshfs -p 2222 johndoe@localhost:/home/johndoe/work /home/johndoe/work

すべてが正しくセットアップされていれば、リモートファイルがローカルにマウントされているはずです。TCPトンネルを動作させるには、アクティブなAnyDesk接続が必要であることを忘れないでください。AnyDesk接続を閉じると、フォルダは即座にマウント解除されます。

コマンドの自動化

これまで、リモートデータにアクセスするためには、手作業でコマンドを実行する必要がありました。AnyDeskでは、このプロセスを自動化することができます。これまでと同様に、コンテキストメニューからTCPトンネル設定を開きます。ダイアログの一番下に、チェックボックスが表示されます:カスタムスクリプトの実行。チェックマークを設定すると、TCPトンネルが確立されるたびにスクリプトがローカルに実行されます。では、作業フォルダを自動的にマウントするスクリプトを作成してみましょう。

 

TCPトンネリングスクリプトの設定

では、保存をクリックして接続します。接続後、フォルダは自動的にマウントされ、接続を解除するとマウントも解除されます。マウントされたフォルダは、お気に入りのIDEやテキストエディタで問題なく動作します。

自動化の可能性はもっとたくさんあります。例えば、リモートシェルを自動的に開くための行をスクリプトに追加できます。私はお気に入りのターミナルエミュレータとしてTerminatorを使用しています。そこで、起動時にリモートシェルを開くカスタムプロファイルを作成できます:

 

Terminatorターミナルエミュレータ

スクリプトに以下のコマンドを追加するだけで、接続次第、リモートシェルの準備が完了します:

terminator -p remote

社内のウェブリソースへのアクセス

通常、例えば課題追跡システムなど、オフィスからの直接利用しかできない社内ウェブリソースへのアクセスが必要な場合があります。SSHを使えば、SOCKS5プロキシを簡単にセットアップできます:

ssh -D 7000 -N -p 2222 johndoe@localhost

このプロキシは、ローカルホストのポート7000でアクティブになります。この行をAnyDeskのTCPトンネルスクリプトに追加すると、プロキシが自動的にセットアップされます。使用するには、FoxyProxyという名のブラウザの拡張機能で、URLのパターンに応じてカスタムプロキシ設定をするのがお勧めです。

結論

従来のリモートデスクトップアクセスの代わりとして、Linux向けAnyDeskを使用して、SSHFSでマウントすることでリモートファイルにローカルでアクセスできます。特に、リモートファイルやソースコードをローカルで作業する必要がある場合、リモートワークが非常に楽になります。

Linux向けAnyDeskは使いやすく、あらゆるオペレーティングシステムへの継続的な接続を確立します。当社のリモートデスクトップソフトウェアは、Ubuntu、Red Hat、openSUSEなど、膨大な種類のLinuxディストリビューションで動作します。どのような種類のライセンスを所有していても、アップデートは常に無料です。

Linux向けAnyDeskを始めてみることに興味がありますか?今すぐLinuxディストリビューションを選択し、パッケージマネージャーに従って素早く簡単にインストールできます

ニュースやヒントなどの情報をお届けします