iOS上で neoserver:// scheme リンクをワンクリックでターミナルを開く
Index
NeoServer
NeoServer offers a comprehensive management solution for your servers, NAS (Network Attached Storage), and Linux-based routers across iPhone, iPad, and Mac platforms.

1つの neoserver:// リンクをクリックするだけで、NeoServer が自動的に起動し、サーバーに接続して、ターミナルを好きな場所で開きます。
それは特定のマシン、特定の tmux セッション、あるいは特定のディレクトリかもしれません。
Safari のブックマーク、メモ、デスクトップアイコン、Siri ショートカットに保存したり、AirDrop で同僚に送ったりしても、すべて機能します。
一、ターミナルリンクの書き方
すべてのターミナルリンクは次のような形式です:
neoserver://terminal?host=<server>&port=<port>&user=<user>&name=<terminal_memo>&tmuxName=<tmux_session>&zellijName=<zellij_session>&workdir=<directory>&command=<command>
| パラメータ | 必須 | 入力内容 |
|---|---|---|
host |
✅ | サーバーの IP またはドメイン。必須です。空欄だとリンクは無効になります。 |
port |
❌ | SSH ポート。指定しない場合はデフォルトの 22 になります。有効範囲は 1–65535 です。無効な値を入力するとリンクが無効になります。 |
user |
❌ | ログインユーザー名。指定しない場合はデフォルトの root になります。 |
name |
❌ | 今回のターミナルのメモ名(表示用で、サーバーの照合には使用されません)。 |
tmuxName |
❌ | 接続後、自動的にこの tmux セッションに入ります。 |
zellijName |
❌ | 接続後、自動的にこの zellij セッションに入ります。 |
workdir |
❌ | 接続後、自動的にこのリモートディレクトリに cd します。 |
command |
❌ | 接続後、自動的に1つのコマンドを実行します(改行付き)。複数行は %0A で区切ります。 |
⚠️ 優先順位:
tmuxName>zellijName>command>workdir。
tmuxName/zellijNameとcommandは併用できません:セッション名を指定するとそのセッションにアタッチするだけで、commandは無視されます(アタッチがターミナルの入力を占有するため、コマンドを注入できません)。commandはworkdirと併用できます:まずディレクトリにcdし、それからコマンドを実行します。tmuxName/zellijName/workdirの3つは依然として相互排他です。nameは純粋な表示名であるため、どれとも共存でき、上記のロジックには影響しません。
以下を参考に、自分用に書き換えてください:
# 最もシンプル:host のみ指定
neoserver://terminal?host=1.2.3.4
# ポートとユーザーを指定
neoserver://terminal?host=1.2.3.4&port=2222&user=deploy
# 接続して直接 main という tmux セッションに入る
neoserver://terminal?host=1.2.3.4&user=root&tmuxName=main
# 接続して直接 dev という zellij セッションに入る
neoserver://terminal?host=1.2.3.4&user=root&zellijName=dev
# 接続後、自動的にログディレクトリに cd する
neoserver://terminal?host=1.2.3.4&user=root&workdir=/var/log/nginx
# 今回のターミナルにメモ名をつける(リスト表示用、照合には無関係)
neoserver://terminal?host=1.2.3.4&user=root&name=本番サーバー
# 接続後、自動的に ls -la を実行(%20 = スペース)
neoserver://terminal?host=1.2.3.4&user=root&command=ls%20-la
# まず /var/log に cd し、それから tail -f syslog を実行
neoserver://terminal?host=1.2.3.4&user=root&workdir=/var/log&command=tail%20-f%20syslog
# 複数行のコマンド:まず cd /tmp を実行し、次に pwd を実行(%0A = 改行)
neoserver://terminal?host=1.2.3.4&user=root&command=cd%20%2Ftmp%0Apwd
二、接続後、ターミナルはどこで止まりますか?
これがターミナルリンクの最も便利な部分です。パラメータを変えることで、接続後にターミナルが開く場所が変わります:
| 指定したパラメータ | 接続後のターミナルの状態 |
|---|---|
host のみ(+オプションの port/user) |
通常のターミナルが開き、ユーザーのホームディレクトリで止まります |
tmuxName=main |
自動的に main セッションに tmux attach し、前回離脱した画面に戻ります |
zellijName=dev |
自動的に dev という zellij セッションに入ります |
workdir=/var/log |
自動的に /var/log ディレクトリに cd します |
command=ls -la |
ターミナルの準備ができたら、自動的にこのコマンドを入力して実行します |
workdir=/var/log&command=tail -f syslog |
まず /var/log に cd し、次に tail -f syslog を実行します |
なぜこの3つに分かれているのですか?
- tmux / zellij セッション:ネットワーク切断、App の終了、別のスマートフォンへの切り替えをしても、セッションは維持され、プロセスは失われません。1台のサーバーの tmux セッションを同僚と共有すれば、2人が同じ画面に入って一緒にトラブルシューティングできます。
- ディレクトリ:接続するたびに
cd /opt/app/logsと打つくらいなら、リンクを使って直接そこに飛んだ方が良いでしょう。 - コマンド:接続後に自動でコマンドを実行します。例えば、ログの取得、状態の確認、デプロイスクリプトの実行などです。
workdirと組み合わせることもできます(まずディレクトリに入ってから実行)。
nameは接続後の動作に影響しません。単に今回のターミナルを分かりやすい名前にするだけで、リストの中で見つけやすくします。
三、App 内でリンクをコピーする(手書き不要)
リンクの手書きはミスが起きやすいです。NeoServer は3箇所でワンクリックコピーが可能です。コピーした後は、どこにでも貼り付けられます。
1. 「このサーバー」のリンクをコピー
サーバータブ・サーバーリスト → いずれかのサーバーを左スワイプ → Copy Scheme Link
コピーされる内容:
neoserver://terminal?host=...&port=...&user=...
2. ターミナルのクイックモードでコピー
ターミナルタブ・サーバーリスト(クイックモード)→ いずれかのサーバーを長押し → Copy Scheme Link
3. 「このセッション」のリンクをコピー ⭐ 最も便利
ターミナルタブ・セッションリスト → いずれかのセッションを長押し → Copy Scheme Link
このリンクは「サーバーXのYセッションに接続する」という情報をパッケージ化します:
- このセッションが tmux の場合 → 自動的に
&tmuxName=...が付与されます - このセッションが zellij の場合 → 自動的に
&zellijName=...が付与されます - 通常セッションの場合 →
host/port/userのみです
コピーに成功すると Link Copied とポップアップ表示され、リンクがクリップボードに保存されます。
✏️ コピーされたリンクには
host/port/userしか含まれません(セッションリンクにはさらにtmuxNameまたはzellijNameが含まれます)。name(メモ)やcommand(自動実行コマンド)を追加したい場合は?手動でリンクの末尾に追加してください。App 内では現在この2つは生成されません。💡 実行中の tmux セッションを長押ししてコピーし、同僚に送ってみてください。彼らが NeoServer で開くだけで、同じセッションに直接アタッチできます。2人が同じターミナル画面に入ることができます。
四、このリンクの開き方
neoserver:// は iOS のリンクプロトコルであり、リンクをクリックできる場所ならどこでも NeoServer を起動できます:
- Safari:アドレスバーに貼り付けて Enter キーを押すか、ブックマークに保存してクリックします。
- メモ / リマインダー:1つ保存して、クリックするだけで直接アクセスできます。
- ショートカット:「URL を開く」アクションにリンクを入力 → Siri の音声、デスクトップアイコン、自動化に割り当て可能です。
- AirDrop:2台の iPhone 間でリンクを送り合い、相手が開けばすぐに接続できます。
- メール:リンクをテキストとして送信し、相手が Safari にコピーして開きます。
📱 実機で初めて
neoserver://をクリックすると、iOS が「NeoServer で開きますか?」と確認を求めます。承認すれば以降は表示されません。
五、3つの実践シナリオ
🏠 シナリオ 1:「本番 tmux への接続」をデスクトップアイコンにする
毎日本番サーバーの main tmux セッションに接続しなければならないとします。毎回 App を開き → サーバーを探し → 接続し → アタッチするより、アイコンにしてしまった方が良いでしょう:
- App でこのサーバーのリンクをコピーし、手動で
&tmuxName=mainを追加します; - iOS の「ショートカット」を開き → 新規作成 → 「URL」アクションを追加して、このリンクを貼り付けます;
- 「URL を開く」アクションを追加します;
- 共有をタップ → ホーム画面に追加を選び、「本番サーバーへ接続」と名前をつけ、アイコンを選択します。
以降、デスクトップでこのアイコンをタップするだけで、NeoServer が自動的に接続し、main セッションに入ります。すべての操作が不要になります。
🎙️ シナリオ 2:音声で接続する
上記のショートカットを Siri に登録し、「Hey Siri、本番サーバーに接続して」というフレーズを設定します。話しかければスマートフォンが自動的に接続します。
🤝 シナリオ 3:セッションを同僚に共有する
- ターミナル・セッションリスト → このセッションを長押し → Copy Scheme Link;
- 同僚に送ります(AirDrop / WeChat など何でも構いません);
- 相手が NeoServer で開く → 自動的に同じ tmux セッションにアタッチします。
(前提:相手の iPhone にある NeoServer のサーバーライブラリも、同じホストに接続できる必要があります。)
🖥️ シナリオ 4:デスクトップアイコンでワンクリックコマンド実行
毎日特定のマシンのコンテナ状態を確認したいが、接続するたびに手動で docker ps と打ちたくない場合:
- サーバーのリンクをコピーし、手動で
&command=docker%20psを追加します; - シナリオ 1 のようにデスクトップアイコンを作成し、「コンテナ状態」と名前をつけます。
以降、アイコンをタップする → NeoServer が接続する → 自動的に docker ps を実行し、結果が直接ターミナルに表示されます。
六、ターミナルリンクのよくある質問
Q: リンクをクリックしたのに、間違ったサーバーに接続されました?
A: NeoServer は host(+ 入力されていれば port + 入力されていれば user)でサーバーを検索します。もしライブラリに host が同じサーバーが2台ある場合、最初に一致したものに接続されます。port や user を入力することで正確に区別できます。
Q: ライブラリにこのサーバーがない場合、リンクをクリックするとどうなりますか?
A: 「新規サーバー」ページは表示されなくなりました。 現在はリンク内の host/port/user を使って、その場で一時ターミナルを開きます:
- 資格情報のない認証を優先的に試みます(Tailscale SSH など、接続自体が身元を証明しているシナリオに適しています);
- サーバーがパスワードを要求する場合、NeoServer の既存のパスワード / keyboard-interactive 認証にフォールバックします;
- 一時サーバーはサーバーライブラリに保存されず、閉じると解放されます;
- ただし、「最近のセッション」にパスワードや秘密鍵を含まないスナップショットが残り、App の再起動後にタップすれば再接続できます。
元のリンクに含まれる name / tmuxName / zellijName / workdir / command は通常通り機能します。
Q: リンクに直接パスワードを含めて、毎回入力する手間を省けますか?
A: できません。 これはセキュリティ上の制限です。リンクにパスワードが含まれることはありません。手動で password=xxx を追加しても無視されます。パスワードは App 内のキーチェーンのみを経由します。
Q: name の用途は何ですか?
A: 今回のターミナルのメモ名に過ぎず、リストの中で見分けやすくするためのものです。サーバーの照合には関係しません。host が同じで name が異なるリンクを2つ開いても、接続されるのは同じサーバーです。
Q: command にセキュリティリスクはありますか?
A: 少しありますので、理解しておく必要があります。command は接続後に自動的に実行(改行付き)されます。どんな App や Web ページでも neoserver://...&command=... を発行できるため、出所不明で command を含むリンクはクリックしないでください。iOS が初回に「NeoServer で開きますか?」と確認するのが唯一のストッパーとなります。また、パスワードが必要なサーバーに対してはパスワードを渡すことができず、通常の認証にフォールバックするだけです。
Q: 中国語やスペースを含むディレクトリを workdir に指定できますか?
A: できます。そのまま書いてください(例:workdir=/home/me/my logs)。特殊文字は App が自動的に処理します。最も確実な方法は手書きではなく、App でコピーすることです。
Q: クリックしても反応がありません?
A: ① neoserver:// で始まっていることを確認してください;② 初回は「NeoServer で開く」の確認ダイアログが表示されます;③ host が空欄になっていないか確認してください;④ App がフォアグラウンドになくても問題ありません。自動的に起動します。
Q: Android / Windows で開けますか?
A: できません。neoserver:// は NeoServer がインストールされている iPhone / iPad でのみ認識されます。
Features
Multi Device
Support across multiple platforms: iPhone, iPad, Mac.
iCloud Sync
iCloud Sync ensures all your configuration information is securely stored in iCloud, facilitating seamless synchronization across your multiple devices.
Security
Security, featuring support for password and biometric (FaceID, TouchID) unlocking mechanisms.
A wealth of features.
providing support for SSH terminal, script execution, containers management, and metrics monitoring with zero server-side configuration required.
Screenshots






