NeoServer:あらゆるネットワークで接続を維持するiOS SSHおよびMoshターミナル

Author: Neo Huang
最終更新日: 2026-08-17 00:01:33
タグ:

Index

過去、iPhoneでサーバーを操作するということは、次のようなことを意味していました。電車がトンネルに入った瞬間にSSHセッションが切断される、ということです。入力途中のコマンドは消え、バックグラウンドタスクは応答しなくなり、新しいシェルに再接続して、以前どこまで作業を進めたかを懸命に思い出すしかありませんでした。

NeoServerはこの問題を解決します。これは2つのプロトコルに基づいて構築されたiOSターミナルです。SSHを使用して安全な接続を確保し、Moshを使用してネットワークが不安定な場合でも接続を維持します。さらに、tmuxzellijへの深いサポートにより、ネットワークの切り替え、バックグラウンドへの移行、そして長時間のアイドル状態にも耐えうるターミナルを実現します。再び開いたとき、あなたは中断した正確な場所に留まることができます。

モバイル環境で純粋なSSHが切断されやすい理由

SSHはTCPセッションであり、すべてのパケットが極めて重要です。不安定なセルラーネットワーク、Wi-FiからLTEへの切り替え、または短暂的な通信死角において、TCP接続は停滞します。多くのSSHクライアントは待機し、タイムアウトしてから接続を切断します。毎日何十回もWi-Fiとセルラーネットワークを切り替えるスマートフォンにとって、これは頻繁な再接続と作業進捗の喪失を意味します。

Mosh (Mobile Shell) はまさにこのために生まれました。これはUDPベースのクライアント・サーバープロトコルであり、スマートフォンで極めて重要な次のような特性を備えています。

  • ローミング —— Wi-FiからLTE、さらに5Gに切り替えても、セッションは自動的に新しいIPに追従します。再接続は不要です。
  • 間欠的な接続 —— エレベーターで信号を失っても、回復するとMoshは自動的に継続します。その間も、ローカルエコーによって入力内容が表示され続けます。
  • 低レイテンシ —— キーストロークはローカルでエコーされるため、レイテンシが高い回線でも瞬時に反応する感覚を得られます。
  • 予測エコー —— Moshはサーバーの応答を予測して即座に表示し、予測が誤っていた場合にのみ訂正を行います。

問題は、ほとんどのiOS SSHアプリがMoshを全くサポートしていないか、有料機能として提供していることです。NeoServerはこの機能を内蔵し、ターミナルの他の部分と完全に統合しています。

NeoServerのSSH + Moshによるエンドツーエンドの体験

NeoServerはSSHを安全なトランスポート層として使用し、その上にMoshを非常に弾力性のあるセッション層として使用します。

  • SSH優先。 パスワード、秘密鍵、2FA、またはSSH Agent forwardingで認証を行います。NeoServerは最初にSSH接続を確立し、その後Moshにアップグレードします。
  • ローミングをサポートするMosh。 Moshセッションが確立されると、自宅のWi-Fiからセルラーネットワークへ、またはセルラーネットワークからテザリングへ切り替えても、シェルは中断されません。サーバー側のMoshプロセスは実行を続けます。クライアントは単に再接続するだけです。
  • tmuxまたはzellijとの組み合わせ。 NeoServerはtmuxzellijを深くサポートし、切断後のセッションを迅速に復元できるようにします。Moshクライアント自体がiOSによってバックグラウンドに移動されたり、バッテリー切れで終了された場合でも、tmuxセッション内のプロセスはサーバー側で実行を続けます。再接続してセッションにアタッチすれば、エディタ、ビルドタスク、またはhtopがそのままの状態で残っています。

認証にSSH、ローミング接続にMosh、永続的なシェルにtmux/zellijという3層構造のスタックこそが、スマートフォンを本物のターミナルセッションを実行する信頼できるプラットフォームにしている理由です。

