直接リモートアクセス
直接アクセスは、サーバーパスワードを使って CodeNomad の HTTP/HTTPS リスナーに接続します。リモートコントロールとは別です。ペアリングには LAN バインドや受信ポートは不要で、どちらの経路も他方へ無断でフォールバックしません。
アクセス経路を選ぶ
| 経路 | 管理する内容 |
|---|---|
| 同じマシンのブラウザー | ループバックへのバインドを維持し、表示されたローカル URL を使用します。 |
| LAN または VPN | 到達可能なインターフェースにバインドし、ファイアウォールを意図したクライアントに限定し、信頼された HTTPS を使用します。VPN は CodeNomad のリスナーを設定しません。 |
| SSH 転送 | バックエンドをループバックにバインドしたまま、実際に表示されたポートを転送します。トンネルは通信を保護しますが、CodeNomad の認証の代わりにはなりません。 |
| リバースプロキシ | バックエンドをプライベート/ループバックインターフェースに置き、プロキシで信頼された TLS を終端し、上流接続を保護します。長時間の SSE と、直接アクセスのツールが必要とする WebSocket に対応させます。 |
| リモートコントロール | ホストから端末をペアリングします。画面の制限と寿命は、リモートコントロールを参照してください。 |
バインドは、ファイアウォールルール、ポート転送、DNS、VPN を作成しません。未認証の HTTP リスナーをインターネットに公開しないでください。ワークスペースルートはセキュリティサンドボックスではありません。サーバーを公開する前にセキュリティを読んでください。
直接アクセスを有効にする
- ホストで 設定 → リモートアクセス を開き、直接アクセス(ローカルネットワーク、上級者向け) を展開します。
- サーバーパスワード で パスワードを設定 または パスワードを変更 を選び、新しいパスワード と パスワードの確認 を入力して パスワードを保存 します。起動時指定のパスワードはここでは変更できません。セキュリティを参照してください。
- リッスンモード の 他の IP からの接続を許可 をオンにします。再起動の警告を読み、一時的な中断の準備ができた場合にのみ 今すぐ再起動 を選びます。
- 再起動後に 更新 し、到達可能なアドレス を確認します。別端末で到達可能な HTTPS アドレスを開くか、ホストで QR を表示 して別端末で読み取り、ログインします。
これはホストの直接リッスンモードの変更であり、1 つのプロジェクトやリモートコントロールの変更ではありません。サーバーが localhost 以外で待ち受けている間、この開閉セクションは自動的に開きます。自動再起動が使えなければ CodeNomad を手動で再起動します。スタンドアロン環境では、起動時の --host を整合させる必要があります。公開を解除するには、スイッチをオフにして再起動するか、ループバックへのバインドで CLI を再起動します。ペアリング済みのリモートコントロール端末は失効しません。
リスナーのバインド表
--host の既定は 127.0.0.1 で、localhost もそのアドレスに正規化されます。有効なリスナーには次の規則が適用されます。
| 起動/モード | HTTP のバインド先 | HTTPS のバインド先 |
|---|---|---|
| スタンドアロン、HTTPS のみ(既定) | 非公開のループバックリスナーのみ(下記参照) | --host |
| スタンドアロン、HTTP のみ | LAN/ワイルドカードアドレスを含む --host |
無効 |
| スタンドアロン、両リスナー | --host に関係なく 127.0.0.1 |
--host |
| ネイティブデスクトップのバックエンド | ホスト内部用を含め、HTTP リスナーは 127.0.0.1 に維持 |
HTTPS 有効時の --host |
すべてのバックエンドは、ミッションなど CodeNomad 自身の同梱 OpenCode プラグインのために、127.0.0.1 上の HTTP リスナーも維持します。HTTP が要求されていない場合、または要求された HTTP リスナーが 127.0.0.1 や 0.0.0.0 以外のアドレスにバインドされている場合、バックエンドはランダムな 127.0.0.1 ポートに非公開の HTTP リスナーを追加します。このリスナーは表示されることも接続先アドレスとして提示されることもなく、他のマシンからは到達できず、同じ認証付きアプリケーションを提供します。
具体的な LAN アドレスは、ループバック接続を受け付けるとは限りません。0.0.0.0 はすべての IPv4 インターフェース、:: はデュアルスタックのワイルドカードリスナーです。ブラウザーにはワイルドカードではなく、実際に到達可能なアドレスを使用してください。--host は IPv6 ゾーン識別子に対応しません。
スタンドアロン HTTPS 環境では、初期設定手順でパスワードを設定してから実行します。
codenomad --host 0.0.0.0 --https=true --http=false
ローカルの信頼されたプロキシの背後などで、ループバック専用 HTTP を使う場合:
codenomad --host 127.0.0.1 --https=false --http=true
ポートを 9898 や 9899 と決めつけないでください。省略時は使用中なら別ポートにフォールバックできます。ゼロ以外の --https-port、または HTTP 有効時の --http-port を明示するとポートを固定し、バインドできなければ失敗します。0 は OS の割り当てを要求します。その実行での正規の情報は、表示された Local Connection URL と Remote Connection URL、および更新した 到達可能なアドレス です。完全なサーバー CLI リファレンスを参照してください。
信頼された TLS を設定する
独自の証明書を指定する
- クライアントが実際に使うホスト名または IP を Subject Alternative Names(SAN)に含む証明書を取得します。
--tls-key <path>と--tls-cert <path>の両方を PEM ファイルで指定します。環境で CA チェーン/バンドルが必要なら--tls-ca <path>を追加します。- CodeNomad を再起動し、クライアント端末で証明書と表示された HTTPS アドレスを確認します。
独自の証明書ファイルは起動時に読み込まれ、CodeNomad が書き換えることはありません。更新と、新しいファイルを読み込むための再起動はユーザーが管理します。--tlsSANs は生成証明書を設定するもので、指定済み証明書に名前を追加できません。秘密鍵を保護し、ホストの識別を確認した証明書だけを信頼してください。
生成されたローカル CA を使う
HTTPS が有効で鍵/証明書のペアを指定していない場合、CodeNomad は設定ベースディレクトリにローカル CA とサーバー証明書を作成します。
| ファイル | 用途 |
|---|---|
tls/ca-cert.pem |
管理するクライアントへ安全に配布する公開 CA 証明書。 |
tls/ca-key.pem |
CA の秘密鍵。絶対に配布しないでください。 |
tls/server-cert.pem |
サーバー証明書。 |
tls/server-key.pem |
サーバーの秘密鍵。絶対に配布しないでください。 |
--tlsSANs "host.example.test,192.0.2.10"で、クライアント向けの全 DNS 名/IP を追加します。ワイルドカードへのバインドは、SAN 用に全 LAN アドレスを検出するものではありません。- バックエンドを再起動し、証明書を生成/再確認します。
- 信頼できる経路でホスト/CA を確認し、意図した各クライアント/ブラウザーの信頼ストアに CA 証明書だけ をインポートします。代わりに、公に信頼された証明書や TLS リバースプロキシも使用できます。
生成されるサーバー証明書の有効期間は 30 日です。起動時に、期限まで 3 日以内、必要な SAN の不足、証明書チェックの失敗、秘密鍵ファイルの欠落があれば更新します。生成 CA は 365 日有効で、期限切れ、証明書チェックの失敗、秘密鍵ファイルの欠落で置き換えられます。置き換え時はサーバー証明書も再発行します。既存の破損、読み取り不能、不一致の秘密鍵は自動修復しません。クライアントは新しい CA を信頼する必要があります。プロセス内で継続的には更新しないため、長期稼働では期限前に意図的な再起動を計画してください。
クライアントに証明書警告が出たら、いったん止めてホスト名、SAN、信頼ストア、有効期限を確認してください。検証を無効にしたり、警告を無視して進むことを運用手順にしたりしないでください。信頼された HTTPS は、PWA のインストールやマイクアクセスなど、リモートブラウザー機能にも必要です。
リモートサーバーを保存する
- デスクトップのホームページで CodeNomad サーバーに接続 を選びます。同じボタンは、空の サーバー タブと 設定 → リモートアクセス → サーバー にもあります。
- サーバーに接続 で、信頼された HTTPS オリジンを使用して サーバー名 と サーバー URL を入力します。自己署名証明書の TLS 検証をスキップします。 はチェックせず、代わりに信頼を確立します。
- ブックマークには 保存、保存して開くには 接続 を選び、そのサーバーでログインします。
保存したサーバーを再び開くには、ホームページの サーバー タブで選びます。ブックマークは、この CodeNomad 設定に属し、リモートサーバーのプロジェクトに属するわけではありません。URL の保存はサーバーの起動やアクセス許可を行いません。保存したサーバーを削除 はブックマークを削除しますが、リモートの会話、バックエンド、認証情報は削除しません。
リモートコントロールでは、代わりに新しいペアリングリンクを サーバー URL に貼り付けます。ブックマークはトンネルのオリジンだけを保持し、使い捨てのペアリングコードは保持しません。端末 Cookie 消失後の再ペアリングは、リモートコントロールを参照してください。