外出先で急に PC を使いたくなったのに PC を持っていない! ということはありませんか?
サーバーに接続したいけれど、信頼できるターミナル アプリがないということは?
code tunnel
コマンドで VS Code Server を起動すれば、スマホから好きなコマンドを実行できます。
マシンの用意
パブリック IP は不要なので、自宅で PC をつけっぱなしにするだけでも OK です。
Linux がほしいことが多いので、以下に Google Cloud の Free Tier の Compute Engine を使った例を示します。
Oracle Cloud を試したかった話
本当は、24GB RAM + 4CPU + 200GBストレージのLinuxサーバーを無料で手にいれる方法である反面、【OCI】Oracle Cloudアカウントが停止された話のような深刻なリスクもある Oracle Cloud を試してみたかったのですが、サインアップできませんでした。
Compute Engine の構成
以下の構成で課金されないはずです。未確認 (作ったばかりで請求されていない) なので、請求されちゃったらすみません。
- リージョン: us-west1 (Free Tier で使える中では地理的に日本から近い)
- Series: E2
- マシン タイプ: e2-micro (Free Tier のため)
- オペレーティング システム: Ubuntu
- バージョン: Ubuntu 24.04 LTS (x86/64)
- ブート ディスクの種類: 標準永続ディスク (Free Tier のため)
- サイズ (GB): 30 (Free Tier での最大値)
- データ保護: バックアップなし
- ネットワーキング
- ネットワーク インターフェース
- 外部 IPv4 アドレス: エフェメラル または 静的外部 IP アドレス
- "Compute Engine free tier does not charge for an external IP address" とあるので、課金されないはず
-
ネットワーク サービス ティア: スタンダード
- "0-200 GiB/month" が無料
- Premium でも "1 GB of outbound data transfer from North America to all region destinations (excluding China and Australia) per month" は無料
- 外部 IPv4 アドレス: エフェメラル または 静的外部 IP アドレス
- ネットワーク インターフェース
- オブザーバビリティ
- モニタリングとロギング用の Ops エージェントをインストールする: チェックを外す (課金対象)
- セキュリティ
- セキュアブートをオンにします: チェック (どちらでも課金されない)
- アクセスを管理する
- 手動で作成した SSH 認証鍵の追加が可能
- *.pub ファイルの内容をコピペする
- 手動で作成した SSH 認証鍵の追加が可能
- 詳細
- メタデータ
- enable-guest-attributes: TRUE
- 中間者攻撃を防ぐためにゲスト属性を有効にしてホストキーを保存する場合
- 他社より確認が大変という印象
- enable-guest-attributes: TRUE
- メタデータ
VS Code のインストール
デスクトップであれば、普通に VS Code をインストールします。
デスクトップ画面のないサーバーであれば、以下でインストールします。ARM64 の場合は x64 のところを arm64 に書き換えてください。
$ curl -Lk 'https://code.visualstudio.com/sha/download?build=stable&os=cli-alpine-x64' --output vscode_cli.tar.gz
$ tar -xf vscode_cli.tar.gz
サービスの登録
code tunnel
コマンドでフォアグラウンドで起動しても良いのですが、サービスとしてバックグラウンドで起動することにします (2025-03-18 時点では Preview)。
$ code tunnel user login --provider github # または microsoft
$ code tunnel service install
- Linux の場合は、ログインせず使うために
sudo loginctl enable-linger $USER
も実行してください - Windows ではスタートアップに code-tunnel.exe が追加されます
- ログイン時しか使えません
- macOS では launchctl に com.visualstudio.code.tunnel が追加されるようですが、
$HOME
直下に plist ファイルが作成されるので、ログインし直すと実行されません- バグだと思うけど報告するほどでもないかな…
- mv ~/com.visualstudio.code.tunnel ~/Library/LaunchAgents/ でログイン時に実行されるようになります
- 他の場所に配置すると他のタイミングで起動できるようです (Macの「ターミナル」でのlaunchdを使ったスクリプトの管理)
スマホから接続
https://vscode.dev にアクセスし「リモート トンネルに接続」または、左端のリモート エクスプローラーからトンネルに接続することができます。
メニューからターミナルを開けば、コマンド実行ができます。
https://vscode.dev は PWA に対応しているため、iOS の Safari からホーム画面に追加し、全画面で使うことができるのですが、それでも iPhone では上の画面のような狭さでちょっとつらいです。iPad なら実用的です!
注意
トンネルの有効期限は 30 日ですので、30 日後に再度設定が必要になると思います。
実装がどうなっているのかは知りませんが、Microsoft から自由にアクセスできてしまうかもしれないので、仕事で使いたい場合などにはご注意ください。
参考
下記記事を参考にさせていただきました。