Claude Code、Codex、およびリモートAI開発のために設計

NeoServerは、iOS上でリモートマシンのClaude CodeおよびOpenAI Codexを実行するために特別に最適化されています。

  • ターミナル内で直接画像、ビデオ、ファイルを貼り付けまたはアップロード。 スクリーンショットを撮って貼り付けるだけで、ファイルがサーバーに配置され、そのパスを取得できます。これをClaude Codeのコンテキストとして直接渡すことができます。
  • AIタスクにおいて、セッションの存続は不可欠です。 20分間実行される長時間のCodexタスクは、純粋なSSH接続がスマートフォンのスリープによって切断され、途中で中断される典型的なジョブです。Moshとtmuxの組み合わせにより、このタスクはサーバー側で継続して実行されます。いつでも戻って進捗を確認できます。
  • シェル初期化スクリプトが接続時に自動的に実行されるため、セッションに入った瞬間に環境が整った状態になります。

ターミナルそのもの

接続スタックは、このアプリの利点の半分にすぎません。このターミナルは、タッチ操作とBluetoothキーボードのどちらにも同等に最適化されています。

  • 特殊キー対応のキーボード、コピーアンドペースト、クイック操作を内蔵
  • ダブルタップでTABをトリガーできるコマンド補完プロンプト
  • カスタムテーマとフォント(プログラミング合字 (programming-ligature) フォントを含む)
  • 踏み台サーバーの背後にあるサーバーに接続するためのJump Server, Failover, and SOCKS5 Proxyのサポート

単なるターミナルではありません

NeoServerは、本来なら3つのアプリを必要とするツールも統合しています。

  • SFTPファイル管理 —— 画像、ログ、設定ファイルのシンタックスハイライトとプレビューをサポートし、ファイルの閲覧、アップロード、ダウンロード、名前変更、オンライン編集が可能です。
  • リアルタイムモニタリング —— 稼働時間、負荷、CPUのモデルと温度、メモリ、GPU usage and GPU tasks、ディスク容量、IOPS、I/O待機、ネットワーク速度。主要なメトリクスはiOSウィジェットにも表示されます。
  • プロセス管理 —— 完全なプロセスリストを表示し、列で並べ替えが可能。シグナルの送信とプロセスの終了機能を備えています。
  • Docker and Podman —— コンテナの起動、停止、再起動、一時停止、削除、ログの確認と出力の検査、およびイメージの管理が可能です。
  • バッチスクリプト —— 単一のサーバーまたはサーバーグループ全体でスクリプトを実行でき、実行履歴を保持します。ローリングデプロイやサーバーファームの点検に最適です。
  • Wake-on-LAN —— ワンタップでスリープ状態のNASやホームサーバーを起こせます。
  • AIアシスタント —— OpenAI、Claude、Gemini(または互換性のあるエンドポイント)に接続して、エージェントをインストールすることなく、24時間稼働の運用アシスタントのようにメトリクスの読み取り、コマンドの実行、ファイルの管理を行います。

プライバシー

すべてのデータは、あなたのデバイスとプライベートなiCloudにのみ残ります。NeoServerは、設定したサーバーとのみ通信し、サードパーティの分析や広告ネットワークは一切ありません。Face IDまたはTouch IDでアプリをロックし、プライバシーを保護できます。

対象となるユーザー

  • ホームサーバーやNAS(Synology、QNAP、TrueNASなど)の所有者
  • サイト管理者および運用エンジニア
  • リモートでClaude CodeやCodexを実行する開発者
  • GPUの使用状況を追跡するAI研究者
  • 地下鉄でターミナルセッションを失ったことがあるすべての人

スマートフォンで頻繁にSSHタイムアウトが発生することがリモートワークの代償であるならば、Moshを搭載したNeoServerがその解決策です。一度接続し、自由に移動し、tmuxが作業の進捗を維持します。App StoreでNeoServerを検索するか、App Storeからダウンロードしてください。